【问题标题】:Numpy matrix comparison to several criteriaNumpy 矩阵与几个标准的比较
【发布时间】:2016-11-29 10:37:17
【问题描述】:

我正在比较一个 numpy 矩阵中的值。

最初我想检查矩阵 m 中是否有任何值小于 X,所以我使用了:

(m<(X)).any()

效果很好,但现在我希望它忽略矩阵中的所有 0 值,所以本质上是告诉我矩阵 m 中的任何值是否在 0

我已经想出了一个方法来做到这一点,通过一段时间的观察,我希望可能有一个与上面类似的函数可以解决这个问题?

非常感谢

【问题讨论】:

标签: python numpy matrix string-comparison


【解决方案1】:

很像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)

因为这可以为您提供一个更有用的数组来保留位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 2017-08-13
    • 2014-12-12
    • 1970-01-01
    • 2016-07-31
    相关资源
    最近更新 更多