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

﹏ヽ暗。殇╰゛Y 2023-02-26 13:26 69阅读 0赞

文章目录

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

一、算数平均值

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

2、算数平均值求法

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

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

4、练习代码

  1. import numpy as np
  2. # 解包取出收盘价
  3. closing_prices = np.loadtxt(
  4. '0=数据源/beer_price.csv', delimiter=',',
  5. usecols=(4), unpack=True,
  6. )
  7. # 手动计算平均值
  8. mean1 = 0
  9. for closing_price in closing_prices:
  10. mean1 += closing_price
  11. mean1 /= closing_prices.size # 除个数
  12. print(mean1)
  13. # numpy的mean来计算
  14. mean2 = np.mean(closing_prices)
  15. 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、案例一:成交量加权平均值

  1. import numpy as np
  2. # 解包取出收盘价
  3. closing_prices, volumes = np.loadtxt(
  4. '0=数据源/beer_price.csv', delimiter=',',
  5. usecols=(4, 5), unpack=True,
  6. )
  7. # 手动加权平均值
  8. vwap1, vsum = 0, 0
  9. for closing_price, volume in zip(closing_prices, volumes):
  10. vwap1 += closing_price * volume
  11. vsum += volume
  12. vwap1 /= vsum # 除权重的和
  13. print(vwap1)
  14. # numpy的average来计算加权平均值
  15. vwap2 = np.average(closing_prices, weights=volumes)
  16. print(vwap2)

22

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

  1. import numpy as np
  2. import datetime as dt
  3. # 将日期转换成天数
  4. def dmy2days(dmy):
  5. dmy = str(dmy, encoding='utf-8')
  6. date = dt.datetime.strptime(dmy, '%d-%m-%Y').date()
  7. days = (date - dt.date.min).days # 将日期差变化成以day为单位
  8. return days
  9. # 解包取出日期、收盘价
  10. days, closing_prices = np.loadtxt(
  11. '0=数据源/beer_price.csv', delimiter=',',
  12. usecols=(0, 4), unpack=True,
  13. converters={ 0:dmy2days}
  14. )
  15. # 手动加权平均值
  16. twap1, tsum = 0, 0
  17. for closing_price, day in zip(closing_prices, days):
  18. twap1 += closing_price * day
  19. tsum += day
  20. twap1 /= tsum # 除权重的和
  21. print(twap1)
  22. # numpy的average来计算加权平均值
  23. twap2 = np.average(closing_prices, weights=days)
  24. print(twap2)

33

三、最大值与最小值

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

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

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

3、练习代码

  1. import numpy as np
  2. # 最大值最小值
  3. a = np.random.randint(10, 100, 9).reshape(3, 3)
  4. print(a)
  5. # print('最大值:', np.max(a), a.max()) # 最大值
  6. # print('最小值:', np.min(a), a.min()) # 最小值
  7. # print('最大值索引:', np.argmax(a), a.argmax()) # 数组扁平为一维后的最大值索引
  8. # maximum最大值,minimum最小值
  9. b = np.random.randint(10, 100, 9).reshape(3, 3)
  10. print(b)
  11. print('构造最大值数组:\n', np.maximum(a, b))
  12. print('构造最小值数组:\n', np.minimum(a, b))

发表评论

表情:
评论列表 (有 0 条评论,69人围观)

还没有评论,来说两句吧...

相关阅读

    相关 加权平均

    [2019独角兽企业重金招聘Python工程师标准>>> ][2019_Python_] ![hot3.png][] 下面是一个同学的某一科的考试成绩: 平时测验 80,