use*_*350 5 python arrays numpy
如何获取第二列等于4或6的行?
a = np.array(np.mat('1 2; 3 4; 5 6; 7 4'))
b = [4,6]
Run Code Online (Sandbox Code Playgroud)
显然,这不起作用:
c = a[a[:,1] in b]
Run Code Online (Sandbox Code Playgroud)
Jai*_*ime 10
这样做的numpythonic方式是使用in1d
,例如:
a[np.in1d(a[:, 1], b)]
Run Code Online (Sandbox Code Playgroud)
您可以使用itertools.ifilter
:
from itertools import ifilter
c = np.array([ e for e in ifilter(lambda x: x[1] in b, a) ])
>> array([[3,4],
[5,6],
[7,4]])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
799 次 |
最近记录: |