0
import numpy as np
import pandas as pd
import numpy.ma as ma
a = np.zeros((2,3,2))
a[0]=1
a[1]=3
a[0,0,1]=np.nan
a[0,1,1]=np.nan
a=ma.masked_invalid(a)
a
Out[17]:
masked_array(data =
[[[1.0 --]
[1.0 --]
[1.0 1.0]]
[[3.0 3.0]
[3.0 3.0]
[3.0 3.0]]],
mask =
[[[False True]
[False True]
[False False]]
[[False False]
[False False]
[False False]]],
fill_value = 1e+20)
我想使用np.mean
像下面的結果的差異:之間np.mean和pandas.mean
b = np.mean(a,axis=0)
b
Out[18]:
masked_array(data =
[[2.0 3.0]
[2.0 3.0]
[2.0 2.0]],
mask =
[[False False]
[False False]
[False False]],
fill_value = 1e+20)
它忽略NaN
值和保留屏蔽數組,計算的平均時沿着axis=0
排列。
但是,當我用熊貓創建一個小組,並計算數組的平均值:
p = pd.Panel(a)
b1=p.mean(axis=0)
b1.values
Out[25]:
array([[ 2. , 1.5],
[ 2. , 1.5],
[ 2. , 2. ]])
看來,在對待大熊貓值NaN
爲零,並且沒有掩蓋陣列平均方法。
我的問題是如何使用熊貓獲得相同的結果,如使用np.mean
?
感謝它獲得數組的值,但它不包括遮罩陣列。如果我直接使用熊貓,如何獲得掩碼數組? – Wei