按条件搜索numpy对象数组

时间:2017-11-06 19:12:15

标签: python numpy

假设我们有一个像这样的numpy数组: array([{'k': 1}, {'k': 2}, {'k': 3}]) 是否可以过滤掉仅满足特定条件的元素?例如,仅返回键为>的字典。 1.像lambda这样的filter()函数。我正在研究numpy.where(),但我无法弄清楚正确的语法。

1 个答案:

答案 0 :(得分:1)

这里没有什么特别的与numpy有关,只是

a = [{'k': 1}, {'k': 2}, {'k': 3}]
b = list(filter(lambda dic: dic['k'] > 1, a))

会奏效。

a = numpy.array([{'k': 1}, {'k': 2}, {'k': 3}])
b = numpy.array(list( filter(lambda dic: dic['k'] > 1, a) ) )

应该也可以。

重点是,如果你的数组是on -imensional并且删除了元素,你就不会获得numpy的任何优势 - Python的list完全有能力。

(假设Python3,顺便提一下。)