Python之数据分析(算数平均值、加权平均值、最大值与最小值)

2023-05-16

文章目录

      • 一、算数平均值
      • 二、加权平均值
      • 三、最大值与最小值

一、算数平均值

1、平均值的作用
平均数是表示一组数据集中趋势的量数,它是反映数据集中趋势的一项指标。一组数据少则几十,多则上千,甚至于过百万,“由于我们的思维不能思考所有的数据”,需要选取一个合适的代表值表达一组数据的特征。平均数便是小学阶段学习的一个重要的统计量。

2、算数平均值求法

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

3、Numpy中的格式
m = numpy.mean(样本数组)

4、练习代码

import numpy as np

# 解包取出收盘价
closing_prices = np.loadtxt(
    '0=数据源/beer_price.csv', delimiter=',',
    usecols=(4), unpack=True,
)

# 手动计算平均值
mean1 = 0
for closing_price in closing_prices:
    mean1 += closing_price
mean1 /= closing_prices.size  # 除个数
print(mean1)

# numpy的mean来计算
mean2 = np.mean(closing_prices)
print(mean2)

11

二、加权平均值

1、引入

  • 求平均值的每个样本数据,可能具有不同的重要程度,有些极端值重要程度显然就很低,就这样每个样本数据的重要程度就表示它的权重
  • 普通的算术平均数的权重相等,都是1,(比如,3和5的平均数为4)也就是说它们的重要性相同,所以平均数是特殊的加权平均数
  • 权重的大小表示在计算中的重要程度,加权平均值就是根据权重进行计算,再求平均值

2、加权平均值求法
样本:S = [s1, s2, s3, …, sn]
权重:W = [w1, w2, w3, …, wn]
加权平均值:a = (s1w1 + s2w2 + s3w3 + … + snwn)/(w1 + w2 + w3 + … + wn)

3、Numpy中的格式
numpy.average(样本数组, weights=权重数组)

4、案例一:成交量加权平均值

import numpy as np

# 解包取出收盘价
closing_prices, volumes = np.loadtxt(
    '0=数据源/beer_price.csv', delimiter=',',
    usecols=(4, 5), unpack=True,
)

# 手动加权平均值
vwap1, vsum = 0, 0
for closing_price, volume in zip(closing_prices, volumes):
    vwap1 += closing_price * volume
    vsum += volume
vwap1 /= vsum  # 除权重的和
print(vwap1)

# numpy的average来计算加权平均值
vwap2 = np.average(closing_prices, weights=volumes)
print(vwap2)

22

5、案例二:成交量加权平均值

import numpy as np
import datetime as dt

# 将日期转换成天数
def dmy2days(dmy):
    dmy = str(dmy, encoding='utf-8')
    date = dt.datetime.strptime(dmy, '%d-%m-%Y').date()
    days = (date - dt.date.min).days  # 将日期差变化成以day为单位
    return days

# 解包取出日期、收盘价
days, closing_prices = np.loadtxt(
    '0=数据源/beer_price.csv', delimiter=',',
    usecols=(0, 4), unpack=True,
    converters={0:dmy2days}
)


# 手动加权平均值
twap1, tsum = 0, 0
for closing_price, day in zip(closing_prices, days):
    twap1 += closing_price * day
    tsum += day
twap1 /= tsum  # 除权重的和
print(twap1)

# numpy的average来计算加权平均值
twap2 = np.average(closing_prices, weights=days)
print(twap2)

33

三、最大值与最小值

1、最大值、最小值
max:获取一个数组中最大元素
min:获取一个数组中最小元素

2、比较出最值数组
maximum:在两个数组的对应元素之间构造最大值数组
minimum:在两个数组的对应元素之间构造最小值数组

例:numpy.maximum(a, b):在a数组与b数组中的各个元素对应比较,每次取出较大的那个数构成一个新数组

3、练习代码

import numpy as np

# 最大值最小值
a = np.random.randint(10, 100, 9).reshape(3, 3)
print(a)
# print('最大值:', np.max(a), a.max())  # 最大值
# print('最小值:', np.min(a), a.min())  # 最小值
# print('最大值索引:', np.argmax(a), a.argmax())  # 数组扁平为一维后的最大值索引

# maximum最大值,minimum最小值
b = np.random.randint(10, 100, 9).reshape(3, 3)
print(b)
print('构造最大值数组:\n', np.maximum(a, b))
print('构造最小值数组:\n', np.minimum(a, b))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python之数据分析(算数平均值、加权平均值、最大值与最小值) 的相关文章

随机推荐