当前位置: 移动技术网 > IT编程>脚本编程>Python > Python之数据分析(中位数、波动范围、极差、离差、方差、标准差)

Python之数据分析(中位数、波动范围、极差、离差、方差、标准差)

2020年07月18日  | 移动技术网IT编程  | 我要评论

一、中位数

1、中位数
将多个样本按照大小顺序排列,居于中间位置的元素为中位数

2、经典求法
1)A:样本集

2)L:样本数

3)M = (A[(L-1)/2] + A[L/2]) / 2

4、Numpy求法
1)对数组进行排序:np.msort(数组)

2)求中位数:M = numpy.median(数组)

5、练习

import numpy as np

# 导入数据
highest_prices, lowest_prices, closing_prices = np.loadtxt(
    '0=数据源/beer_price.csv', delimiter=',',
    usecols=(2, 3, 4),unpack=True
)

# 收盘价的中位数(手动求法)
sorted_prices = np.msort(closing_prices)
L = sorted_prices.size
# 运用公式M = (A[(L-1)/2] + A[L/2]) / 2
M1 = (sorted_prices[int((L-1)/2)] + sorted_prices[int(L/2)]) /2
print(M1)


# 用Numpy的median来求收盘价的中位数
M2 = np.median(closing_prices)
print(M2)

二、波动范围与极差

1、价格波动范围 = 最高的最高价 - 最低的最低价
range = a.max() - b.min()

2、极差 = 一个数组的最大值 - 该数组的最小值

  • 经典求法:ptp = a.max() - a.min()
  • Numpy求法:numpy.ptp()

3、练习

import numpy as np

# 导入数据
highest_prices, lowest_prices, closing_prices = np.loadtxt(
    '0=数据源/beer_price.csv', delimiter=',',
    usecols=(2, 3, 4),unpack=True
)

# 价格波动范围
range = highest_prices.max() - lowest_prices.min()
print(range)

# 极差
ptp1 = highest_prices.max() - highest_prices.min()
ptp2 = np.ptp(highest_prices)
print(ptp1, ptp2, sep='\n')

三、离差、方差与标准差

1、均值

  • 样本:S = [s1, s2, …, sn]
  • 均值:m = (s1 + s2 + … + sn) / n

2、离差: 每一个样本数据相对于平均值的偏离程度,是一个数组

  • 经典求法:D = [s1-m, s2-m, …, sn-m]

3、方差: 离差平方和的平均值,是一个数

  • 经典求法:v = ((s1-m)^2 + (s2-m)^2 + … + (sn-m)^2) / n
  • 注意:此处/n表示总体方差和总体标准差;若是/(n-1)则是样本方差和样本标准差。当样本足够大时,二者几乎无差别,因此numpy默认计算的就是总体方差和总体标准差。

4、标准差: 方差的平方根,也叫方均根离差,是一个数

  • 经典求法:std = sqrt(v)——>v是上文中求的方差
  • Numpy求法:std = numpy.std(数组)
  • 计算样本标准差:
    std = np.std(数组, ddof=1) # ddof表示非自由样本个数

5、练习

import numpy as np

# 导入数据
closing_prices = np.loadtxt(
    '0=数据源/beer_price.csv', delimiter=',',
    usecols=(4),unpack=True
)

# 计算均值、 离差、 方差、 标准差
mean_price = np.mean(closing_prices)  # 平均值
devs = closing_prices - mean_price  # 离差
var = (devs ** 2).mean()  # 方差:离差平方和的平均值
std1 = np.sqrt(var)  # 标准差
print(std1)

# 用numpy来直接算标准差
std2 = np.std(closing_prices)
print(std2)

# 计算样本标准差
std3 = np.std(closing_prices, ddof=1)
print(std3)

11

本文地址:https://blog.csdn.net/Viewinfinitely/article/details/107396100

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网