ndarray的数学运算是一项非常重要的操作,包括不同对象之间的四则运算,三角函数变换、求和、求平均等操作
1、四则运算
如果参与运算的两个对象都是ndarray,并且形状相同,那么就可以进行对位之间的四则(+ - * / )运算。
在Numpy中,四则运算分别为:add(), subtract(), multiply()和divide()
import numpy as nparr1 = np.arange(6, dtype=float).reshape(2, 3)arr2 = np.array([10, 10, 10])print('arr1+arr2=', np.add(arr1, arr2))print('arr1-arr2=', arr1-arr2)print('arr1*arr2=', np.multiply(arr1, arr2))print('arr1/arr2=', np.divide(arr1, arr2))# 输出结果到指定对象arr3 = np.arange(4)arr4 = np.empty(4)np.multiply(arr3, 10, out=arr4)print('arr4:', arr4)
2、数学函数
Numpy提供了标准的三角函数:sin(), cos(), tan()。
注意:numpy没有提供cot()函数的API,如果需要计算cot()值,可以使用sin()与cos()函数进行计算。
arr = np.array([0, 30, 45, 60, 90])print('不同角度对应的正弦值为:\n', np.sin(arr*np.pi/180))print('不同角度对应的余弦值为:\n', np.cos(arr*np.pi/180))print('不同角度对应的正切值为:\n', np.tan(arr*np.pi/180))print('不同角度对应的余切值为:\n', np.divide(np.cos(arr*np.pi/180), np.sin(arr*np.pi/180)))
3、四舍五入函数
Numpy中的四舍五入函数与python中平常使用的四舍五入函数一样,只是导入了Numpy的包而已
(1)四舍五入
numpy.around(a, decimals)
a:数组
decimals:舍入的小数位数,默认为0,。如果为负,整数将四舍五入到小数点左侧的位置
(2)向下取整
numpy.floor()
(3)向上取整
numpy.ceil()
实例
arr = np.array([2.06, 0.256, 23, 15.636])print('arr:', arr)print('不保留小数:\n', np.around(arr))print('保留1位小数:\n', np.around(arr, decimals=1))print('保留-1位小数:\n', np.around(arr, decimals=-1))print('向下取整:\n', np.floor(arr))print('向上取整:\n', np.ceil(arr))
4、聚合函数
Numpy还提供了许多统计函数,包括查找最大/小元素、求和、平均值、方差等等
实例:
arr = np.arange(12).reshape(3, 4)print('arr:\n', arr)print('arr数组所有元素求和为:\n', np.sum(arr))print('arr数组所有元素相乘为:\n', np.prod(arr))print('arr数组的平均值为:\n', np.mean(arr))print('arr数组每一行的平均值为:\n', np.mean(arr, axis=1))print('arr数组每一列的平均值为:\n', np.mean(arr, axis=0))print('arr数组的标准差为:\n', np.std(arr))print('arr数组的方差为:\n', np.var(arr))print('arr数组的中位数为:\n', np.median(arr))print('arr数组每一行的中位数为:\n', np.median(arr, axis=1))print('arr数组每一列的中位数为:\n', np.median(arr, axis=0))print('arr数组的平方为:\n', np.power(arr, 2))print('arr数组的开方为:\n', np.sqrt(arr))print('arr数组的最小值为:\n', np.min(arr))print('arr数组的最大值为:\n', np.max(arr))print('arr数组的最小值下标为:\n', np.argmin(arr))print('arr数组的最大值下标为:\n', np.argmax(arr))