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

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

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

4

2 回答 2

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

于 2013-08-10T16:04:54.280 回答
14

我会做:

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

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

于 2013-08-10T16:05:52.413 回答