前言
数组之所以强大,是因为它可以大量计算!各种计算方法
1.一般运算
数组与标量运算 列数一定要相同,行数也要相同,但也可以不相同,自己可以试一试 !( + - * / 都可)
代码如下(示例):
arr3 = np.array([[1,-2,-3],[1,2,3]])
arr4 = np.array([[4,5,6],[4,5,6]])
print(arr4+arr3)
print(arr4*arr3)
print(arr4/arr3)
print(arr4-arr3)
2.通用函数
一元:
- np.abs(x, *args, **kwargs) 绝对值
- np.sqrt(x, *args, **kwargs) 开平方
- np.square(x, *args, **kwargs) 平方
- np.exp(x, *args, **kwargs) 指数
- np.log(x, *args, **kwargs) 对数
- np.sign(x, *args, **kwargs) 当 x>0是为 1,当x<0是为-1
- np.ceil(x, *args, **kwargs) 正无穷大取整
- np.floor(x, *args, **kwargs) 负无穷小取整
- np.modf(x, out1=None, out2=None, *args, **kwargs) 分为小数和整数
- np.rint(x, *args, **kwargs) np.round(a, decimals=0, out=None) 返回四舍五入的值
- np.isnan(x, *args, **kwargs)
np.isinf(x, *args, **kwargs)
判断是否为缺失值,无穷值 - np.cos(x, *args, **kwargs)
np.cosh(x, *args, **kwargs)
np.tan(x, *args, **kwargs)
np.sin(x, *args, **kwargs)
np.sinh(x, *args, **kwargs)
np.tanh(x, *args, **kwargs)
三角函数 - np.arccos(x, *args, **kwargs)
np.arcsin(x, *args, **kwargs)
np.arctan(x, *args, **kwargs)
反三角函数
二元:
- minimum(x1, x2, *args, **kwargs) 计算元素最小值
- maximum(x1, x2, *args, **kwargs) 计算元素最大值
- np.add(x1, x2, *args, **kwargs) 求和
- np.subtract(x1, x2, *args, **kwargs) 求差
- np. negative(x, *args, **kwargs) 负数运算
- np.multiply(x1, x2, *args, **kwargs) 相乘
- np.divide(x1, x2, *args, **kwargs) 相除
- np.floor_divide(x1, x2, *args, **kwargs) 取整运算
- np.mod(x1, x2, *args, **kwargs) 相当于“%”
代码如下(部分):
arr3 = np.array([[1,-2,-3],[1,2,3]])
arr4 = np.array([[4,5,6],[4,5,6]])
# 通用函数(ufunc) square sqrt abs add minimum maximum modf
print(np.square(arr4))
# [[16 25 36]
# [16 25 36]]
print(np.sqrt(arr4))
# [[2. 2.23606798 2.44948974]
# [2. 2.23606798 2.44948974]]
print(np.abs(arr3))
# [[1 2 3]
# [1 2 3]]
print(np.add(arr4,arr3))
# [[5 3 3]
# [5 7 9]]
print(np.minimum(arr4,arr3))
# [[ 1 -2 -3]
# [ 1 2 3]]
print(np.maximum(arr4,arr3))
# [[4 5 6]
# [4 5 6]]
print(np.modf(arr4))
# (array([[0., 0., 0.],
# [0., 0., 0.]]), array([[4., 5., 6.],
# [4., 5., 6.]]))
3.基本数组统计方法
- sum 求和
- mean 求平均数
- std 求标准差
- var 求方差
- min 求最小值
- max 求最大值
- argmin 最小元素的索引
- argmax 最大元素的索引
- cumsum 累加
- cumprod 累乘
代码如下(示例):
print(arr4.sum())
# 30
print(arr4.mean())
# 5.0
print(arr4.std())
# 0.816496580927726
print(arr4.var())
# 0.6666666666666666
print(arr4.min())
# 4
print(arr4.max())
# 5
print(arr4.argmin())
# 0
print(arr4.argmax())
# 2
print(arr4.cumsum())
# [ 4 9 15 19 24 30]
print(arr4.cumprod())
# [ 4 20 120 480 2400 14400]
4.集合运算
- unque(x) 唯一值
- intersect1d(x,y) 公共元素
- union1d(x,y) 并集
- in1d(x,y) x的元素是否在元素y中,返回bool值
- setdiff1d(x,y) 集合的差
- setxor1d(x,y) 交集取反
代码如下(示例):
# 集合运算
print(np.unique(arr4))
# [4 5 6]
print(np.intersect1d(arr4,arr3))
# []
print(np.union1d(arr4,arr3))
# [-3 -2 1 2 3 4 5 6]
print(np.in1d(arr3,arr4))
# [False False False False False False]
print("*"*40)
print(np.setdiff1d(arr4,arr3))
# [4 5 6]
print(np.setxor1d(arr3,arr4))
# [-3 -2 1 2 3 4 5 6]
总结
努力学习吧!