我希望能够从一个具有特定值的numpy数组中删除一个元素。然而,如果存在多个相同值的元素,则只想要删除其中一个(哪个不重要)。即:
import numpy as np
a = np.array([1, 1, 2, 6, 8, 8, 8, 9])
我如何删除一个8的实例?具体来说:
a_new = np.delete(a, np.where(a == 8))
print(a_new)
删除所有数字8。
我希望能够从一个具有特定值的numpy数组中删除一个元素。然而,如果存在多个相同值的元素,则只想要删除其中一个(哪个不重要)。即:
import numpy as np
a = np.array([1, 1, 2, 6, 8, 8, 8, 9])
我如何删除一个8的实例?具体来说:
a_new = np.delete(a, np.where(a == 8))
print(a_new)
删除所有数字8。
您可以简单地选择一个指数:
In [3]: np.delete(a, np.where(a == 8)[0][0])
Out[3]: array([1, 1, 2, 6, 8, 8, 9])
如果您知道至少有一个8
,则可以使用argmax
:
np.delete(a,(a==8).argmax())
# array([1, 1, 2, 6, 8, 8, 9])
idx = (a==8).argmax()
if a[idx] == 8:
result = np.delete(a,idx)
else: # no 8 in a
# complain