如何将整个数组存储到另一个数组
假设我有一个数组
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]
答案 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级(或包含在列表中)。现在,a
和b
都排名为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
)