基本操作 输入数组,对数组进行切片和索引
本篇文章所有操作展示均在spyder命令行窗口
股票简称2018年9月3日2018年9月4日2018年9月5日2018年9月6日2018年9月7日中国石油0.3731%2.1066%-0.4854%0.6089%-0.6060%工商银行-0.1838%0.1842%-1.6544%-0.3738%0.3752%上汽集团-0.3087%-0.0344%-3.3391%0.7123%0.4597%宝钢股份-2.4112%1.1704%2.9563%1.4570%1.6129%
首先导入numpy模块并查看numpy的版本号(在命令型窗口)
用np命名模块numpy
In [1]: import numpy as np
In [2]: np.__version__ ##这里__是两个下划线
Out[2]: '1.15.4'
表中的数据为多维数据,使用列表来进行计算的话过于繁琐,用数组进行向量和矩阵计算就显得格外简洁明了
下面用数组的方式在Python中输入开头四只股票的涨跌幅情况
In [3]: stock_return=np.array([[0.003731,0.021066,-0.004854,0.006098,-0.00606],[-0.001838,0.001842,-0.016544,-0.003738,0.003752],[-0.003087,-0.000344,-0.033391,0.007123,0.004597],[-0.024112,0.011704,-0.029563,-0.01457,0.016129]])
In [4]: stock_return ##输出数组
Out[4]:
array([[ 0.003731, 0.021066, -0.004854, 0.006098, -0.00606 ],
[-0.001838, 0.001842, -0.016544, -0.003738, 0.003752],
[-0.003087, -0.000344, -0.033391, 0.007123, 0.004597],
[-0.024112, 0.011704, -0.029563, -0.01457 , 0.016129]])
In [5]: stock_return.shape ##用shape判断得到这是一个(4,5)的二维数组
Out[5]: (4, 5)
接下来需要将这四只股票的配置比例输入
以列表的方式输入
再将列表转换为数组
In [6]: weight_list=[0.15,0.2,0.25,0.4]
In [7]: weight_array=np.array(weight_list)
In [8]: weight_array ##输出配置比例数组
Out[8]: array([0.15, 0.2 , 0.25, 0.4 ])
这里输入股票涨跌幅的方法是直接输入,输入配置比例的方法是先输入列表,再将列表转化为数组,现实运用中两种方法都可以。
查看数组的一些相关属性
In [9]: weight_array.ndim ##查看数组维度
Out[9]: 1
In [10]: stock_return.ndim
Out[10]: 2
In [11]: weight_array.size ##查看数组的元素数量
Out[11]: 4
In [12]: stock_return.size
Out[12]: 20
In [13]: weight_array.dtype ##查看数组元素类型
Out[13]: dtype('float64')
In [14]: stock_return.dtype
Out[14]: dtype('float64')
数组的索引与切片
得到上汽集团在2018年9月6日的股票涨跌幅
In [15]: stock_return[2,3] ##原数据在第三行第四列,python中从0开始计数
Out[15]: 0.007123
得到工商银行和上汽集团在2018年9月5日到2018年9月7日的涨跌幅数据
In [16]: stock_return[1:3,3:5] ##python中从0开始计数,遵循前闭后开
Out[16]:
array([[-0.003738, 0.003752],
[ 0.007123, 0.004597]])
计算投资组合(按照不同股票的权重)中每个交易日(9.3-9.7)的平均收益率。
上传代码截图以及运行结果。
In [17]: average_return= np.dot (weight_array,stock_return) ##用dot函数计算矩阵之间的内积
In [18]: average_return
Out[18]: array([-0.0102245 , 0.0081239 , -0.02420985, -0.00388015, 0.00744225])
Original: https://blog.csdn.net/weixin_53792024/article/details/123678800
Author: 骄傲的张起灵
Title: 【Python numpy模块】结合金融场景演示numpy模块的操作
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/759513/
转载文章受原作者版权保护。转载请注明原作者出处!