如何将 nan 值设置为具有多个条件的 numpy 数组

问题描述 投票:0回答:1

我有一些值的 numpy 数组。我希望值 2,3 和 7 的点保持不变,但其他值将为 nan。

原始 nympy 数组看起来像这样

  [[0, 7, 2, ..., 1, 6, 0],
   [5, 3, 0, ..., 2, 5, 0],
   ...,
   [8, 2, 0, ..., 1, 0, 7],
   [0, 3, 2, ..., 0, 2, 0],
   [7, 1, 0, ..., 0, 7, 0]],

我的预期结果是

  [[nan, 7, 2, ..., nan, nan, nan],
   [nan, 3, nan, ..., 2, nan, nan],
   ...,
   [nan, 2, nan, ..., nan, nan, 7],
   [nan, 3, 2, ...,   nan, 2, nan],
   [7, nan, nan, ..., nan, 7, nan]],
python arrays numpy
1个回答
0
投票

组合

np.isin
np.where

a = np.array([[0, 7, 2, 1, 6, 0],
              [5, 3, 0, 2, 5, 0],
              [8, 2, 0, 1, 0, 7],
              [0, 3, 2, 0, 2, 0],
              [7, 1, 0, 0, 7, 0]],)

out = np.where(np.isin(a, [2, 3, 7]), a, np.nan)

输出:

array([[nan,  7.,  2., nan, nan, nan],
       [nan,  3., nan,  2., nan, nan],
       [nan,  2., nan, nan, nan,  7.],
       [nan,  3.,  2., nan,  2., nan],
       [ 7., nan, nan, nan,  7., nan]])
© www.soinside.com 2019 - 2024. All rights reserved.