[英]Python: Add a column to numpy 1d array
我有2個數組。
a = np.zeros(2)
b = np.ones(2)
我想將它們結合起來,使其輸出為:
array([[0, 1],
[0, 1]])
如果我有a = np.zeros((2,1))
和b = np.zeros((2,1))
,則可以使用np.hstack((a,b))
或np.append(a,b,1)
。 但是我沒有。
有什么想法嗎?
您可以使用np.c_
>>> a = np.zeros(2); b = np.ones(2)
>>> np.c_[a, b]
array([[0., 1.],
[0., 1.]])
或者:
>>> np.array((a, b), order='F').T
array([[0., 1.],
[0., 1.]])
在這里, order='F'
確保最終結果是C-contiguous
您可以隨時添加尾隨尺寸...
>>> np.hstack([a[:,None], b[:,None]])
array([[ 0., 1.],
[ 0., 1.]])
>>>
您需要以一種或多種方式向數組添加額外的維度。
In [2]: a = np.zeros(2)
...: b = np.ones(2)
...:
stack
可讓您選擇新尺寸:
In [3]: np.stack((a,b),axis=1)
Out[3]:
array([[0., 1.],
[0., 1.]])
In [4]: np.stack((a,b),axis=0)
Out[4]:
array([[0., 0.],
[1., 1.]])
np.array
也這樣做,就像stack
與軸0 -轉來獲取列:
In [5]: np.array((a,b)).T
Out[5]:
array([[0., 1.],
[0., 1.]])
column_stack
是一個較舊的stack
,在這種情況下也添加了正確的尺寸。
In [6]: np.column_stack((a,b))
Out[6]:
array([[0., 1.],
[0., 1.]])
這是一個好主意一個學習與要做到這一點concatenate
和自己的另外的維度。 並查看各種stack
函數的代碼,以了解它們如何完成相同的任務。
您還可以重塑它們:
>>> a, b = np.zeros(2), np.ones(2)
>>> np.hstack([a.reshape(2,1), b.reshape(2,1)])
array([[ 0., 1.],
[ 0., 1.]])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.