NumPy(Numerical Python) 是Python语言的一个扩充库。支持高级大量的纬度数组与矩阵运算,此外也针对数组运算提供大量的数据函数库。
ndarray类
NumPy中的数组类被成为ndarray,要注意的是numpy.array与Python标准库中的array.array是不同的。ndarray具有如下比较重要属性:
ndarray.ndim
ndarray.ndim表示数组的纬度
ndarray.shape是一个整型tuple,用来表示数组中的每一个纬度大小。
ndarray.size表示数组中元素个数,其值等于shape中所有整数的乘积。
ndarray.dtype 用来描述数组中元素的类型,ndarray中的所有元素必须是同一类型,如果在构造数组时,传入参数不是同一类型的,不同的类型将进行统一转化。除了标准的Python类型外,NumPy额外提供了一些自有的类型,如numpy.int32,numpy.int16,numpy.float64等
NumPy中创建数组的方式有若干中,最简单的,可以直接利用的是常规的list和tuple进行创建
基本操作
除了上述一元方法以外,NumPy还提供了操作数组中特定行和列的一元方法,通过制定不同的axis
来实现。
通用方法
NumPy提供了大量的通用数学和算术方法,比如常见的sin
、cos
、具体可以参考如下:
数组索引和迭代
与Python中定义的list一样,NumPy支持一维数组的索引、切片和迭代。
多维数组与一维数组相似,其在每个轴上都有一个对应的索引(index),这些索引是在一个逗号分隔的元组(tuple)中给出的。
NumPy功能和方法预览
数组创建
arange, array, copy, empty, empty_like, eye, fromfile, fromfunction, identity, linspace, logspace, mgrid, ogrid, ones, ones_like, r, zeros, zeros_like
数组转换
ndarray.astype, atleast_1d, atleast_2d, atleast_3d, mat
操作
array_split, column_stack, concatenate, diagonal, dsplit, dstack, hsplit, hstack, ndarray.item, newaxis, ravel, repeat, reshape, resize, squeeze, swapaxes, take, transpose, vsplit, vstack
问题
all, any, nonzero, where
排列
argmax, argmin, argsort, max, min, ptp, searchsorted, sort
运算
choose, compress, cumprod, cumsum, inner, ndarray.fill, imag, prod, put, putmask, real, sum
基础统计
cov, mean, std, var
基本线性代数
cross, dot, outer, linalg.svd, vdot
NumPy 包含大量的各种数学运算的函数,包括三角函数,算术运算的函数,复数处理函数等。
NumPy 算术函数包含简单的加减乘除: add(),subtract(),multiply() 和 divide()。
需要注意的是数组必须具有相同的形状或符合数组广播规则。
NumPy 统计函数
NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等。 函数说明如下:
numpy.amin() 和 numpy.amax()
numpy.amin() 用于计算数组中的元素沿指定轴的最小值。
numpy.amax() 用于计算数组中的元素沿指定轴的最大值。
均值、中数、中位数、期望、标准差、方差
NumPy 排序、条件刷选函数
NumPy 提供了多种排序的方法。 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性。 下表显示了三种排序算法的比较。
种类 | 速度 | 最坏情况 | 工作空间 | 稳定性 |
---|---|---|---|---|
'quicksort' (快速排序) | 1 | O(n^2) | 0 | 否 |
'mergesort' (归并排序) | 2 | O(n*log(n)) | ~n/2 | 是 |
'heapsort' (堆排序) | 3 | O(n*log(n)) | 0 | 否 |
numpy.sort()
numpy.sort() 函数返回输入数组的排序副本。函数格式如下:
numpy.sort(a, axis, kind, order)
参数说明:
- a: 要排序的数组
- axis: 沿着它排序数组的轴,如果没有数组会被展开,沿着最后的轴排序, axis=0 按列排序,axis=1 按行排序
- kind: 默认为'quicksort'(快速排序)
- order: 如果数组包含字段,则是要排序的字段
作者:圈圈_Master
链接:https://www.jianshu.com/p/a260a8c43e44
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。