NumPy - Python的科学计算库
ndarry - n维数组
广播功能函数
整合c/c++/fortran代码的工具
线性代数、傅里叶变换、随机数等
是 SciPy、Pandas的基础
底层由C实现
多种长度的int、float、complex
N维数组:ndarray
一般要求数组元素类型相同
import numpy as np
>>> a=np.array([[1,2,3],[1,2,4]])
>>> a
array([[1, 2, 3],
[1, 2, 4]])
>>> a.ndim #轴的数量,或维度的数量
2
>>> a.size #对象中元素的个数
6
>>> a.shape #对象的尺度,对于矩阵就是n行m列
(2, 3)
>>> a.dtype #对象元素的类型
dtype('int64')
>>> a.itemsize #对象中每个元素的大小,以字节为单位
8
>>> b=np.array([[0,1],[4,5,6]])
>>> b.shape #b为非同质的array对象
(2,)
>>> b.dtype
dtype('O') #所以每一个元素都是一个‘O’,此时无法发挥出numpy的优势,所以应该避免
>>> b
array([list([0, 1]), list([4, 5, 6])], dtype=object)从Python的列表、元组等类型创建array
x=np.array(list/tuple, dtype=np.float32) dtype可指定也可不指定,由其推断
使用NumPy中函数创建数组
np.arange(n) 类似range()函数,支持3个参数的,提供了起点,终点和步长 np.ones(shape) 根据一个元组类型的shape返回一个全1的数组 np.zeros(shape) np.full(shape,val) 生成的值全为val np.eye(n) 创建正方n×n矩阵,对角线为1,其余均为0 np.ones_like(a) 用 a 的shape np.zeros_like(a) np.full_like(a,val)
np.linspace() np.concatenate()
reshape(shape) 不改变元素,返回新数组 非原位 resize(shape) 与reshape类似,但是是原位操作 swapaxes(ax1,ax2) 将两个维度进行调换 flatten() 数组降为一维,返回新数组,非原位
astype(new_type) 转换元素类型,返回新值,非原位 tolist() 返回列表,列表的计算比 numpy 的计算慢的多
类似 Python 的切片
Python 内建的 numpy 同样支持
多维数组的切片
与标量的计算
一元函数
np.abs(x), np.fabs() - 计算各个元素的绝对值,fabs()为浮点数的 np.sqrt(x) - 计算各个元素的平方根 np.square(x) - 计算各个元素的平方 np.log(x), np.log10(x), np.log2(x) 计算各个元素的自然对数、10底对数、2底对数 np.ceil(x), np.floor(x) 计算各个元素大于其的最小整数、小于其的最大整数 np.rint(x) 计算各个元素四舍五入的值 np.modf(x) 将各元素小数部分和整数部分以两个独立数组形式返回,可
b,c=np.modf(a),b保存小数部分,c保存整数部分 np.cos(x), np.sin(x), np.tan(x), np.cosh(x), np.sinh(x), np.tanh(x) 计算各元素的普通型三角函数和双曲型三角函数 np.exp(x) 计算各元素的指数值 np.sign(x) 计算各元素的符号值,1(+), 0, -1(-) ............大量函数
二元函数
+ - * / 两个数组各元素分别进行对应计算 np.maximum(x,y), np.minimum(x,y), np.fmax(), np.fmin() 各元素的大值、小值,fmax与fmin将忽略 NaN np.mod(x,y) 元素级的模运算 , x为被除数,y为除数 np,copysign(x,y) 将y中各元素的符号值赋给x >= <= == != 元素级的比较,产生bool数组
Last updated
Was this helpful?