假设我有一个数字数组的字符串:
arr = np.array(['cat', 'dog', 'bird', 'swiss army knife'])我想去掉“瑞士军刀”的绳子。
做这件事最好的方法是什么?
这似乎是非常直接的事情,但我还没有找到一个解决方案,不涉及排序和/或找到元素的索引,并使用它来分割所需数组的选择。
np.delete似乎不适用于字符串。
发布于 2022-04-26 14:35:30
我希望这是适合你的。
import numpy as np
arr = np.array(['cat', 'dog', 'bird', 'swiss army knife'])
result = np.where(arr=='swiss army knife')[0]
arr = np.delete(arr,result)
print(arr)发布于 2022-04-26 14:35:49
通过掩蔽:
mask = arr != 'swiss army knife'
result = arr[mask]
# ['cat' 'dog' 'bird']或者在一行中作为arr[arr != 'swiss army knife']
发布于 2022-04-26 14:49:14
没有根据数组的值从np.array中删除值的方法。Numpy的删除擦除值基于索引。所以,在这种情况下,就像:
arr = np.array(['cat', 'dog', 'bird', 'swiss army knife'])
arr = np.delete(arr, 3)相反,您可以使用:
arr = np.array(['cat', 'dog', 'bird', 'swiss army knife'])
arr = arr[arr != 'swiss army knife']或
arr = np.array(['cat', 'dog', 'bird', 'swiss army knife'])
arr = np.delete(arr, np.argwhere(arr == 'swiss army knife'))https://stackoverflow.com/questions/72015664
复制相似问题