从numpy数组中删除特定元素[PREVIOUSLY]按数据类型从numpy数组中选择元素

时间:2017-08-21 14:45:09

标签: python python-3.x numpy

我希望仅保留str数据类型,并从numpy数组中删除所有其他数据类型,例如int floatNaN

从numpy数组中,我想删除某些工件元素,例如#NAME?nan。我从外部程序中得到了这个numpy数组,所以除了自己重写整个外部程序之外我几乎没有机会。

我从程序收到的numpy数组在打印到控制台时如下所示:

['st' 'ts' 'rs' nan '#NAME?' '0'];

从此,我想删除nan#NAME?0。我之前认为这些不是字符串类型,但是,在我们的SO成员正确指出字符串类型之后,我意识到它们是字符串类型。

现在我要从数组中删除nan#NAME?0。阵列的长度因每次运行而异,并且这些元素的索引也会变化。怎么做?

我感谢您的所有努力。非常感谢。

虽然我理解在numpy数组中使用混合数据类型并不是最佳的,但我受限于这种情况,因为我从程序接收numpy.ndarray的输出。

<德尔> 探索过`numpy.select`。但是,看起来我只能按值而不是数据类型。内联修剪会好得多。有什么帮助吗?

<德尔> 修改 为一个没有问题的问题道歉。我想从numpy数组中删除0#NAME?。我很感激努力。谢谢你们。

1 个答案:

答案 0 :(得分:0)

请注意numpy.select采用任意条件列表。您可以使用条件isinstance(x, str)来检查xstr类型