结合金融场景演示NumPy模块的操作(一)
NumPy 是 Python 的外部模块,因此使用时需要导入并且查看相应的版本信息,具体代码如下:
>>>import numpy as np #导入NumPy模块,以np命名,因此后续使用该模块的功能时要用np而不是numpy
>>>np.__version__ #查看NumPy的版本号
'1.18.1'
一、N维数组
(一)数组的结构
NumPy 最显著的特征在于它的数据结构运用了数组。数组(array)与列表相似,但数组可以定义维度,其全称为N维数组。数组的结构如下:
注意,小括号中的数列可以是一个数列(相当于1*n的向量),也可以是由m个数列作为元素组成的一个数列(相当于m * n的矩阵)。
关于数组的生成,有以下几种方法:
1.直接输入法
例1:假定某投资者拥有一个投资组合,该组合的初始投资金额为1亿元,该组合由工商银行、中国石油、宝钢股份以及上汽集团构成,配置的比例分别为15%、20%、25%、40%。表1-1描绘了2018年9月3日至9月7日这5个交易日整个投资组合的涨跌幅情况。
股票名称 | 2018年9月3日 | 2018年9月4日 | 2018年9月5日 | 2018年9月6日 | 2018年9月7日 |
---|---|---|---|---|---|
中国石油 | 0.3731% | 2.1066% | -0.4854% | 0.6098% | -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% |
根据以上信息,将4只股票的配置比例以一维数组方式直接在 Python 中进行输入,具体代码如下:
>>>weight = np.array([0.15,0.2,0.25,0.4])
>>>type(weight)
numpy.ndarray
>>>weight.shape # 用shape函数可以得到该变量是一维数组,相当于是一个由4个元素组成的向量
(4,)
将4只股票的涨跌幅以数组方式在 Python 中进行输入,具体代码如下:
>>>stock_return = np.array([[0.003731,0.021066,-0.004854,0.006098,-0.006060],[-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.014570,0.016129]])
>>>stock_return
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]])
>>>stock_return.shape # 用shape函数可以得到该变量是一个二维数组,相当于是一个4*5(4行5列)的矩阵
(4, 5)
shape 函数可用于查看数组的构成。此外,需要注意的是,同一数组中元素的类型应该相同,即字符串和数字不能存在于同一数组中。
2.将列表转化为数组
根据例1中的信息,将4只股票的配置比例先以列表的方式在 Python 中输入,然后用 array 函数将列表转为一维数组,具体代码如下: