2 ufun函数
参考书目:python科学计算第二版 张若愚
numpy许多ufun函数都是c语言实现的
函数 | 功能 |
---|---|
np.sin(x) | 计算正弦值,返回一个保存计算结果的数组,可以计算数组 np.sin(x,out=x),计算值,直接在x中保存结果 单个数值计算、循环时math.sin()比np.sin()快很多。 np.sin()返回numpy.type型,利用a.item(元组)可以返回对应元组位置的单个数值的python的数值类型 |
四则运算,能被重载 | |
加 | np.add(x,y,…),带有参数out,无out产生新数组,有out不产生新数组 x+y |
减 | substract(),x-y |
乘 | multiply(),x*y |
除 | divide() x/y |
负数 | -y,negative() |
指数 | x**y,power(x,y) |
矩阵和向量的乘法 | A.dot§ |
矩阵求逆 | np.linalg.inv(A) |
取余运算 | x%y,remainder(x,y) |
比较运算和布尔运算其中函数为ufunc函数 | |
等于 | equal(),== |
不等于 | not_equal(),!= |
小于 | less(),< |
小于等于 | less_equal(),<= |
大于 | greater(),> |
大于等于 | greater_equal(),>= |
布尔运算,服务于数组 | |
and | np.logical_and(x,y),x和y同时满足 |
or | np.logical_or() |
not | np.logical_not() |
xor | np.logical_xor() |
1.两个布尔数组使用布尔运算将出现valueerror异常 | np.any(a==b)a,b中有一个成立,则返回ture np.all() |
自定义ufunc()函数 | |
单个值函数转换为数组级的运算 | frompyfunc(func,nin,nout) func是计算单个元素的函数,nin是func的输入参数的个数,nout是func的返回值的个数 fun = frompyfunc(triangle.wave,4,1) fun(x1,x2,x3,x4) |
广播 | |
(3,1)+(1,3)的数组,自我复制轴的最大值然后相加 | |
a.repeat(6,axis=0) | 沿着第0轴复制6次 |
a[None,:]生成新行,不变,a[:,None]所有元素用于生成新列 | |
x,y = np.ogrid[:5,:5] | 创建0-4的用于广播运算的数组 格式:开始值:结束值:步长值, 开始值:结束值:长度j |
x,y = np.mgrid[:5,:5] | 创建返回进行广播之后的数组 |