根据numpy Python中的条件对2D数组进行子集化

用户名

我有一个大小为3600 * 7200的numpy 2D数组。我还有另一个要用作遮罩的形状相同的数组。

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

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]

结果数组不再是2D,而是1D。如何获得二维数组作为回报?

艾汉

您可以使用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]])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据numpy Python中的条件对2D数组进行子集化

来自分类Dev

根据条件切片2D numpy数组

来自分类Dev

根据列表从2D Numpy数组中删除元素

来自分类Dev

在python中对2d numpy数组进行下采样

来自分类Dev

根据Python中的变量将n维numpy数组转换为2D数组

来自分类Dev

根据条件分配numpy数组

来自分类Dev

根据条件调整numpy数组

来自分类Dev

根据条件更新Numpy数组

来自分类Dev

numpy标准化4D数组的2D子集

来自分类Dev

如何根据条件从NumPy矩阵中获取行的子集?

来自分类Dev

根据布尔分割numpy数组

来自分类Dev

根据值拆分Numpy数组

来自分类Dev

根据索引屏蔽numpy数组

来自分类Dev

根据值拆分Numpy数组

来自分类Dev

根据布尔条件进行 Numpy ndarray 广播

来自分类Dev

根据熊猫数据框替换numpy 2D数组中的值

来自分类Dev

根据接近度从2D numpy数组中删除元素

来自分类Dev

根据条件创建新的numpy数组

来自分类Dev

根据条件创建新的numpy数组

来自分类Dev

根据多个条件更新 numpy 数组值

来自分类Dev

根据不同数组的条件交换2个Numpy数组

来自分类Dev

根据数组中的值拆分NumPy数组(条件)

来自分类Dev

Python:numpy / pandas根据条件更改值

来自分类Dev

根据numpy中的条件随机选择索引

来自分类Dev

根据系数调整numpy数组中的值

来自分类Dev

NumPy检查2D数组是否是2D数组的子集

来自分类Dev

numpy-根据索引将2D数组拆分为子数组

来自分类Dev

Numpy根据条件将3D阵列缩小为2D

来自分类Dev

根据值将标量映射到数组:2D到3D图像处理-NumPy / Python