使用numpy.where()创建一个新数组

时间:2018-10-03 07:21:57

标签: python numpy

说我有2个数组AB

A的形状为(2, 400),为400 (x, y)

B的形状为(1, 400),每400个(x, y)点中的每一个都为0或1

我想创建一个新的数组C,使得:

If B[i] == 0, C[i] = [10, 10, 10]
If B[i] == 1, C[i] = [20, 20, 20]

因此C的形状应为(400,3)。

我知道一种有效的方法是使用np.where(),但我不知道如何对2D矩阵执行此操作。

1 个答案:

答案 0 :(得分:0)

您不需要np.where,而是使用倍增或matmul,因为您已经有一个掩码。我是通过np.matmul(B,np.ones((1,3))*10)+10np.multiply(B,np.ones(3) * 10)+10