主页 > imtoken授权管理系统 > python计算某个时期的增量_python数据分析与挖掘(十一)
python计算某个时期的增量_python数据分析与挖掘(十一)
1 逻辑运算
#重新生成8只股票的10天价格数据
>>> stock_change = np.random.normal(0, 1, (8, 10))
>>> stock_change = stock_change[0:5, 0:5]
#逻辑判断,如果变化大于0.5,则标记为True,否则为False
>>> stock_change > 0.5
array([[真,假,假,真,假],
[真,真,假,假,假],
[真比特币涨跌幅怎么计算公式,假,真,假,真],
[假,真,假,假,假],
[假,假,假,真,真]])
#BOOL赋值,将满足条件的值设置为指定值——布尔索引
>>> stock_change[stock_change > 0.5] = 1
array([[ 1. , -0.72404879, -1.33045773, 1. , 0.3869043 ],
[ 1. , 1. , 0.20815446, -1.67860823, 0.06612823],
[ 1. , 0.42753488, 1. , -0.24375089, 1. ],
[-0.971945 , 1. , -0.95444661, -0.2602084 , -0.48736497],
[-0.32183056, -0.92544956, -0.42126604, 1. , 1. ]])
2 一般判断函数np.all()
# 判断 stock_change[0:2, 0:5] 是否全部上涨
>>> np.all(stock_change[0:2, 0:5] > 0)
错误
np.any()
#判断前5只股票在此期间是否上涨
>>> np.any(stock_change[0:5, :] > 0 )
是的
3 np.where(三元运算符)
使用 np.where() 可以执行更复杂的操作
# 确定前四天前四只股票的价格。如果大于0则设置为1,否则设置为0
temp = stock_change[:4, :4]
np.where(temp > 0, 1, 0)
复合逻辑需要配合np.logical_and和np.logical_or使用
#判断前四天大起大落的前四天大于0.5小于1,改为1,否则为0
#判断前四天前四只股票的变化是大于0.5还是小于-0.5,改为1,否则为0
np.where(np.logical_and(temp > 0.5, temp < 1), 1, 0)
np.where(np.logical_or(temp > 0.5, temp < -0.5), 1, 0)
4 统计操作
如果想知道增减幅度最大的数据怎么办?
1 统计指标
在数据挖掘/机器学习领域比特币涨跌幅怎么计算公式,统计指标的值也是分析问题的一种方式。常用指标如下:
np.min(a[, axis, out, keepdims])
返回数组的最小值或沿轴的最小值。
np.max(a[, axis, out, keepdims])
返回数组的最大值或沿轴的最大值。
np.median(a[, axis, out, overwrite_input, keepdims])
计算沿指定轴的中位数。
np.mean(a[, axis, dtype, out, keepdims])
计算沿指定轴的算术平均值。
np.std(a[, axis, dtype, out, ddof, keepdims])
计算沿指定轴的标准差。
np.var(a[, axis, dtype, out, ddof, keepdims])
计算沿指定轴的方差。
5 股价波动的统计计算
进行统计时,axis轴的值不一定相同。 Numpy中不同API轴的值是不同的。这里,轴0代表列,轴1代表统计行
#接下来对这4只股票的4天数据进行一些统计操作
#指定要统计的行数
print("前四天前四只股票最大涨幅{}".format(np.max(temp,axis=1)))
# 使用 min、std、mean
print("前四天前四只股票的最大跌幅{}".format(np.min(temp,axis=1)))
print("前四天前四只股票的波动率{}".format(np.std(temp,axis=1)))
print("前四天前四只股票的平均变化{}".format(np.mean(temp,axis=1)))
如果您需要计算在某个交易日哪只股票的涨幅最大或最小? np.argmax(temp, axis=)
np.argmin(温度,轴=)
#获取指定日涨幅最大的股票
print("前四天涨幅最大的前四只股票{}".format(np.argmax(temp,axis=1)))
print("过去四天涨幅最大的股票{}".format(np.argmax(temp,axis=0)))