Python Numpy将标量分组到数组中

Python Numpy将标量分组到数组中,python,arrays,numpy,Python,Arrays,Numpy,我有一个numpy数组U,形状(20,50):在50维空间中有20个空间点 如何将其转换为(20,1,50)数组,即20行1列,每个元素是一个50维点?将每一行封装为一个numpy数组 上下文 关键是我想使用numpy.concatenate沿列扩展数组(实际上,沿列复制相同的数组X次)。但是如果我马上去做,我就不会得到我想要的结果 例如,如果我将它沿列展开一次,我将得到一个具有shape(20100)的数组。但是我想要的是将每个元素作为一个50维的点来访问,所以当我扩展它时,我希望有一个新的U

我有一个numpy数组
U
,形状
(20,50)
:在50维空间中有20个空间点

如何将其转换为
(20,1,50)
数组,即20行1列,每个元素是一个50维点?将每一行封装为一个numpy数组

上下文

关键是我想使用
numpy.concatenate
沿列扩展数组(实际上,沿列复制相同的数组X次)。但是如果我马上去做,我就不会得到我想要的结果


例如,如果我将它沿列展开一次,我将得到一个具有shape
(20100)
的数组。但是我想要的是将每个元素作为一个50维的点来访问,所以当我扩展它时,我希望有一个新的
U'
形状
(20,2,50)

你可以做
U[:,无,:]
来向数组添加一个新的维度。

你可以做
U[:,无,:]
向数组添加新维度。

您也可以使用
重塑

import numpy as np
a = np.zeros((20, 50))
print a.shape # (20, 50)
b = a.reshape((20, 1, 50))
print b.shape # (20, 1, 50)

您还可以使用
重塑

import numpy as np
a = np.zeros((20, 50))
print a.shape # (20, 50)
b = a.reshape((20, 1, 50))
print b.shape # (20, 1, 50)

这样一个优雅的解决方案,但我真的不明白它为什么有效。。。请你详细解释一下好吗?@houcros:请看中的描述。基本上没有(或
np.newaxis
)告诉numpy在该位置插入新维度。这是一个非常优雅的解决方案,但我真的不明白为什么它会起作用。。。请你详细解释一下好吗?@houcros:请看中的描述。基本上没有(或
np.newaxis
)告诉numpy在该位置插入新维度。