我目前正在使用NumPy版本1.12.1,每次调用numpy.where()
都会返回一个空列表,其中包含以下警告:
FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
我正在比较字符串date_now
和列表dates_list
:
np.where(date_now==dates_list)
这会导致错误,因为程序随后会调用期望numpy.where()输出为非空的函数。有人有解决方案吗?
提前致谢。
答案 0 :(得分:0)
在当前比较中,您将整个列表对象dates_list
与字符串date_now
进行比较。这将导致元素比较失败并返回标量,就像您只是比较两个标量值一样:
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)
你想要的是将dates_list
声明为NumPy数组以促进逐元素比较。
np.where(np.array(dates_list)==date_now, True, False)
Out[8]: array([ True, False, False], dtype=bool)