学习numpy的用法
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发。
NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:
- 一个强大的N维数组对象 ndarray
- 广播功能函数
- 整合 C/C++/Fortran 代码的工具
- 线性代数、傅里叶变换、随机数生成等功能
可用数据类型
创建数组
>>> from numpy import * >>> a = array( [2,3,4] ) >>> a array([2, 3, 4]) >>> a.dtype dtype('int32') >>> b = array([1.2, 3.5, 5.1]) >>> b.dtype dtype('float64')
多维数组对象
array.shape array的规格 array.ndim array.dtype array的数据规格 numpy.zeros(dim1,dim2) 创建dim1*dim2的零矩阵 numpy.arange numpy.eye(n) /numpy.identity(n) 创建n*n单位矩阵 numpy.array([…data…], dtype=float64 ) array.astype(numpy.float64) 更换矩阵的数据形式 array.astype(float) 更换矩阵的数据形式 array * array 矩阵点乘 array[a:b] 切片 array.copy() 得到ndarray的副本,而不是视图 array [a] [b]=array [ a, b ] 两者等价 name=np.array(['bob','joe','will']) res=name==’bob’ res= array([ True, False, False], dtype=bool) data[True,False,…..] 索引,只索取为True的部分,去掉False部分 通过布尔型索引选取数组中的数据,将总是创建数据的副本。 data[ [4,3,0,6] ] 索引,将第4,3,0,6行摘取出来,组成新数组 data[-1]=data[data.__len__()-1] numpy.reshape(a,b) 将a*b的一维数组排列为a*b的形式 array([a,b,c,d],[d,e,f,g]) 返回一维数组,分别为[a,d],[b,e],[c,f],[d,g] array[ [a,b,c,d] ][:,[e,f,g,h] ]=array[ numpy.ix_( [a,b,c,d],[e,f,g,h] ) ] array.T array的转置 numpy.random.randn(a,b) 生成a*b的随机数组 numpy.dot(matrix_1,matrix_2) 矩阵乘法 array.transpose( (1,0,2,etc.) ) 对于高维数组,转置需要一个由轴编号组成的元组