2013-09-30 12 views
10

データの一部に「数値ではない」値が含まれているときにヒストグラムを作成する際に問題があります。私はnumpyからnan_to_numを使ってエラーを取り除くことができますが、ヒストグラムを混乱させるゼロ値が多くなります。ピラブのヒストグラムがNを取り除く

pylab.figure() 
pylab.hist(numpy.nan_to_num(A)) 
pylab.show() 

だから、アイデアは、すべてのNaN値がなくなっている別の配列を作るために、または単に(できれいくつかの組み込みの方法で)何らかの方法でヒストグラムでそれらをマスクするだろう。

答えて

24

これは値がnanではありませんA内のすべてのエントリを選択しますので、ヒストグラムを計算するとき、彼らは除外されます、A[~np.isnan(A)]を使用して、配列からnp.nan値を削除します。ここではそれを使用する方法の例です:あなたはドキュメントのこと〜文を見つけ

>>> import numpy as np 
>>> import pylab 

>>> A = np.array([1,np.nan, 3,5,1,2,5,2,4,1,2,np.nan,2,1,np.nan,2,np.nan,1,2]) 

>>> pylab.figure() 
>>> pylab.hist(A[~np.isnan(A)]) 
>>> pylab.show() 
作品

enter image description here

+0

、おかげで(私はわずか4分であなたの答えを受け入れることができます)全くわからないが、それは動作します – usethedeathstar

+0

@usethedeathstar [ここに '〜'](http://docs.scipy.org/doc/numpy/reference/generated/numpy.invert.html)と[ここに実装されているすべてのビット演算子がありますnumpy](http://docs.scipy.org/doc/numpy/reference/routines.bitwise.html) – askewchan

+1

'〜'演算子について知らなかったら、 'A [np.isfinite A)] 'これはおそらくもっとあなたが望むものです。 – askewchan

関連する問題