【Python numpy模块】结合金融场景演示numpy模块的操作

基本操作 输入数组,对数组进行切片和索引

本篇文章所有操作展示均在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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球