这应该做你想要的(即使用3x3阵列和4x4阵列来表示OP中的两个阵列)
>>> import numpy as NP
>>> a = NP.random.randint(0, 10, 9).reshape(3, 3)
>>> a
>>> array([[1, 2, 2],
           [7, 0, 7],
           [0, 3, 0]])
>>> b = NP.zeros((4, 4))
将 a映射到b:
>>> b[:3,:3] = a
>>> b
    array([[ 1.,  2.,  2.,  0.],
           [ 7.,  0.,  7.,  0.],
           [ 0.,  3.,  0.,  0.],
           [ 0.,  0.,  0.,  0.]])
如果您希望添加的元素为零,my_array.resize((1600, 1000))应该可以。请注意,这与 不同numpy.resize(my_array, (1600, 1000)),其中前面的行是重复的,这可能不是您想要的。
否则(例如,如果您想避免将元素初始化为零,这可能是不必要的),您确实可以使用  hstack和vstack添加包含新元素的数组;numpy.concatenate()(参见 pydoc numpy.concatenate)也应该有效(据我所知,它只是更一般)。
无论哪种情况,我猜测都必须分配一个新的内存块才能扩展数组,并且所有这些方法大约需要相同的时间。
| 归档时间: | 
 | 
| 查看次数: | 13732 次 | 
| 最近记录: |