1
我是新的python和pandas用戶。我想從平均值中減去列中的每個元素,併除以標準偏差。我以兩種不同的方式(numeric_data1和numeric_data2)做到了這一點。這兩個結果在熊貓和numpy之間的區別
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
他們都是熊貓數據框,我認爲他們都應該給我同樣的結果。但是,我得到不同的結果。
numeric_data2 == numeric_data1 ---> False
我覺得問題源於numpy和pandas如何處理數字精度。
numeric_data.mean()== np.mean(numeric_data, axis=0) ---> True
numeric_data.std(axis=0) ==np.std(numeric_data, axis=0) ---> False
對於平均numpy的和熊貓給了我同樣的事情,但對於標準差,我有點不同的結果。
我的評估是否正確?還是我犯了一些錯誤?
能否請您解釋一下嗎? – psimeson
查看[numpy.std]的文檔(https://docs.scipy.org/doc/numpy/reference/generated/numpy.std.html),請參閱ddof default = zero和[pandas.DataFrame.std ](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.std.html)請參閱ddof default = one。 –
感謝@ScottBoston它是有道理的。我不知道關於ddof – psimeson