Python 处理熊猫和NumPy中的0和-0

Python 处理熊猫和NumPy中的0和-0,python,python-2.7,numpy,pandas,Python,Python 2.7,Numpy,Pandas,在pandas中执行元素相乘之后,我在一个数据帧元素中得到一个负零值,在另一个数据帧元素中得到一个常规零值。Python表示它们是相等的,但显示方式不同。它们在什么水平上不相等?这将如何影响以后的计算 In[100]: import numpy as np import pandas as pd In[101]: df_a = pd.DataFrame([[-5.2,3.1,2.8],[1,2,3],[4,5,4]], columns=['Col0','Col1','Col2'], index

在pandas中执行元素相乘之后,我在一个数据帧元素中得到一个负零值,在另一个数据帧元素中得到一个常规零值。Python表示它们是相等的,但显示方式不同。它们在什么水平上不相等?这将如何影响以后的计算

In[100]:
import numpy as np
import pandas as pd

In[101]:
df_a = pd.DataFrame([[-5.2,3.1,2.8],[1,2,3],[4,5,4]], columns=['Col0','Col1','Col2'], index=['Row0','Row1','Row2'])
df_b = pd.DataFrame([[0,0,2],[1,2,3],[4,5,4]], columns=['Col0','Col1','Col2'], index=['Row0','Row1','Row2'])
df_c = df_a * df_b

In[102]: print df_a
Out[102]:
      Col0  Col1  Col2
Row0  -5.2   3.1   2.8
Row1   1.0   2.0   3.0
Row2   4.0   5.0   4.0

In[103]: print df_b
Out[103]:
      Col0  Col1  Col2
Row0     0     0     2
Row1     1     2     3
Row2     4     5     4

In[104]: print df_c
Out[104]:
      Col0  Col1  Col2
Row0    -0     0   5.6
Row1     1     4   9.0
Row2    16    25  16.0

In[105]:
negative_zero = df_c.iloc[0,0]
positive_zero = df_c.iloc[0,1]
print(negative_zero == positive_zero)

Out[105]:
True

In[106]: print(type(negative_zero))
Out[106]: <type 'numpy.float64'>

In[107]: print(type(positive_zero))
Out[107]: <type 'numpy.float64'>
[100]中的

将numpy作为np导入
作为pd进口熊猫
在[101]中:
df_a=pd.DataFrame([-5.2,3.1,2.8],[1,2,3],[4,5,4]],列=['Col0','Col1','Col2',],索引=['Row0','Row1','Row2'])
df_b=pd.DataFrame([[0,0,2],[1,2,3],[4,5,4]],列=['Col0','Col1','Col2'],索引=['Row0','Row1','Row2'])
df_c=df_a*df_b
In[102]:打印df_a
出[102]:
Col0 Col1 Col2
第0行-5.2 3.1 2.8
行1.0 2.0 3.0
第2行4.0 5.0 4.0
In[103]:打印df_b
出[103]:
Col0 Col1 Col2
第02行
第1排12排3
第2排4 5 4
In[104]:打印df_c
Out[104]:
Col0 Col1 Col2
第0-05.6行
第1行14.9.0
第2 16 25 16.0行
在[105]中:
负0=df_c.iloc[0,0]
正零=df_c.iloc[0,1]
打印(负零==正零)
出[105]:
真的
在[106]中:打印(类型(负片)
出[106]:
In[107]:打印(类型(正零))
出[107]:

-0
等于
0
。带符号的零不应影响任何进一步的计算

关于此主题,您可以在stackoverflow上签出、和