Python 你如何创建一个垂直排列的numpy?
有没有一种方法可以在不经过这些额外步骤的情况下获得垂直排列?您可以使用:Python 你如何创建一个垂直排列的numpy?,python,arrays,numpy,Python,Arrays,Numpy,有没有一种方法可以在不经过这些额外步骤的情况下获得垂直排列?您可以使用: np.newaxis只是None的别名,由numpy开发人员添加,主要是为了可读性。因此,np.arange(10)[:,None]将产生与上述解决方案相同的精确结果 编辑: 另一个选择是: >>> np.arange(10)[:, np.newaxis] array([[0], [1], [2], [3], [4], [5],
np.newaxis
只是None
的别名,由numpy
开发人员添加,主要是为了可读性。因此,np.arange(10)[:,None]
将产生与上述解决方案相同的精确结果
编辑:
另一个选择是:
>>> np.arange(10)[:, np.newaxis]
array([[0],
[1],
[2],
[3],
[4],
[5],
[6],
[7],
[8],
[9]])
我会:
np.expand_dims(np.arange(10), axis=1)
与np.array不同,重塑是一个轻量级操作,它不会复制数组中的数据。您已经在那里执行了一些不必要的步骤,
np.array()
和[]
是不必要的,因为np.arange
返回一个numpy数组。你可以只做np.arange(10).transpose()
@Brionius,transpose
一个1d数组没有任何作用。OP正在使用[]
向数组添加额外维度,并询问是否有更有效的方法来实现相同的结果。@BiRico啊,你说得对,我错了。“你已经在那里做了一些不必要的步骤”--我想,这就是我问的原因。@BiRico有没有其他方法向数组添加维度?出于某种原因,我的np.array
实际上不起作用……idk为什么。在旁注中,你也可以做任何事情。重塑(-1,1)
,以避免必须指定第一维度的大小。@JasonS,我添加了一个带有示例的链接。@JasonS-看一下:文档相当一致,所以请参阅其中一本指南或书籍(正如Akavall链接到的)更多的例子。@JasonS我也不知道…我同意…@SaulloCastro,好问题,所以我猜np。之所以引入newaxis仅仅是因为它更容易阅读。
np.expand_dims(np.arange(10), axis=1)
np.arange(10).reshape((10, 1))