您正在尋找np.r_
和np.c_
。 (認爲 「列堆」 和 「行堆疊」(其也是功能),但用MATLAB式範圍代。)
另見np.concatenate
,np.vstack
,np.hstack
,np.dstack
,np.row_stack
,np.column_stack
等
對於例如:
import numpy as np
m = np.zeros((10, 4))
v = np.ones((10, 1))
c = np.c_[m, v]
收率:
array([[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1.]])
這也相當於np.hstack([m, v])
或np.column_stack([m, v])
如果你不從MATLAB來,hstack
和column_stack
可能似乎更具有可讀性和描述。 (由於這個原因,在這種情況下它們可能更好。)
但是,np.c_
和np.r_
具有來自matlab的人傾向於期望的附加功能。例如:
In [7]: np.r_[1:5, 2]
Out[7]: array([1, 2, 3, 4, 2])
或者:
In [8]: np.c_[m, 0:10]
Out[8]:
array([[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 2.],
[ 0., 0., 0., 0., 3.],
[ 0., 0., 0., 0., 4.],
[ 0., 0., 0., 0., 5.],
[ 0., 0., 0., 0., 6.],
[ 0., 0., 0., 0., 7.],
[ 0., 0., 0., 0., 8.],
[ 0., 0., 0., 0., 9.]])
無論如何,對於MATLAB的人,這是很方便的知道除了vstack
,hstack
約np.r_
和np.c_
等
你說的是C++或Pyth上? Python沒有矢量/數組,它有列表或字典。 – IanAuld
@IanAuld - 他指的是numpy數組。 –
對不起,我在問題文本中添加了numpy。 – Hadi