[英]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.