python numpy的位置和布尔数组之间的区别

时间:2014-10-23 08:41:01

标签: arrays numpy mask

我有两个numpy数组:myarraymask,它们都是双向数组(仅限1和0)。

之间有什么区别
myarray[mask] = 0

myarray = np.where( mask, 0, myarray )

? 因为我得到了不同的结果,无法弄清楚原因。

1 个答案:

答案 0 :(得分:3)

由于你说mask包含1和0,问题是NumPy将这些视为索引而不是掩码。您可能希望mask为布尔类型(True / False),在这种情况下,它可以与myarray的长度相同,并将选择mask为True的元素。 / p>

np.where()总是将第一个参数视为布尔数组,因此它可能已经完成了你想要的。