我试图从平均值中减去列中的每个元素并除以标准偏差.我用两种不同的方式做到了(numeric_data1和numeric_data2):
import pandas as pd
data = pd.read_csv("https://s3.amazonaws.com/demo-datasets/wine.csv")
numeric_data = data.drop("color", 1)
numeric_data1 = ((numeric_data - numeric_data.mean()) /
numeric_data.std())
numeric_data2 = ((numeric_data - np.mean(numeric_data, axis=0)) /
np.std(numeric_data, axis=0))
type(numeric_data1) # -> pandas.core.frame.DataFrame
type(numeric_data2) # -> pandas.core.frame.DataFrame
Run Code Online (Sandbox Code Playgroud)
两者都是熊猫数据帧,它们应该具有相同的结果.但是,我得到了不同的结果:
numeric_data2 == numeric_data1 # -> False
Run Code Online (Sandbox Code Playgroud)
我认为问题源于numpy和pandas如何处理数字精度:
numeric_data.mean() == np.mean(numeric_data, axis=0) # -> True
numeric_data.std(axis=0) == np.std(numeric_data, axis=0) # -> False
Run Code Online (Sandbox Code Playgroud)
对于平均的numpy和熊猫给了我同样的东西,但对于标准偏差,我得到了一些不同的结果.
我的评估是正确还是我犯了一些错误?