在pandas中进行元素倍增后,我在其中一个dataframe元素中得到负零值,在另一个dataframe元素中得到一个常规零值。 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'>
答案 0 :(得分:0)
-0
等于0
。带符号的零不应影响任何进一步的计算。
您可以在stackoverflow上查看关于此主题的Wikipedia,IEEE-standard和various other articles。