Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将字符串与空数组进行比较,获取FutureWarning_Python_Arrays_Numpy_Boolean - Fatal编程技术网

Python 将字符串与空数组进行比较,获取FutureWarning

Python 将字符串与空数组进行比较,获取FutureWarning,python,arrays,numpy,boolean,Python,Arrays,Numpy,Boolean,我构造了一个函数,其中字符串与字符串数组进行比较,如以下示例所示: 'A'==np.array(['A','B']) array([ True, False], dtype=bool) 我想要的是布尔数组,但有时我正在比较的数组是空的,我会得到一个警告。当我运行以下命令时,我能够重现FutureWarning: 'A'==np.array([]) /Users/fedgar01/anaconda/lib/python2.7/site-packages/ipykernel_launcher.

我构造了一个函数,其中字符串与字符串数组进行比较,如以下示例所示:

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

array([ True, False], dtype=bool)
我想要的是布尔数组,但有时我正在比较的数组是空的,我会得到一个警告。当我运行以下命令时,我能够重现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.

我应该忽略这个警告还是我做错了什么?

问题是,如何将标量
'a'
与空列表进行比较?答案应该是什么?因此,它需要比较两个操作数,因此只返回
False
,而不是空数组……对于我的函数,在这种情况下,我确实希望它输出
False
。所以听起来忽视警告是最好的做法?是的。那就没问题了。尽管正如警告所说,在将来,它们可能会返回一个空数组
np.array([])
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
In [19]: 'A'==np.array([],dtype='<U1')
Out[19]: array([], dtype=bool)
In [20]: np.array([]).dtype
Out[20]: dtype('float64')
In [21]: 12.34==np.array([])
Out[21]: array([], dtype=bool)