我想在一个大数组上执行两个过滤和一个替换步骤,但是我无法找到一种不做一些复制或for循环的高效方法。在
例如,想象两个大小不同的numpy数组。我想用两个过滤器。第一个过滤器只选择b中低于6(b’)的元素,第二个过滤器在a低于b’时用a的值替换b’的值:
a = np.array( [ 2,2,2,2,2,2] )
b = np.array( [ 0,1,2,3,4,5,6,7,8,9] )
我通过选择低于6的b元素进行第一次掩蔽:
^{pr2}$现在,我想用a和b[m]之间的最小值替换b[m]的值,得到b中的预期结果:
[ 0,1,2,2,2,2,6,7,8,9]
使用:
n = a < b[m]
b[m][n] = a[n]
不起作用。可能是因为一些中间数组。与
c = np.array( [ 0, 1, 2, 3, 4, 5 ] )
我可以直接做:
c[ a < c ] = a [ a < c ]
而且很管用。有没有很酷的切片方法可以不做二次阵列? 谢谢。在
相关问题 更多 >
编程相关推荐