python - 添加追加numpy数组

我正在尝试将多个Numpy数组组合在一起,最终的目标是将这个矩阵写入numpy.savetxt()函数的csv文件中,得到一个带n列的csv文件。

这个问题是numpy.append()将向量加到(1x2m )向量中,


a=np.append(a1, a2, axis=0)
a.shape
>>(20000,)

而我想要的是

 
>>(2, 10000)

 

 
>>(n, m)

 

时间:

你可以使用numpy.column_stack的转置

例如:


import numpy as np

a=np.array([1,2,3,4,5])
b=np.array([9,8,7,6,5])
c=np.column_stack((a,b)).T

print c
>>> array([[1, 2, 3, 4, 5],
 [9, 8, 7, 6, 5]])

print a.shape,b.shape,c.shape
>>> (5,) (5,) (2, 5)

你可以继续添加这样的列:


d=np.array([2,2,2,2,2])
c=np.column_stack((c.T,d)).T
print c
>>> array([[1, 2, 3, 4, 5],
 [9, 8, 7, 6, 5],
 [2, 2, 2, 2, 2]])
print c.shape
>>> (3, 5)

这应该可以


a=np.append(a1, a2, axis=0).reshape(2,10000)
a.shape
>>(2,10000)

为了垂直合并数组,使用np.vstack


import numpy as np

np.vstack((a1,a2))

不过,从我的观点来看,不应该使用for循环创建numpy.array并将新数组追加到旧的数组中。 你可以先创建整个numpy.array (nxm ),然后将for循环中的数据写入该数组,


data = np.zeros((n,m))

for i in range(n):
 data[i] = ...

或者你首先使用python创建一个普通的列表,使用append可以将它转换为numpy.array


data = []

for i in range(n):
 data.append(...)

data = np.asarray(data)

...