##基本操作 输入数组,对数组进行切片和索引
##本篇文章所有操作展示均在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.3752% | |||
| 上汽集团 | -0.3087% | ||||
| 宝钢股份 | -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)的平均收益率。
上传代码截图以及运行结果。



