五、通用函数(ufunc):快速的元素集数组函数
通用函数(ufunc)是一种对ndarray中的数据执行元素级运算的函数。
一元ufunc:sqrt、exp、abs、square(各元素平方)
二元(接受两个数组),并返回一个结果数组。
- arr=np.array([1,4,9]) #一元
- np.sqrt(arr)
- array([1., 2., 3.])
- np.exp(arr)
- array([2.71828183e+00, 5.45981500e+01, 8.10308393e+03])
- np.abs(arr)
- array([1, 4, 9])
- a=np.array([1,2,3]) #二元
- b=np.array([3,4,5])
- np.add(a,b)
- array([4, 6, 8])
- np.power(a,b)
- array([ 1, 16, 243], dtype=int32)
- np.maximum(a,b) #元素级的最大值计算
- array([3, 4, 5])
- np.minimum(a,b) #元素级的最小值计算
- array([1, 2, 3])
六、数学和统计方法
可以通过数组上的一组数学函数对整个数组或某个轴向的数据进行统计计算。sum、mean以及标准差str即可当做数组的实例方法调用,也可以当做顶级NumPy函数使用.
- arr=np.array([[1,2,3,4],[1,2,3,4],[1,2,3,4]])
- arr.mean()
- 2.5
- np.mean(arr)
- 2.5
- arr.sum()
- 30
- arr.mean(axis=1) #按行求均值
- array([2.5, 2.5, 2.5])
- arr.mean(axis=0) #按列求均值
- array([1., 2., 3., 4.])
- arr.argmax(axis=1)#每行最大元素的索引
- array([3, 3, 3], dtype=int64)
- arr.max(axis=0) #每列最大的元素
- array([1, 2, 3, 4])
- arr.cumsum(0) #所有元素按列累计和
- array([[ 1, 2, 3, 4],
- [ 2, 4, 6, 8],
- [ 3, 6, 9, 12]], dtype=int32)
- arr.cumprod(1) #所有元素按行累计积
- array([[ 1, 2, 6, 24],
- [ 1, 2, 6, 24],
- [ 1, 2, 6, 24]], dtype=int32)
七、排序
NumPy数组通过sort方法进行排序:
- arr=np.random.randn(8)
- arr
- array([ 0.04586651, 0.0771802 , -0.19443214, -0.33640829, -2.17824081,
- -0.62737089, 1.98394763, 0.224598 ])
- arr.sort() #从小到大排序
- arr
- array([-2.17824081, -0.62737089, -0.33640829, -0.19443214, 0.04586651,
- 0.0771802 , 0.224598 , 1.98394763])
对于多维数组可以在任意一个轴上进行排序,只需将轴编号传给sort即可: