版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44580977/article/details/101981194
接下来了解下矢量运算的能力, 矢量的特性可以理解为并行化的运算, 也就是说在对数组执行复杂计算时会作用到元素级别, 这样仅仅用简洁的表达式就可以代替Python的for循环。
我们先使用NumPy的random.normalvariate()生成一个平均收盘股价为10元(即期望为10),振幅为1元(即标准差为1),样本数量为1000的正态分布随机数组,如下所示:
stock_data = np.random.normal(loc=10.0, scale=1.0, size=1000)
print("stock_data:\n {}".format(stock_data))
"""
stock_data:
[10.78547256 9.76528172 9.22565839 9.88816694 9.98375121 8.82134049
10.35872851 9.47037456 10.10779769 8.90763374 9.87537764 10.19336141
10.23045668 9.56778185 ....... 11.52876708 9.31758815 9.92082024]
"""
我们规整化所有浮点型随机数据的精度,以便于后续显示和运算。此处使用np.around()方法将所有数据保留2位小数,由于矢量运算的能力,此处仅需一行代码就可实现,如下所示:
stock_data = np.around(stock_data,2)#保留2位小数
print("stock_data:\n {}".format(stock_data))
"""
stock_data:
[11.97 9.34 12.14 11.28 11.7 8.65 8.81 8.63 11.93 9.48 8.93 9.83
10.54 9.38 10.93 9.09 10.4 9.88 10.35 11.67 7.97 12.19 10.1 11.22
9.85 10.91 10.38 9.16 9.46 ...... 10.02 9.27 11.2 9.4 9.83 8.99]
"""
还有其他方法 np.roll()为循环右移 第一个值需要设置为无效值np.nan np.roll(stock_data,1)
NumPy中的ndarray类,可以更加简洁的进行 矢量算术运算,并且在处理多维的大规模数组时快速且节省空间。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有