我有一些值的 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]],
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]])