Numpy group scalars into array

时间:2016-04-12 19:26:29

标签: python arrays numpy

我有一个形状为U的numpy数组(20, 50):20个空间点,在50个维度的空间内。

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

上下文

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

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

2 个答案:

答案 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)