如何对Numpy数组进行模式匹配?

yuvru6vn  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(131)

我是一个新用户,所以我需要一些指导。
假设我有这个3x3矩阵:

  1. [[ -1, 1, 1],
  2. [ -1, 1, 1],
  3. [ -1, -1, -1]]

例如,我希望检测与以下内容的匹配:

  1. [[any, 1, 1],
  2. [any, 1, 1],
  3. [any, any, any]]

(在本例中,匹配将为True)
Numpy有没有一个简单的函数/诀窍可以做到这一点?

r7knjye2

r7knjye21#

您可以使用遮罩和NaN:

  1. a = np.array([[ -1, 1, 1],
  2. [ -1, 1, 1],
  3. [ -1, -1, -1]])
  4. m = np.array([[np.nan, 1, 1],
  5. [np.nan, 1, 1],
  6. [np.nan, np.nan, -1]])
  7. out = ((a == m) | np.isnan(m)).all()
  8. # True

相关问题