array中的nan值替换

最近在处理数据,发现包含时间的三维array中存在缺省值,而搜到的关于缺省值得处理大部分都是针对df来的,所以,就想写一个,记录一下。

首先,利用np.where将缺省值用nan进行替换,然后进行循环,在每个二维数组进行操作,程序!

import pandas as pd
import numpy as np
a=np.random.randint(-4,5,(3,4))
#%%
b=np.where(a==0,np.nan,a)
#%%
e = np.empty(shape=(2, 3, 2))
c=b.reshape(2,3,2)
#%%
for i in range(2):
    c1=c[i,:,:]
    d=np.nanmean(c1)
    c1[np.isnan(c1)]=d
    e[i,:,:]=c1
    np.where很好用啊,倒数第二行利用np.where应该也能实现。

下面是结果,前

array中的nan值替换_第1张图片

后:

array中的nan值替换_第2张图片

 如果有更好的方法,希望大家多多指教哈!

 

 

 

你可能感兴趣的:(python,numpy,pandas)