比较运算
- 重新生成8只股票10个交易日的涨跌幅数据:
- stock_change = np.random.normal(loc=0, scale=1, size=(8, 10))
逻辑判断:如果涨跌幅大于0.5就标记为True,否则就标记为False。
取出为True的具体数据:
将为True的数据修改为1.1:
- 也就是将满足条件的设置为指定的值。
通用判断函数:
np.all()
np.any()
总结:
通用判断函数:
- np.all(布尔值)
- 只要有一个False就返回False,只有全是True才返回True
- np.any()
- 只要有一个True就返回True,只有全是False才返回False
判断前2只股票前5天是否全是上涨的:
判断前2只股票这段期间是否有上涨的:
- 或是
- 或是
- 或是:
- 或是:
np.where(三元运算符)
- np.where(三元运算符)
- np.where(布尔值, True的位置的值, False的位置的值)
- np.where(布尔值, True的位置的值, False的位置的值)
- 判断前4只股票前4天的涨跌幅,大于0的置为1,否则为0:
- 下面这样可以帮助更好的理解:
- 判断前4只股票前4天的涨跌幅,大于0.5并且小于1的,替换为1, 否则替换为0:
提示:复合逻辑需要结合np.logical_and 和 np.logical_or使用。
- 合起来写就是:
- 判断前4个股票前4天的涨跌幅,大于0.5或者小于-0.5的,替换为1,否则替换为0:
统计运算:
如果想要知道涨幅或者跌幅最大的数据,应该怎么做?
统计指标:
- 在数据挖掘/机器学习领域,统计指标的值也是我们分析问题的一种方式。
常用的指标如下:
- min()最小值,
- max()最大值,
- median中值,
- std标准差,
- var方差,
- 都可以使用axis指定按行求还是按列求。
- 提示:上面这些方法都有两种使用形式:一种是:变量名.方法名()。一种是np.方法名()。
股票涨跌幅统计运算:
- 运行统计的时候,axis轴的取值并不一定,Numpy中不同的API轴的值都不一样,在这里,axis 0 代表列,
axis 1 代表行去进行统计。
- 上面就是演示了求最大值这个方法的两种使用形式,其他的统计指标也是这两种使用形式。
axis=0表示按列求最大值,axis=1表示按行求最大值。
- 还有一种说法是下面这种说法,也可以下面这样理解:
- 现在temp的形状是(4,4)也就是4行4列:
- 我们的要求是:
- 这个维度上的最大值,这个维度是第二个维度,第二个维度的下标是1,由于第二个维度是最后一个维度,所以也可以表示成-1,-1表示的是最后一个维度。
- numpy中不同的API轴的值都不一样,大家记不住也是没有关系的,到时候试一试就知道了。也就是在有的api中1表示按行,有的api中1表示按列,这是这些api底层的规划,也就是这些开发团队们他们这样规定的。
其他的统计指标大家可以自行尝试一下:
返回最大值和最小值所在位置也就是索引值: