我有一个形状为U
的numpy数组(20, 50)
:20个空间点,在50个维度的空间内。
如何将其转换为(20, 1, 50)
数组,即20行,1列,每个元素是50维点?将封装的每一行都称为numpy数组。
上下文
关键是我想沿着列扩展数组(实际上,使用numpy.concatenate
沿着列复制相同的数组X次)。但如果我马上做到这一点,我就不会得到我想要的结果。
例如,如果我沿着列展开一次,我会得到一个形状为(20, 100)
的数组。但我想要的是将每个元素作为50维点访问,所以当我展开它时,我希望有一个新的U'
形状(20, 2, 50)
。
答案 0 :(得分:1)
您可以U[:, None, :]
向阵列添加新维度。
答案 1 :(得分:1)
您还可以使用reshape
:
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)