如何将整个数组存储到另一个数组

时间:2016-09-21 16:44:16

标签: python arrays numpy

如何将整个数组存储到另一个数组

假设我有一个数组

data = np.array([], dtype=float, ndmin=2)
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

如何存储

这样的值
data = [ [1,2,3],
         [4,5,6] ]

我目前的方法是

data= np.append(data, a)
data= np.append(data, b)

然而,这导致[1,2,3,4,6]

2 个答案:

答案 0 :(得分:2)

所以你正在寻找np.vstack

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
data = np.vstack([a,b])

答案 1 :(得分:1)

你的意思是:

>>> data = np.array([a,b])
>>> data
array([[1, 2, 3],
       [4, 5, 6]])

如果你想逐步进行,可以使用append,但你需要确保你的所有参数都是2级(或包含在列表中)。现在,ab都排名为1,因此如果您尝试沿特定轴追加,则会出现错误。即你需要做的是:

>>> data = np.empty([0,3]); data
array([], shape=(0, 3), dtype=float64)

>>> data = np.append(data, np.array([a]), axis=0); data
array([[ 1.,  2.,  3.]])

>>> data = np.append(data, np.array([b]), axis=0); data
array([[ 1.,  2.,  3.],
       [ 4.,  5.,  6.]])

<小时/> PS。但是,如果data中的行数已知(例如,100),那么您可能最好不要预先分配,即将其初始化为np.empty([100,3])并按索引填充(例如data[0,:] = a