分享是一种生活态度,求知,求真,分享工作,分享生活!

NumPy 进行科学计算总结

DevOps iqianyue 466次浏览 0个评论 扫描二维码

Python 科学计算库 NumPy,其中大部分模块采用 C 语言编写,并针对科学计算(线性代数计算)设计了 ndarray(多维数组)对象,该对象类似于 Python 中的 list 对象,但却更少在应用中使用性能较差的循环。以上这些使得 NumPy 的性能比纯 Python 要高。

本文采用的系统环境是 CentOS 7.0 x64,Python 2.7.5 和 NumPy 1.9.1。假设已经执行了“import numpy as np”语句,因而在代码中使用 np 指代 numpy 库。

ndarray(多维数组)

ndarray 对象用于存储多维数组,内置支持 element-by-element 计算,无需像 Python 中 List 对象数学计算那样使用大量的循环,因而更加的高效。一个 ndarray 对象中的所有元素必须是相同的数据类型。一般使用 np.array、np.arange、np. zeros、np.ones 和 np.identity 等函数创建 ndarray 对象。

 

NumPy 中的 ndarray 对象和 Python 中的 list 对象之间可以进行转换。

 

ndarray 对象中的各元素必须是统一的数据类型。常用的数据类型有 bool、int64、float64 和 complex。NumPy 提供了数据类型转换函数,函数名称与数据类型的名称一致。ndarray 对象也提供了 astype 方法,可以转换元素的数据类型。注意:不支持将 complex 数据类型转换为 int 或 float 数据类型。

 

一维数组也称为 Vector(向量),对于其中元素的引用,类似于 Python 中的 list 对象的元素引用(索引从 0 开始),同样也支持“切片”和“步进”。注意:ndarray 对象的切片是内存引用,对切片进行的修改会影响 ndarray 对象。

 

使用一维数组的 reshape 方法,可以将一维数组转换为多维数组。通过 shape 函数来获取 ndarray 对象的行数和列数。多维数组的元素访问,与一维数组的元素访问方法类似。

 

ndarray 对象还有很多有用的属性。

 

matrix(矩阵)

matrix(矩阵)本质上是一种特殊的 ndarray 对象,matrix 对象只可以是二维的。

ufunc(通用函数)

ufunc(通用函数)是作用在 ndarray 对象的具备 element-by-element 特性的函数。在 NumPy 中,ufunc 是 numpy.ufunc 类的实例。

创建 ndarray 对象

np.empty:创建指定维度的数值为随机数的 ndarray 对象

np.eye:创建指定维度的,对角线数值为1其余为0的 ndarray 对象

np.ones:创建指定维度的数值为1的 ndarray 对象

np.zeros:创建指定维度的数值为零的 ndarray 对象

np.full:创建指定维度和数值的 ndarray 对象

np.array:创建 ndarray 对象

np.copy:根据现有的 ndarray 对象复制出新的 ndarray 对象

np.arange:创建连续的从零开始至指定数值的 ndarray 对象

np.linspace:根据起始数值、结束数值和间隔个数,创建 ndarray 对象

np.mat:创建 matrix(矩阵)对象

操作 ndarray 对象

np.reshape:修改 ndarray 对象的维度,不改变元素的数值

np.ravel:将 ndarray 对象转换为一维数组

np.flat:将 ndarray 对象转换为一维数组

np.flatten:将 ndarray 对象转换为一维数组

np.transpose:反转 ndarray 对象的维度

np.asmatrix:将 ndarray 对象转换为 matrix 对象

输入输出

np.loadtxt:从文本文件中读取数据

np.savetxt:将数据保存至文本文件中

np.genfromtxt:从文本文件中读取数据

数据统计

np.average:计算 Array 变量中元素的平均数(通过 weights 参数进行加权计算)

np.mean:计算 Array 变量中元素的算术平均数

np.median:计算 Array 变量中元素的中位数

np.max:计算 Array 变量中元素的最大值

np.min:计算 Array 变量中元素的最小值

np.ptp:计算 Array 变量中元素的最大值和最小值的差值

np.var:计算 Array 变量中元素的方差

np.std:计算 Array 变量中元素的标准差

逻辑判断

np.all:判断指定维度是否全部值为 True

np.any:判断指定维度是否有值为 True

参考资料

《NumPy User Guide》,NumPy Community

《NumPy Reference》,NumPy Community

《NumPy Beginner’s Guide》,Ivan Idris,Packt Publishing


iqianyue , 版权所有丨如未注明 , 均为原创,转载请注明iqianyue
喜欢 (1)
[]
分享 (0)
发表我的评论
取消评论

表情 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址