首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何轻松地从字符串的numpy数组中删除字符串元素?

如何轻松地从字符串的numpy数组中删除字符串元素?
EN

Stack Overflow用户
提问于 2022-04-26 14:23:35
回答 4查看 975关注 0票数 -2

假设我有一个数字数组的字符串:

代码语言:javascript
复制
arr = np.array(['cat', 'dog', 'bird', 'swiss army knife'])

我想去掉“瑞士军刀”的绳子。

做这件事最好的方法是什么?

这似乎是非常直接的事情,但我还没有找到一个解决方案,不涉及排序和/或找到元素的索引,并使用它来分割所需数组的选择。

np.delete似乎不适用于字符串。

EN

回答 4

Stack Overflow用户

发布于 2022-04-26 14:35:30

我希望这是适合你的。

代码语言:javascript
复制
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)
票数 0
EN

Stack Overflow用户

发布于 2022-04-26 14:35:49

通过掩蔽:

代码语言:javascript
复制
mask = arr != 'swiss army knife'
result = arr[mask]
# ['cat' 'dog' 'bird']

或者在一行中作为arr[arr != 'swiss army knife']

票数 0
EN

Stack Overflow用户

发布于 2022-04-26 14:49:14

没有根据数组的值从np.array中删除值的方法。Numpy的删除擦除值基于索引。所以,在这种情况下,就像:

代码语言:javascript
复制
arr = np.array(['cat', 'dog', 'bird', 'swiss army knife'])
arr = np.delete(arr, 3)

相反,您可以使用:

代码语言:javascript
复制
arr = np.array(['cat', 'dog', 'bird', 'swiss army knife'])
arr = arr[arr != 'swiss army knife']

代码语言:javascript
复制
arr = np.array(['cat', 'dog', 'bird', 'swiss army knife'])
arr = np.delete(arr, np.argwhere(arr == 'swiss army knife'))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72015664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档