警告:将遮罩元素转换为nan

2024-10-02 20:39:12 发布

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

我是个初学者,所以请你容忍我。 我用“五把小提琴”制作了一个小提琴情节,但由于某种原因,最后一把小提琴没有画出来,我得到了错误信息:

/home/leo/anaconda3/lib/python3.6/site-packages/numpy/ma/core.py:4185: UserWarning: Warning: converting a masked element to nan.

我不明白为什么我收到这个消息,因为我没有对任何数组使用掩码。那么这到底意味着什么呢? 还有一些其他警告,如:

^{pr2}$

我想这只是ST_dist造成问题的原因,我不知道为什么,因为我没有做任何不同于其他列表的事情。
这是我的代码:

import numpy as np
import matplotlib.pyplot as plt

CD_dist=[]
CC_dist=[]
IM_dist=[]
IC_dist=[]
ST_dist=[]

fig,(axes1,axes2) = plt.subplots(nrows=2,ncols=1,figsize=(10,20))  

for t in range(0,len(D)):
    for la in range(0,len(lat_reg)):
       for lo in range(0,len(lon_reg1)):

         if(reg_ran[t,la,lo]==1):
            CD_dist.append(D[t,indlat,indlon])
         elif(reg_ran[t,la,lo]==2):
            CC_dist.append(D[t,indlat,indlon])
         elif(reg_ran[t,la,lo]==3):
            IM_dist.append(D[t,indlat,indlon])   
         elif(reg_ran[t,la,lo]==4):
            IC_dist.append(D[t,indlat,indlon])
         elif(reg_ran[t,la,lo]==5):
            ST_dist.append(D[t,indlat,indlon])
         elif(reg_ran[t,la,lo]==6):
            ST_dist.append(D[t,indlat,indlon])
         elif(reg_ran[t,la,lo]==7):
            ST_dist.append(D[t,indlat,indlon])
         elif(reg_ran[t,la,lo]==8):
            ST_dist.append(D[t,indlat,indlon])

ST_dist=list(np.array(ST_dist).astype(np.float32))

dist=[CD_dist,CC_dist,IM_dist,IC_dist,ST_dist]

axes1.boxplot(dist)
axes2.violinplot(dist,showmeans=False,showmedians=True)

pfile.savefig()
plt.close()  

我试图屏蔽数组,并用ST_dist=list(np.array(ST_dist).astype(np.float32))行删除被屏蔽的值。但它不起作用。在

这就是plot到目前为止的样子。
有人知道为什么ST_dist没有被绘制出来吗?在


Tags: lodistnpcdpltreglacc