Python numpy按条件过滤二维数组

Python numpy按条件过滤二维数组,第1张

Python numpy按条件过滤二维数组

您可以使用

bool
可以产生的索引数组
np.in1d

您可以使用所需的

np.ndarray
任意值对a进行索引
axis
,例如使用
bool
s数组来指示是否应包含元素。由于您要沿索引
axis=0
,这意味着您要从最远的索引中进行选择,因此需要具有1D,
np.array
其长度为行数。它的每个元素都将指示是否应包含该行。

一种快速的方法是

np.in1d
在的第二列上使用
a
。您可以通过获得该列的所有元素
a[:,1]
。现在,您有了一个1D
np.array
,应该根据您的过滤器检查其元素。那
np.in1d
是为了什么。

因此完整的代码如下所示:

import numpy as npa = np.asarray([[2,'a'],[3,'b'],[4,'c'],[5,'d']])filter = np.asarray(['a','c'])a[np.in1d(a[:, 1], filter)]

或更长的形式:

import numpy as npa = np.asarray([[2,'a'],[3,'b'],[4,'c'],[5,'d']])filter = np.asarray(['a','c'])mask = np.in1d(a[:, 1], filter)a[mask]


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5650252.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存