gpt4 book ai didi

python - 用一维数组中的值替换二维数组中的填充值

转载 作者:太空宇宙 更新时间:2023-11-04 07:53:21 25 4
gpt4 key购买 nike

我的目标是使用与二维数组中的值模式完全匹配的一维数组中的值填充二维数组。例如:

array_a = 
([[nan,nan,0],
[0,nan,0],
[nan,0,0],
[0,0,nan]])

array_b =
([0.324,0.254,0.204,
0.469,0.381,0.292,
0.550])

我想得到这个:

array_c = 
([[nan,nan,0.324],
[0.254,nan,0.204],
[nan,0.469,0.381],
[0.292,0.550,nan]])

array_a 中需要填充的值的数量将与array_b 中的值的数量完全匹配。主要问题是我想在整个数组中以适当的顺序排列 nan 值,但我不确定如何最好地做到这一点。

最佳答案

bool 索引很好地完成了这项工作:

找到nan:

In [229]: mask = np.isnan(array_a)
In [230]: mask
Out[230]:
array([[ True, True, False],
[False, True, False],
[ True, False, False],
[False, False, True]])

应用于数组的 bool 掩码产生一维数组:

In [231]: array_a[~mask]
Out[231]: array([0., 0., 0., 0., 0., 0., 0.])

set 上下文中使用相同的数组:

In [232]: array_a[~mask]=array_b
In [233]: array_a[~mask]
Out[233]: array([0.324, 0.254, 0.204, 0.469, 0.381, 0.292, 0.55 ])
In [234]: array_a
Out[234]:
array([[ nan, nan, 0.324],
[0.254, nan, 0.204],
[ nan, 0.469, 0.381],
[0.292, 0.55 , nan]])

关于python - 用一维数组中的值替换二维数组中的填充值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52085817/

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