Ton*_*ony 7 python numpy pandas
我有两个代码片段如下.
import numpy
numpy.std([766897346, 766897346, 766897346, 766897346, 766897346, 766897346, 766897346, 766897346, 766897346, 766897346])
0
Run Code Online (Sandbox Code Playgroud)
和
import pandas as pd
pd.Series([766897346, 766897346, 766897346, 766897346, 766897346, 766897346, 766897346, 766897346, 766897346, 766897346]).std(ddof=0)
10.119288512538814
Run Code Online (Sandbox Code Playgroud)
这是一个巨大的差异.
我可以问为什么?
这个问题确实已经在讨论中(链接);问题似乎是 所使用的计算标准差的算法,pandas因为它在数值上不如 所使用的算法稳定numpy。
一个简单的解决方法是.values首先应用于系列,然后应用于std这些值;在这种情况下numpy's std使用:
pd.Series([766897346, 766897346, 766897346, 766897346, 766897346, 766897346, 766897346, 766897346, 766897346, 766897346]).values.std()
Run Code Online (Sandbox Code Playgroud)
这给你期望值 0。
| 归档时间: |
|
| 查看次数: |
431 次 |
| 最近记录: |