繁体   English   中英

通过 function 过滤 numpy 数组

[英]Filter a numpy array by function

我有一个 2D numpy 数组,格式如下:

array([[0, 4],
       [1, 5],
       [2, 6]])

我想过滤掉它们的第一个值大于 1 的行,但我找不到 numpy function 这样做。

我知道我可以使用filter

np.array(list(filter((lambda x: x[0] <= 1), my_arr)))

这种方法效率不高,因为我需要将结果转换为列表,而不是转换为 numpy 数组。 有没有更好的办法?

没有numpy接口可以使用 function 有效地执行此操作。 但是,在这种特殊情况下,您只需要以下内容:

>>> import numpy as np
>>> arr = np.array([[0, 4],
...        [1, 5],
...        [2, 6]])
>>> arr[arr[:,0] <= 1]
array([[0, 4],
       [1, 5]])
import numpy as np

arr=np.array([[0, 4],
       [1, 5],
       [2, 6]])

newarr=[]

for fetch in arr:
    if(fetch[0]>1):
        newarr.append(fetch)
        
print(newarr) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM