一、算数平均值
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)
二、加权平均值
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)
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)
三、最大值与最小值
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
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!