标准差

样本:S = [s1, s2, ..., sn]

平均值:m = (s1+s2+...+sn)/n

离差:D = [d1, d2, ..., dn], di = si-m

离差方:Q = [q1, q2, ..., qn], qi = di**2

总体方差:v = (q1+q2+...+qn)/n

总体标准差:s = sqrt(v),方均根

样本方差:v' = (q1+q2+...+qn)/(n-1)

样本标准差:s' = sqrt(v'),方均根

np.std(array)            # 总体标准差
np.std(array, ddof=1)    # 样本标准差

 

# 中位数
import numpy as np
import datetime as dt



def dmy2ymd(dmy):
  """
  把日月年转年月日
  :param day:
  :return:
  """
  dmy = str(dmy, encoding='utf-8')
  t = dt.datetime.strptime(dmy, '%d-%m-%Y')
  s = t.date().strftime('%Y-%m-%d')
  return s


dates, opening_prices, \
highest_prices, lowest_prices, \
closing_prices, volumes = \
  np.loadtxt('aapl.csv',
             delimiter=',',
             usecols=(1, 3, 4, 5, 6, 7),
             unpack=True,
             dtype='M8[D],f8,f8,f8,f8,f8',
             converters={1: dmy2ymd})  # 日月年转年月日
#总体封盘标准差
std_c = np.std(closing_prices)
print(std_c)  # 7.080008325481608
#总体开盘标准差
std_o = np.std(opening_prices)
print(std_o)  # 7.099438350242144

std_c2 = np.std(closing_prices, ddof=1)  # 样本标准差
print(std_c2)  # 7.201042876260849
# 手动实现
m = np.mean(closing_prices) #算数平均值
d = closing_prices - m #利差
v = np.mean(d ** 2)#离差方
s = np.sqrt(v)#总体标准差
print(s)  # 7.080008325481608
v2 = (d ** 2).sum() / (d.size - 1)
s2 = np.sqrt(v2)
print(s2)  # 样本标准差
# 7.201042876260849

 

转载于:https://www.cnblogs.com/maplethefox/p/11458659.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值