小编psi*_*son的帖子

大熊猫和numpy之间std的不同结果

我试图从平均值中减去列中的每个元素并除以标准偏差.我用两种不同的方式做到了(numeric_data1numeric_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和熊猫给了我同样的东西,但对于标准偏差,我得到了一些不同的结果.

我的评估是正确还是我犯了一些错误?

python numpy mean python-3.x pandas

2
推荐指数
1
解决办法
563
查看次数

标签 统计

mean ×1

numpy ×1

pandas ×1

python ×1

python-3.x ×1