numpy数组不可广播

时间:2019-01-29 22:05:57

标签: python numpy

这是我的错误的一个例子。说我创建了一个numpy的阵列

X = np.zeros((1000, 50))

其中1000是特征(行)和50是实施例中(列)

由于我加入实施例逐一我将具有由1替换阵列1中的列,得到最终特征量阵列。我尝试过:

X[:,i] = example

,其中的例子是大小(1000,1)的,和i迭代针对每个例子。这个不起作用,因为X [:,i]为形状(1000)的,秩1阵列。我怎么代码它使每个例如取代X阵列的行不抛出广播错误。谢谢。

1 个答案:

答案 0 :(得分:1)

在分配矢量之前,先对其进行重塑。

X[:,i] = example.reshape(-1,)

这将抑制第二维并将example变成形状(1000,)

或者,避免在循环中一一分配,您可以将所有数组放在列表中,然后在列表上调用np.array并将其转置为列。如果您可以在列表理解中构造数组列表,则可能会更好。

示例:

arrs = [np.random.randint(10, size=5) for _ in range(5)]
X = np.array(arrs).T