结合金融场景演示NumPy模块的操作(一)

结合金融场景演示NumPy模块的操作(一)

 NumPy 是 Python 的外部模块,因此使用时需要导入并且查看相应的版本信息,具体代码如下:

>>>import numpy as np    #导入NumPy模块,以np命名,因此后续使用该模块的功能时要用np而不是numpy
>>>np.__version__          #查看NumPy的版本号
'1.18.1'

一、N维数组

(一)数组的结构

 NumPy 最显著的特征在于它的数据结构运用了数组。数组(array)与列表相似,但数组可以定义维度,其全称为N维数组。数组的结构如下:

一维数组 np.array(一个数列)
二维数组 np.array([数列1,数列2,...,数列m])

 注意,小括号中的数列可以是一个数列(相当于1*n的向量),也可以是由m个数列作为元素组成的一个数列(相当于m * n的矩阵)。
 关于数组的生成,有以下几种方法:

1.直接输入法

 例1:假定某投资者拥有一个投资组合,该组合的初始投资金额为1亿元,该组合由工商银行、中国石油、宝钢股份以及上汽集团构成,配置的比例分别为15%、20%、25%、40%。表1-1描绘了2018年9月3日至9月7日这5个交易日整个投资组合的涨跌幅情况。

表1-1 2018年9月3日至7日股票的涨跌幅
股票名称 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 函数将列表转为一维数组,具体代码如下:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值