您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python numpy按条件过滤二维数组

Python numpy按条件过滤二维数组

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

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

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

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

import numpy as np

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

或更长的形式:

import numpy as np

a = np.asarray([[2,'a'],[3,'b'],[4,'c'],[5,'d']])
filter = np.asarray(['a','c'])
mask = np.in1d(a[:, 1], filter)
a[mask]
python 2022/1/1 18:32:43 有258人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶