如果我有这个
一种使用
有没有比这两种方法更优雅/更快的numpy/scipy方法?如果没有,那么以上两种方法中哪一种最好?
numpy
数组:>>> a
array([[ 1, 2, 3],
[ 4, 4, 6],
[ 4, 10, 9]])
最快的方法是选择满足至少有N
个元素条件成立的所有行?
例如,选择至少有两个数字可以被2整除的所有行。
我想到的解决方案是:
@ find rows where 2 or more elements are evenly divisible by two
N = 2
a[where(array(map(lambda x: sum(x), a % 2 == 0)) >= N)]
一种使用
apply_along_axis
的替代方案是:a[where(sum(numpy.apply_along_axis(lambda x: x % 2 == 0, 1, a), axis=1) >= 2)]
有没有比这两种方法更优雅/更快的numpy/scipy方法?如果没有,那么以上两种方法中哪一种最好?