2017-07-10 4 views
-1
私は現在、numpyのバージョン1.12.1で働いています

のスカラーを返し、numpy.where()へのすべての呼び出しは、次の警告で空のリストを返します。numpy.where()関数は、FutureWarningを投げる代わりに、リスト

FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison 

np.where(date_now==dates_list) 

プログラムがその後numpy.where()の出力は非空であることを期待関数を呼び出すように、これは、エラーが発生します。私は、文字列、date_now、リスト、dates_listを比較しています。誰にもこれに対する解決策がありますか?

ありがとうございます。

+0

どのように 'numpy.where'を使用していますか? –

+2

'date_now'はリストかNumPy配列ですか?前者の場合は、 'np.where(np.array(dates_list)== date_now)'を試してください。それ以外の場合は、 'dates_list'全体の真理値を単一のオブジェクトとして文字列に対してテストしています。 –

+0

@ juanpa.arrivillaga文字列 'date_now'とリスト' dates_list'を初期化しました。変数 'temp = numpy.where(dates_list == date_now)'を作成しています。 – user5090779

答えて

0

現在の比較では、リストオブジェクト全体dates_listを文字列date_nowと比較しています。これはあなただけで2つのスカラー値を比較しているかのようにスカラーを失敗し、返すために、要素ごとの比較が発生します:あなたが欲しい

date_now = '2017-07-10'  
dates_list = ['2017-07-10', '2017-07-09', '2017-07-08']  
np.where(dates_list==date_now, True, False) 
Out[3]: array(0) 

を要素単位の比較を容易にするために、numpyの配列としてdates_list宣言することです。

np.where(np.array(dates_list)==date_now, True, False) 
Out[8]: array([ True, False, False], dtype=bool) 
関連する問題