[英]Adding appending numpy arrays
我目前正在嘗試將多個 Numpy 數組附加在一起。 基本上,我想要做的是從 (1 xm) 矩陣(技術上是一個向量)開始,並以 (nxm) 矩陣結束。 因此,從 n (1 xm) 個矩陣(向量)到一個 (nxm) 矩陣(如果這有意義的話)。 這樣做的最終目標是使用 numpy.savetxt() 函數將矩陣寫入 csv 文件,因此我最終會得到一個長度為 n 列的 csv 文件。
問題在於 numpy.append() 將向量一起附加到 (1 x 2m) 向量中。 所以假設 a1 和 a2 是 Numpy 數組,每個數組有 10000 個元素。 我將使用 append 函數將 a2 附加到 a1 中,同時創建一個名為 a 的新數組,其中包含 a1 和 a2。
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] = ...
或者您首先使用append
數組創建為普通的 python 列表,您可以在最后append
其轉換為numpy.array
。
data = []
for i in range(n):
data.append(...)
data = np.asarray(data)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.