删除numpy数组中某个值的所有实例



我想删除一个以行为单位的numpy数组中某个值的所有实例。

a = array([5,1,2,4,9,2]).reshape(-1, 1)
print("before delete", a)
a = np.delete(a, np.where(a == 2))
print("after delete", a)

输出为

before delete [[5]
[1]
[2]
[4]
[9]
[2]]
after delete [1 4 9]

我不知道为什么5被删除了。我希望看到

[[5]
[1]
[4]
[9]]

我该怎么解决?

np.where在本例中返回2个数组。第一个是等于2的值的索引,但不需要第二个。你需要抓住第一个:

a = np.delete(a, np.where(a == 2)[0])

输出:

>>> a
array([5, 1, 4, 9])

最新更新