2次元配列を含む辞書があります。私はこの方法で平均を計算しようとしましたが、配列にもnan値が含まれているため動作しません。平均を計算する簡単な方法はありますか?2次元配列のnp.nanmeanの計算方法
All = np.zeros(385000).reshape(550,700)
for i in dic.keys():
a = dic[i]['data']
avg = (All+a)/len(dic.keys())
2次元配列を含む辞書があります。私はこの方法で平均を計算しようとしましたが、配列にもnan値が含まれているため動作しません。平均を計算する簡単な方法はありますか?2次元配列のnp.nanmeanの計算方法
All = np.zeros(385000).reshape(550,700)
for i in dic.keys():
a = dic[i]['data']
avg = (All+a)/len(dic.keys())
あなたがNaNs
を無視して、両方の入力a
とb
渡っ要素ごと考慮平均を発見しようとしているようです。したがって、1つの方法は、np.dstack
でこれらの2つの配列を積み重ねることです。a
とb
を3番目の軸に沿って積み重ねて、同じ軸に沿ってnp.nanmean
を単純に使用します。
np.nanmean(np.dstack((a,b)),axis=2)
サンプル実行 - - 掲載のコードに示すように、あなたが辞書からのもの2D
の配列を取得することとなる場合については
In [28]: a
Out[28]:
array([[ 2., nan],
[ 5., 4.]])
In [29]: b
Out[29]:
array([[ nan, 3.],
[ 7., 2.]])
In [30]: np.nanmean(np.dstack((a,b)),axis=2)
Out[30]:
array([[ 2., 3.],
[ 6., 3.]])
したがって、我々はそうのようなシンプル実装を持っているでしょうループの理解度を使って、配列をnp.dstack
の3D
配列として収集し、最終的にはnp.nanmean
を最後の軸に沿って使用すると、
np.nanmean(np.dstack([d['data'] for d in dic]),axis=2)
あなたは 'np.nanmean'を試しましたが、それはうまくいかなかったのですか?どのように使ったのですか? – Divakar
私はa = np.array([2、np.nan、5,4])。reshape(2,2)とb = np.array([np.nan、3,7,2])と仮定します。 (2,2)、私はnp.nanmean(a、b)を計算しようとしましたが、うまくいきません...上記の例ではarray([[2,3]、[6,3])のような結果が期待されます – bikuser