欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-30 22:52:24
文章目录一、算数平均值二、加权平均值三、最大值与最小值一、算数平均值1、平均值的作用平均数是表示一组数据集中趋势的量数,它是反映数据集中趋势的一项指标。一组数据少则几十,多则上千,甚至于过百万,“由于我们的思维不能思考所有的数据”,需要选取一个合适的代表值表达一组数据的特征。平均数便是小学阶段学习的一个重要的统计量。2、算数平均值求法样本:S = [s1, s2, s3, …, sn]算术平均值:m = (s1 + s2 + s3 + … + sn)/n3、Numpy中的格式m = nu...

一、算数平均值

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)

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

二、加权平均值

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)

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

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)

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

三、最大值与最小值

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))

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