量化交易入门笔记-Numpy库-LMLPHP

Numpy 库是高性能科学计算和数据分析的基础包,不是 Python 的标准库,是 Python 的第三方库。

这里使用JoinQuant量化交易平台免费提供的基于 IPython Notebook 的研究平台

ndarray 数组基础

Python 中用列表保存一组值,可将列表当作数组使用。此外,Python 有 array 模块,但它不支持多维数组,无论是列表还是 array 模块都没有科学运算函数,不适合做矩阵等科学计算。因此,Numpy 没有使用 Python 本身的数组机制,而是提供了 ndarray 数组对象,该对象能不断方便地存取数组,而且拥有丰富的数组计算函数,比如向量的加法、减法、乘法等

首先要导入 Numpy 库

# 直接导入 Numpy 函数库
import numpy
# 导入 Numpy 函数库并指定别名,这个更常用,np是约定好的叫法
import numpy as np

创建 Numpy 数组

numpy1 = np.array([[10, -8, 10.5], [-4, 6.0, 9.6]])

通过 array() 函数定义数组实例对象,其参数是 Python 的序列对象(比如列表)

如果想定义多维数组,则传递多层嵌套序列

接下来的示例将在平台的“我的策略/投资研究”中进行,首先创建一个 Python3文件

量化交易入门笔记-Numpy库-LMLPHP

接下来,查看数组的行数、维数、数据等属性

量化交易入门笔记-Numpy库-LMLPHP

Numpy 特殊数组

在 Numpy 数组中,有3种特殊数组,分别是 zero 数组、ones 数组、empty 数组

通过 np.zeros创建都是0的数组,参数中传一个元组,4表示4行,5表示5列,如下图:

量化交易入门笔记-Numpy库-LMLPHP

同理,可以创建全都是1的数组,这里创建6行2列:

量化交易入门笔记-Numpy库-LMLPHP

再创建一个2行5列的空值数组;不同的是,这里创建的数据并不都是空的,而都是近似于0的数据

量化交易入门笔记-Numpy库-LMLPHP

Numpy 序列数组

arange函数与 Python 中的 range 函数相似,但它属于 Numpy 库,其参数依次为:开始值、结束值、步长

还可以使用 linspace 函数创建等着序列数组,其参数依次为:开始值、结束值、元素数量

利用arange函数创建等着序列数组,这里指定的开始值为1,结束值为80,步长为4

量化交易入门笔记-Numpy库-LMLPHP

利用linspace函数创建等着序列数组,这里指定的开始值为1,结束值为3,一共创建13个值(也就是将0到3平均分成13份后的数值)

量化交易入门笔记-Numpy库-LMLPHP

Numpy 数组索引

Numpy 数组的每个元素、每行元素、每列元素都可以通过索引访问

量化交易入门笔记-Numpy库-LMLPHP

Numpy 数组运算

Numpy 数组运算是指 Numpy 数组中元素的加、减、乘、除、乘方、最大值、最小值等运算

量化交易入门笔记-Numpy库-LMLPHP

Numpy 数组复制

Numpy 数组复制分两种,一种是浅复制,一种是深复制

浅复制通过数组变量的复制完成,只复制数组的引用,这样对浅复制数组中的元素进行修改时,原数组中对应的元素也会被修改

深复制使用数组对象的copy方法完成,是对存储内存进行复制。这样对深 复制数组中的元素进行修改时,原数组中对应的元素不会改变

浅复制:

量化交易入门笔记-Numpy库-LMLPHP

深复制:

量化交易入门笔记-Numpy库-LMLPHP

矩阵

**矩阵(Matrix)**是一个按照长方阵列排列的复数或实数集合,是高等数学中的常见工具,也常见于统计分析等应用数学学科中

Numpy 的矩阵对象与数组对象相似,主要不同之处在于,矩阵对象的计算遵循矩阵数学运算规律,即矩阵的乘、转置、示逆等。需要注意的是,矩阵使用 matrix 函数创建

量化交易入门笔记-Numpy库-LMLPHP

注:本文章为个人学习笔记,参考了一些书籍与官方教程,不作任何商业用途!

10-06 16:51