2017-08-07 20 views
0

を取得します私は空と比較していると私は警告を得る。比較文字列は、私は、文字列は次の例のように文字列の配列を比較する機能を構築FutureWarning

'A'==np.array([]) 

/Users/fedgar01/anaconda/lib/python2.7/site-packages/ipykernel_launcher.py:1: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison 
    """Entry point for launching an IPython kernel. 

警告を無視するか、間違っているのはどうすればよいですか?

+1

スカラーの「A」と空のリストを比較するにはどうすればいいですか?答えは何でしょうか?したがって、2つのオペランドを比較すると、戻り値が返され、 'False'だけ返されます** **空の配列ではありません... –

+0

私の関数では、この場合' False'を出力します。だから、警告を無視するように聞こえるのは最高のことですか?確かに –

+0

はい。それで問題はない。警告によれば、将来は空の配列 'np.array([]) 'を返すでしょう。 –

答えて

1
In [16]: np.array(['A','B']) 
Out[16]: 
array(['A', 'B'], 
     dtype='<U1') 
In [17]: 'A'==np.array(['A','B']) 
Out[17]: array([ True, False], dtype=bool) 

In [18]: 'A'==np.array([]) 
/usr/local/bin/ipython3:1: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison 
    #!/usr/bin/python3 
Out[18]: False 

私は正しい文字列DTYPEを指定した場合、私は空のブール値を取得:空の配列のための

In [19]: 'A'==np.array([],dtype='<U1') 
Out[19]: array([], dtype=bool) 

デフォルトDTYPEはフロートです。数値の比較は警告なしで実行されます。

In [20]: np.array([]).dtype 
Out[20]: dtype('float64') 
In [21]: 12.34==np.array([]) 
Out[21]: array([], dtype=bool)