gpt4 book ai didi

python - 根据numpy python中的条件对二维数组进行子集化

转载 作者:行者123 更新时间:2023-11-28 17:27:52 25 4
gpt4 key购买 nike

我有一个大小为 3600 * 7200 的 numpy 二维数组。我有另一个形状相同的数组,我想将其用作 mask 。

问题是当我做这样的事情时:

import numpy as np
N = 10
arr_a = np.random.random((N,N))
arr_b = np.random.random((N,N))
arr_a[arr_b > 0.0]

生成的数组不再是二维的,而是一维的。如何获得二维数组作为返回?

最佳答案

您可以使用 np.where 来保留形状:

np.where(arr_b > 0.0, arr_a, np.nan)

当arr_b的值大于0时,会从arr_a中取对应的值,否则会使用np.nan。

import numpy as np
N = 5
arr_a = np.random.randn(N,N)
arr_b = np.random.randn(N,N)
np.where(arr_b > 0.0, arr_a, np.nan)

Out[107]:
array([[ 0.5743081 , nan, -1.69559034, nan, 0.4987268 ],
[ 0.33038264, nan, -0.27151598, nan, -0.73145628],
[ nan, 0.46741932, 0.61225086, nan, 1.08327459],
[ nan, -1.20244926, 1.5834266 , -0.04675223, -1.14904974],
[ nan, 1.20307104, -0.86777899, nan, nan]])

关于python - 根据numpy python中的条件对二维数组进行子集化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37177688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com