>>> print np.array([np.arange(10)]).transpose()
[[0]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]]
有没有办法在不经过这些额外步骤的情况下获得垂直范围?
您可以使用np.newaxis:
>>> np.arange(10)[:, np.newaxis]
array([[0],
[1],
[2],
[3],
[4],
[5],
[6],
[7],
[8],
[9]])
np.newaxis
只是 的别名None
,由numpy
开发人员添加,主要是为了便于阅读。因此np.arange(10)[:, None]
将产生与上述解决方案相同的精确结果。
编辑:
另一种选择是:
np.expand_dims(np.arange(10), axis=1)
我会做:
np.arange(10).reshape((10, 1))
与 np.array 不同,reshape 是一种轻量级操作,它不会复制数组中的数据。