我想删除一个以行为单位的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])