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 特殊数组
在 Numpy 数组中,有3种特殊数组,分别是 zero 数组、ones 数组、empty 数组
通过 np.zeros
创建都是0的数组,参数中传一个元组,4表示4行,5表示5列,如下图:
同理,可以创建全都是1的数组,这里创建6行2列:
再创建一个2行5列的空值数组;不同的是,这里创建的数据并不都是空的,而都是近似于0的数据
Numpy 序列数组
arange
函数与 Python 中的 range
函数相似,但它属于 Numpy 库,其参数依次为:开始值、结束值、步长
还可以使用 linspace
函数创建等着序列数组,其参数依次为:开始值、结束值、元素数量
利用arange
函数创建等着序列数组,这里指定的开始值为1,结束值为80,步长为4
利用linspace
函数创建等着序列数组,这里指定的开始值为1,结束值为3,一共创建13个值(也就是将0到3平均分成13份后的数值)
Numpy 数组索引
Numpy 数组的每个元素、每行元素、每列元素都可以通过索引访问
Numpy 数组运算
Numpy 数组运算是指 Numpy 数组中元素的加、减、乘、除、乘方、最大值、最小值等运算
Numpy 数组复制
Numpy 数组复制分两种,一种是浅复制,一种是深复制
浅复制通过数组变量的复制完成,只复制数组的引用,这样对浅复制数组中的元素进行修改时,原数组中对应的元素也会被修改
深复制使用数组对象的copy
方法完成,是对存储内存进行复制。这样对深 复制数组中的元素进行修改时,原数组中对应的元素不会改变
浅复制:
深复制:
矩阵
矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,是高等数学中的常见工具,也常见于统计分析等应用数学学科中
Numpy 的矩阵对象与数组对象相似,主要不同之处在于,矩阵对象的计算遵循矩阵数学运算规律,即矩阵的乘、转置、示逆等。需要注意的是,矩阵使用 matrix
函数创建
注:本文章为个人学习笔记,参考了一些书籍与官方教程,不作任何商业用途!
网友评论