你如何创建一个numpy垂直arange?

时间:2013-08-10 15:58:30

标签: python arrays numpy

>>> print np.array([np.arange(10)]).transpose()

[[0]
 [1]
 [2]
 [3]
 [4]
 [5]
 [6]
 [7]
 [8]
 [9]]

有没有办法在不必经过这些额外步骤的情况下获得垂直范围?

2 个答案:

答案 0 :(得分:15)

您可以使用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)

numpy.expand_dims

答案 1 :(得分:13)

我愿意:

np.arange(10).reshape((10, 1))

与np.array不同,reshape是一种轻量级操作,不会复制数组中的数据。