【发布时间】:2016-12-19 00:18:44
【问题描述】:
这里是 Python 新手,我已经阅读了 Filter rows of a numpy array? 和文档,但仍然无法弄清楚如何以 Python 方式对其进行编码。
我有的示例数组:(实际数据为 50000 x 10)
a = numpy.asarray([[2,'a'],[3,'b'],[4,'c'],[5,'d']])
filter = ['a','c']
我需要找到a 和a[:, 1] in filter 中的所有行。预期结果:
[[2,'a'],[4,'c']]
我当前的代码是这样的:
numpy.asarray([x for x in a if x[1] in filter ])
它工作正常,但我在某处读到它效率不高。什么是正确的 numpy 方法?
编辑:
感谢所有正确答案!不幸的是,我只能将一个标记为已接受的答案。我很惊讶numpy.in1d 没有出现在谷歌搜索numpy filter 2d array 中。
【问题讨论】:
标签: python arrays python-2.7 numpy