我正在努力比较numpy矩阵中的值。
最初我想检查矩阵m中的任何值是否小于X,所以我使用了:
(m<(X)).any()
哪个工作正常,但现在我希望它忽略矩阵中的所有0值,所以实质上告诉我矩阵m中的任何值是否在该范围内0&lt; m&lt; X
我已经找到了一种方法,通过进行一段时间看看,希望可能有类似的功能,可以做到这一点?
非常感谢
答案 0 :(得分:0)
很像here,你可以做
np.where(np.logical_and(0<a,a<6))
它会给你两个数组,告诉你矩阵中的位置。
(array([0, 0, 1, 1, 1], dtype=int32),
array([1, 2, 0, 1, 2], dtype=int32))
与上面不同,你有一个n维数组,其输出可能没有使用masked array
那么有用b=np.ma.masked_where(np.logical_or(a<=0,a>=6),a)
b
Out[40]:
masked_array(data =
[[-- 1 2]
[3 4 5]
[-- -- --]],
mask =
[[ True False False]
[False False False]
[ True True True]],
fill_value = 999999)
因为这可以为您提供一个更有用的数组来保留位置。