为什么np.sum不输出任何东西?

2024-09-28 22:37:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个相同大小的2D数组,我试着将一个除以另一个,然后取一个轴上的和? 然而,我有一些被零除的N,但是当我尝试将被除的数组平方,然后在其中一个轴上求和时,我只得到一个空白图:

east_rad = projections(np.real(inv_east_annual), 180)

rt_maha = projections(maha,180)

#dividing east_rad by rt_maha, rt_maha and east_rad both have shapes (1092, 180)

divide = east_rad/rt_maha

print(divide)

[[ 2.10160938e-17             nan -1.32855114e-02 ...             nan
  -1.24334979e-02             nan]
 [-2.59884274e-18 -6.19052022e-03 -1.11166036e-02 ... -1.27420254e-02
  -1.19839709e-02 -7.97509023e-03]
 [-1.34877182e-16 -5.03856340e-03 -5.29428667e-03 ... -1.80663486e-02
  -1.57691530e-02 -1.44670544e-02]


var = np.sum(divide**2,axis=0)

plt.plot(var)
plt.show()

empty plot

我该如何解决这个问题?所以它实际上显示了一个情节。。。或者至少忽略南

我还尝试了np.where(divide==np.nan,divide,0),但我只得到了零


Tags: varnpplt数组nanreal空白rt
2条回答

您可以执行以下操作:

divsq = divide**2
np.sum(divsq, where = ~np.isnan(divsq), axis = 0)

在计算总和时忽略NaN元素

不确定在这种情况下被零除意味着什么,但你可以试试

divide = east_rad/rt_maha
divide[np.isnan(divide)] = 0

将你的NAN归零以进行绘图

相关问题 更多 >