数学函数
算数运算
- numpy.add(x1,x2,args,**kwargs)
- numpy.subtrack(x1,x2,args,**kwargs)
- numpy.multiply(x1,x2,args,**kwargs)
- numpt.divide(x1,x2,args,**kwargs)
- numpy.floor_divide(x1,x2,args,**kwargs)
- numpy.power(x1,x2,args,kwargs)
numpy对上述函数进行了运算符的重载,且运算符也为元素级**。也就是说上面的函数只用于位置相同的元素之间,所得到的运算结果组成一个新的数组
import numpy as np
x = np.array([1,2,3,4,5,6,7,8])
y = x + 1
print(y,'\n')
print(np.add(x,1),'\n')
y = x - 1
print(y,'\n')
print(np.subtract(x,1),'\n')
y = x * 2
print(y,'\n')
print(np.multiply(x,2),'\n')
y = x / 2
print(y,'\n')
print(np.divide(x,2),'\n')
y = x // 2
print(y,'\n')
print(np.floor_divide(x,2),'\n')
y = x ** 2
print(y,'\n')
print(np.power(x,2),'\n')
[2 3 4 5 6 7 8 9]
[2 3 4 5 6 7 8 9]
[0 1 2 3 4 5 6 7]
[0 1 2 3 4 5 6 7]
[ 2 4 6 8 10 12 14 16]
[ 2 4 6 8 10 12 14 16]
[0.5 1. 1.5 2. 2.5 3. 3.5 4. ]
[0.5 1. 1.5 2. 2.5 3. 3.5 4. ]
[0 1 1 2 2 3 3 4]
[0 1 1 2 2 3 3 4]
[ 1 4 9 16 25 36 49 64]
[ 1 4 9 16 25 36 49 64]
x = np.array([[11,12,13,14,15],
[16,17,18,19,20],
[21,22,23,24,25],
[26,27,28,29,30],
[31,32,33,34,35]])
y = x + 1
print(y,'\n')
print(np.add(x,1),'\n')
y = x - 1
print(y,'\n')
print(np.subtract(x,1),'\n')
y = x * 2
print(y,'\n')
print(np.multiply(x,2),'\n')
y = x / 2
print(y,'\n')
print(np.divide(x,2),'\n')
y = x // 2
print(y,'\n')
print(np.floor_divide(x,2),'\n')
y = x ** 2
print(y,'\n')
print(np.power(x,2),'\n')
[[12 13 14 15 16]
[17 18 19 20 21]
[22 23 24 25 26]
[27 28 29 30 31]
[32 33 34 35 36]]
[[12 13 14 15 16]
[17 18 19 20 21]
[22 23 24 25 26]
[27 28 29 30 31]
[32 33 34 35 36]]
[[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]
[25 26 27 28 29]
[30 31 32 33 34]]
[[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]
[25 26 27 28 29]
[30 31 32 33 34]]
[[22 24 26 28 30]
[32 34 36 38 40]
[42 44 46 48 50]
[52 54 56 58 60]
[62 64 66 68 70]]
[[22 24 26 28 30]
[32 34 36 38 40]
[42 44 46 48 50]
[52 54 56 58 60]
[62 64 66 68 70]]
[[ 5.5 6. 6.5 7. 7.5]
[ 8. 8.5 9. 9.5 10. ]
[10.5 11. 11.5 12. 12.5]
[13. 13.5 14. 14.5 15. ]
[15.5 16. 16.5 17. 17.5]]
[[ 5.5 6. 6.5 7. 7.5]
[ 8. 8.5 9. 9.5 10. ]
[10.5 11. 11.5 12. 12.5]
[13. 13.5 14. 14.5 15. ]
[15.5 16. 16.5 17. 17.5]]
[[ 5 6 6 7 7]
[ 8 8 9 9 10]
[10 11 11 12 12]
[13 13 14 14 15]
[15 16 16 17 17]]
[[ 5 6 6 7 7]
[ 8 8 9 9 10]
[10 11 11 12 12]
[13 13 14 14 15]
[15 16 16 17 17]]
[[ 121 144 169 196 225]
[ 256 289 324 361 400]
[ 441 484 529 576 625]
[ 676 729 784 841 900]
[ 961 1024 1089 1156 1225]]
[[ 121 144 169 196 225]
[ 256 289 324 361 400]
[ 441 484 529 576 625]
[ 676 729 784 841 900]
[ 961 1024 1089 1156 1225]]
x = np.array([[11,12,13,14,15],
[16,17,18,19,20],
[21,22,23,24,25],
[26,27,28,29,30],
[31,32,33,34,35]])
y = np.arange(1,6)
print(y,'\n')
z = x + y
print(z,'\n')
print(np.add(x,y),'\n')
z = x - y
print(z,'\n')
print(np.subtract(x,y),'\n')
z = x * y
print(z,'\n')
print(np.multiply(x,y),'\n')
z = x / y
print(z,'\n')
print(np.divide(x,y),'\n')
z = x // y
print(z,'\n')
print(np.floor_divide(x,y),'\n')
z = x ** np.full([1,5],2)
print(z,'\n')
print(np.power(x,np.full([5,5],2)),'\n')
[1 2 3 4 5]
[[12 14 16 18 20]
[17 19 21 23 25]
[22 24 26 28 30]
[27 29 31 33 35]
[32 34 36 38 40]]
[[12 14 16 18 20]
[17 19 21 23 25]
[22 24 26 28 30]
[27 29 31 33 35]
[32 34 36 38 40]]
[[10 10 10 10 10]
[15 15 15 15 15]
[20 20 20 20 20]
[25 25 25 25 25]
[30 30 30 30 30]]
[[10 10 10 10 10]
[15 15 15 15 15]
[20 20 20 20 20]
[25 25 25 25 25]
[30 30 30 30 30]]
[[ 11 24 39 56 75]
[ 16 34 54 76 100]
[ 21 44 69 96 125]
[ 26 54 84 116 150]
[ 31 64 99 136 175]]
[[ 11 24 39 56 75]
[ 16 34 54 76 100]
[ 21 44 69 96 125]
[ 26 54 84 116 150]
[ 31 64 99 136 175]]
[[11. 6. 4.33333333 3.5 3. ]
[16. 8.5 6. 4.75 4. ]
[21. 11. 7.66666667 6. 5. ]
[26. 13.5 9.33333333 7.25 6. ]
[31. 16. 11. 8.5 7. ]]
[[11. 6. 4.33333333 3.5 3. ]
[16. 8.5 6. 4.75 4. ]
[21. 11. 7.66666667 6. 5. ]
[26. 13.5 9.33333333 7.25 6. ]
[31. 16. 11. 8.5 7. ]]
[[11 6 4 3 3]
[16 8 6 4 4]
[21 11 7 6 5]
[26 13 9 7 6]
[31 16 11 8 7]]
[[11 6 4 3 3]
[16 8 6 4 4]
[21 11 7 6 5]
[26 13 9 7 6]
[31 16 11 8 7]]
[[ 121 144 169 196 225]
[ 256 289 324 361 400]
[ 441 484 529 576 625]
[ 676 729 784 841 900]
[ 961 1024 1089 1156 1225]]
[[ 121 144 169 196 225]
[ 256 289 324 361 400]
[ 441 484 529 576 625]
[ 676 729 784 841 900]
[ 961 1024 1089 1156 1225]]
x = np.array([[11,12,13,14,15],
[16,17,18,19,20],
[21,22,23,24,25],
[26,27,28,29,30],
[31,32,33,34,35]])
y = np.arange(1,26).reshape([5,5])
print(y,'\n')
z = x + y
print(z,'\n')
print(np.add(x,y),'\n')
z = x - y
print(z,'\n')
print(np.subtract(x,y),'\n')
z = x * y
print(z,'\n')
print(np.multiply(x,y),'\n')
z = x / y
print(z,'\n')
print(np.divide(x,y),'\n')
z = x // y
print(z,'\n')
print(np.floor_divide(x,y),'\n')
z = x ** np.full([5,5],2)
print(z,'\n')
print(np.power(x,np.full([5,5],2)),'\n')
[[ 1 2 3 4 5]
[ 6 7 8 9 10]
[11 12 13 14 15]
[16 17 18 19 20]
[21 22 23 24 25]]
[[12 14 16 18 20]
[22 24 26 28 30]
[32 34 36 38 40]
[42 44 46 48 50]
[52 54 56 58 60]]
[[12 14 16 18 20]
[22 24 26 28 30]
[32 34 36 38 40]
[42 44 46 48 50]
[52 54 56 58 60]]
[[10 10 10 10 10]
[10 10 10 10 10]
[10 10 10 10 10]
[10 10 10 10 10]
[10 10 10 10 10]]
[[10 10 10 10 10]
[10 10 10 10 10]
[10 10 10 10 10]
[10 10 10 10 10]
[10 10 10 10 10]]
[[ 11 24 39 56 75]
[ 96 119 144 171 200]
[231 264 299 336 375]
[416 459 504 551 600]
[651 704 759 816 875]]
[[ 11 24 39 56 75]
[ 96 119 144 171 200]
[231 264 299 336 375]
[416 459 504 551 600]
[651 704 759 816 875]]
[[11. 6. 4.33333333 3.5 3. ]
[ 2.66666667 2.42857143 2.25 2.11111111 2. ]
[ 1.90909091 1.83333333 1.76923077 1.71428571 1.66666667]
[ 1.625 1.58823529 1.55555556 1.52631579 1.5 ]
[ 1.47619048 1.45454545 1.43478261 1.41666667 1.4 ]]
[[11. 6. 4.33333333 3.5 3. ]
[ 2.66666667 2.42857143 2.25 2.11111111 2. ]
[ 1.90909091 1.83333333 1.76923077 1.71428571 1.66666667]
[ 1.625 1.58823529 1.55555556 1.52631579 1.5 ]
[ 1.47619048 1.45454545 1.43478261 1.41666667 1.4 ]]
[[11 6 4 3 3]
[ 2 2 2 2 2]
[ 1 1 1 1 1]
[ 1 1 1 1 1]
[ 1 1 1 1 1]]
[[11 6 4 3 3]
[ 2 2 2 2 2]
[ 1 1 1 1 1]
[ 1 1 1 1 1]
[ 1 1 1 1 1]]
[[ 121 144 169 196 225]
[ 256 289 324 361 400]
[ 441 484 529 576 625]
[ 676 729 784 841 900]
[ 961 1024 1089 1156 1225]]
[[ 121 144 169 196 225]
[ 256 289 324 361 400]
[ 441 484 529 576 625]
[ 676 729 784 841 900]
[ 961 1024 1089 1156 1225]]
- numpy.sqrt
- numpy.square
x = np.arange(1,5)
print(x,'\n')
y = np.sqrt(x)
print(y,'\n')
print(np.power(x,0.5),'\n')
y = np.square(x)
print(y,'\n')
print(np.power(x,2),'\n')
[1 2 3 4]
[1. 1.41421356 1.73205081 2. ]
[1. 1.41421356 1.73205081 2. ]
[ 1 4 9 16]
[ 1 4 9 16]
三角函数
- numpy.sin(x, *args, **kwargs)
- numpy.cos(x, *args, **kwargs)
- numpy.tan(x, *args, **kwargs)
- numpy.arcsin(x, *args, **kwargs)
- numpy.arccos(x, *args, **kwargs)
- numpy.arctan(x, *args, **kwargs)
通用函数 通常叫作ufunc,它对数组中的各个元素逐一进行操作。这表明,通用函数分别处理输入数组的每个元素,生成的结果组成一个新的输出数组。输出数组的大小跟输入数组相同
x = np.linspace(start=0,stop=np.pi/2,num=10)
print(x,'\n')
y = np.sin(x)
print(y,'\n')
z = np.arcsin(y)
print(z,'\n')
y = np.cos(x)
print(y,'\n')
z = np.arccos(y)
print(z,'\n')
y = np.tan(x)
print(y,'\n')
z = np.arctan(y)
print(z,'\n')
[0. 0.17453293 0.34906585 0.52359878 0.6981317 0.87266463
1.04719755 1.22173048 1.3962634 1.57079633]
[0. 0.17364818 0.34202014 0.5 0.64278761 0.76604444
0.8660254 0.93969262 0.98480775 1. ]
[0. 0.17453293 0.34906585 0.52359878 0.6981317 0.87266463
1.04719755 1.22173048 1.3962634 1.57079633]
[1.00000000e+00 9.84807753e-01 9.39692621e-01 8.66025404e-01
7.66044443e-01 6.42787610e-01 5.00000000e-01 3.42020143e-01
1.73648178e-01 6.12323400e-17]
[0. 0.17453293 0.34906585 0.52359878 0.6981317 0.87266463
1.04719755 1.22173048 1.3962634 1.57079633]
[0.00000000e+00 1.76326981e-01 3.63970234e-01 5.77350269e-01
8.39099631e-01 1.19175359e+00 1.73205081e+00 2.74747742e+00
5.67128182e+00 1.63312394e+16]
[0. 0.17453293 0.34906585 0.52359878 0.6981317 0.87266463
1.04719755 1.22173048 1.3962634 1.57079633]
指数和对数
- numpy.exp
- numpy.log
- numpy.exp2
- numpy.log2
- numpy.exp10
- numpy.log10
x = np.arange(1,5)
print(x,'\n')
y = np.exp(x)
print(y,'\n')
z = np.log(y)
print(z,'\n')
[1 2 3 4]
[ 2.71828183 7.3890561 20.08553692 54.59815003]
[1. 2. 3. 4.]
加法函数、乘法函数
- numpy.sum(a[,axis=None,dtype=None,out=None,…])
- 通过不同的axis,numpy会沿着不同的方向进行操作;如果不设置,那么对于所有的元素操作;如果axis=0,则沿着纵轴进行操作;axis=1,沿着横轴进行操作。对于多维数组,则numpy沿着第i个下标变化的方向进行操作
- numpy.cumsum(a,axis=None,dtype=None,out=None)
- 聚合函数是指对一组值(比如一个数组)进行操作,返回一个单一值作为结果的函数。因而,求数组所有元素之和的函数就是聚合函数。ndarray类实现了多个这样的函数。
# 返回给定轴上的数组元素的总和
x = np.array([[11,12,13,14,15],
[16,17,18,19,20],
[21,22,23,24,25],
[26,27,28,29,30],
[31,32,33,34,35]])
y = np.sum(x)
print('所有元素和为:',y,'\n')
y = np.sum(x,axis=0)
print('沿纵轴对所有元素求和:',y,'\n')
y = np.sum(x,axis=1)
print('沿横轴对所有元素求和:',y,'\n')
所有元素和为: 575
沿纵轴对所有元素求和: [105 110 115 120 125]
沿横轴对所有元素求和: [ 65 90 115 140 165]
# 返回给定轴上的数组元素的累加和
x = np.array([[11,12,13,14,15],
[16,17,18,19,20],
[21,22,23,24,25],
[26,27,28,29,30],
[31,32,33,34,35]])
y = np.cumsum(x)
print('所有元素的累加和:\n',y,'\n')
y = np.cumsum(x,axis=0)
print('沿纵轴对所有元素求累加和:\n',y,'\n')
y = np.cumsum(x,axis=1)
print('沿纵轴对所有元素求累加和:\n',y,'\n')
所有元素的累加和:
[ 11 23 36 50 65 81 98 116 135 155 176 198 221 245 270 296 323 351
380 410 441 473 506 540 575]
沿纵轴对所有元素求累加和:
[[ 11 12 13 14 15]
[ 27 29 31 33 35]
[ 48 51 54 57 60]
[ 74 78 82 86 90]
[105 110 115 120 125]]
沿纵轴对所有元素求累加和:
[[ 11 23 36 50 65]
[ 16 33 51 70 90]
[ 21 43 66 90 115]
[ 26 53 81 110 140]
[ 31 63 96 130 165]]
- numpy.prod(a[,axis=None,dtype=None,out=None,…])乘积
- nmupy.cumprod(a[,axis=None,dtype=None,out=None,…])累乘
#返回给定轴上数组元素的乘积
x = np.array([[11,12,13,14,15],
[16,17,18,19,20],
[21,22,23,24,25],
[26,27,28,29,30],
[31,32,33,34,35]])
y = np.prod(x)
print(y,'\n')
y = np.prod(x,axis=0)
print(y,'\n')
y = np.prod(x,axis=1)
print(y,'\n')
3712525927079477248
[2978976 3877632 4972968 6294624 7875000]
[ 360360 1860480 6375600 17100720 38955840]
#返回给定轴上数组元素的累乘
x = np.array([[11,12,13,14,15],
[16,17,18,19,20],
[21,22,23,24,25],
[26,27,28,29,30],
[31,32,33,34,35]])
y = np.cumprod(x)#数值过大发生了溢出
print(y,'\n')
y = np.cumprod(x,axis=0)
print(y,'\n')
y = np.cumprod(x,axis=1)
print(y,'\n')
[ 11 132 1716
24024 360360 5765760
98017920 1764322560 33522128640
670442572800 14079294028800 309744468633600
7124122778572800 170978946685747200 4274473667143680000
455850903478370304 -6138769679793553408 -5864854370833530880
-4060080090786430976 7324805792373932032 5708050679077273600
-1809819006622760960 -4383794997422456832 -1475077322687119360
3712525927079477248]
[[ 11 12 13 14 15]
[ 176 204 234 266 300]
[ 3696 4488 5382 6384 7500]
[ 96096 121176 150696 185136 225000]
[2978976 3877632 4972968 6294624 7875000]]
[[ 11 132 1716 24024 360360]
[ 16 272 4896 93024 1860480]
[ 21 462 10626 255024 6375600]
[ 26 702 19656 570024 17100720]
[ 31 992 32736 1113024 38955840]]
- numpu.diff(a,n=1,axis=-1,prepend=np._NoNalue,append=np._Novalue)差值
- a:输入矩阵
- n:可选,代表执行几次差值
- axis,默认是最后一个
#沿着指定轴计算第N维的离散差值
A = np.arange(2,14).reshape((3,4))
A[1,1] = 8
print(A,'\n')
print(np.diff(A),'\n')
print(np.diff(A,axis=0))
[[ 2 3 4 5]
[ 6 8 8 9]
[10 11 12 13]]
[[1 1 1]
[2 0 1]
[1 1 1]]
[[4 5 4 4]
[4 3 4 4]]
四舍五入
- numpy.around(a,decimals=0,out=None)舍入
x = np.random.rand(3,3)*10
print(x,'\n')
y = np.around(x)
print(y,'\n')
y = np.around(x,decimals=2)
print(y,'\n')
[[9.41801443 5.74294332 5.29531901]
[2.53046431 2.34989339 1.30583239]
[6.15988889 8.75570208 6.99327464]]
[[9. 6. 5.]
[3. 2. 1.]
[6. 9. 7.]]
[[9.42 5.74 5.3 ]
[2.53 2.35 1.31]
[6.16 8.76 6.99]]
- numpu.ceil上限,向上取整
- numpy.floor下限,向下取整
x = np.random.rand(3,3)*10
print(x,'\n')
y = np.ceil(x)
print(y,'\n')
y = np.floor(x)
print(y,'\n')
[[9.50530828 4.33867606 0.55746582]
[4.67636587 9.82668405 9.89723101]
[9.61247694 5.99839719 7.25169962]]
[[10. 5. 1.]
[ 5. 10. 10.]
[10. 6. 8.]]
[[9. 4. 0.]
[4. 9. 9.]
[9. 5. 7.]]
杂项
- numpy.clip(a,a_min,a_max,out=None,**kwargs)裁剪
#裁剪(限制)数组中的值
x = np.array([[11,12,13,14,15],
[16,17,18,19,20],
[21,22,23,24,25],
[26,27,28,29,30],
[31,32,33,34,35]])
y = np.clip(x,a_min=20,a_max=30)
print(y)
print('原数组中小于a_min的元素替换为a_min,大于a_max的元素替换为a_max')
[[20 20 20 20 20]
[20 20 20 20 20]
[21 22 23 24 25]
[26 27 28 29 30]
[30 30 30 30 30]]
原数组中小于a_min的元素替换为a_min,大于a_max的元素替换为a_max
- numpy.absolute 绝对值
- numpy.abs
x = np.arange(-5,5)
print(x)
y =np.abs(x)
print(y,'\n')
y = np.absolute(x)
print(y,'\n')
[-5 -4 -3 -2 -1 0 1 2 3 4]
[5 4 3 2 1 0 1 2 3 4]
[5 4 3 2 1 0 1 2 3 4]
- numpy.sign返回数字符号的逐元素指示
x = np.arange(-5,5)
print(x)
print(np.sign(x))
[-5 -4 -3 -2 -1 0 1 2 3 4]
[-1 -1 -1 -1 -1 0 1 1 1 1]
逻辑函数
真值测试
- numpy.all
- numpy.any
a = np.array([0,4,5])
b = np.copy(a)
print(np.all(a==b),'\n')
print(np.any(a==b),'\n')
b[0] = 1
print(np.all(a==b),'\n')
print(np.any(a==b),'\n')
print(np.all([1.0,np.nan]))
print(np.any([1.0,np.nan]))
a = np.eye(3)
print(np.all(a,axis=0))
print(np.any(a,axis=1))
True
True
False
True
True
True
[False False False]
[ True True True]
数组内容
- numpy.isnan
a = np.array([1,2,np.nan])
print(np.isnan(a))
[False False True]
逻辑运算
- numpy.logical_not
- numpy.logical_and
- numpy.logical_or
- numpy.logical_xor
#计算非x元素的真值
print(np.logical_not(3))
print(np.logical_not([True,False,0,1]))
x = np.arange(5)
print(np.logical_not(x<3))
#计算x1 AND x2元素的真值
print(np.logical_and(True,False))
print(np.logical_and(x>1,x<4))
#计算x1 or x2的真值
print(np.logical_or(True,False))
print(np.logical_or([True,False],[True,False]))
print(np.logical_or(x<1,x>3))
#计算x1 or x2的真值
print(np.logical_xor(True,False))
print(np.logical_xor([True,False],[True,False]))
print(np.logical_xor(x<1,x>3))
False
[False True True False]
[False False False True True]
False
[False False True True False]
True
[ True False]
[ True False False False True]
True
[False False]
[ True False False False True]
对照
- numpy.greater(x1, x2, *args, **kwargs) Return the truth value of (x1 > x2) element-wise.
- numpy.greater_equal(x1, x2, *args, **kwargs) Return the truth value of (x1 >= x2) element-wise.
- numpy.equal(x1, x2, *args, **kwargs) Return (x1 == x2) element-wise.
- numpy.not_equal(x1, x2, *args, **kwargs) Return (x1 != x2) element-wise.
- numpy.less(x1, x2, *args, **kwargs) Return the truth value of (x1 < x2) element-wise.
- numpy.less_equal(x1, x2, *args, **kwargs) Return the truth value of (x1 =< x2) element-wise.
import numpy as np
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = x > 2
print(y)
print('\n')
print(np.greater(x, 2))
print('\n')
# [False False True True True True True True]
y = x >= 2
print(y)
print('\n')
print(np.greater_equal(x, 2))
print('\n')
# [False True True True True True True True]
y = x == 2
print(y)
print('\n')
print(np.equal(x, 2))
print('\n')
# [False True False False False False False False]
y = x != 2
print(y)
print('\n')
print(np.not_equal(x, 2))
print('\n')
# [ True False True True True True True True]
y = x < 2
print(y)
print('\n')
print(np.less(x, 2))
print('\n')
y = x <= 2
print(y)
print('\n')
print(np.less_equal(x, 2))
print('\n')
x = np.array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25],
[26, 27, 28, 29, 30],
[31, 32, 33, 34, 35]])
y = x > 20
print(y)
print('\n')
print(np.greater(x, 20))
print('\n')
# [[False False False False False]
# [False False False False False]
# [ True True True True True]
# [ True True True True True]
# [ True True True True True]]
y = x >= 20
print(y)
print('\n')
print(np.greater_equal(x, 20))
print('\n')
# [[False False False False False]
# [False False False False True]
# [ True True True True True]
# [ True True True True True]
# [ True True True True True]]
y = x == 20
print(y)
print('\n')
print(np.equal(x, 20))
print('\n')
# [[False False False False False]
# [False False False False True]
# [False False False False False]
# [False False False False False]
# [False False False False False]]
y = x != 20
print(y)
print('\n')
print(np.not_equal(x, 20))
print('\n')
# [[ True True True True True]
# [ True True True True False]
# [ True True True True True]
# [ True True True True True]
# [ True True True True True]]
y = x < 20
print(y)
print('\n')
print(np.less(x, 20))
print('\n')
y = x <= 20
print('\n')
print(y)
print('\n')
print(np.less_equal(x, 20))
[False False True True True True True True]
[False False True True True True True True]
[False True True True True True True True]
[False True True True True True True True]
[False True False False False False False False]
[False True False False False False False False]
[ True False True True True True True True]
[ True False True True True True True True]
[ True False False False False False False False]
[ True False False False False False False False]
[ True True False False False False False False]
[ True True False False False False False False]
[[False False False False False]
[False False False False False]
[ True True True True True]
[ True True True True True]
[ True True True True True]]
[[False False False False False]
[False False False False False]
[ True True True True True]
[ True True True True True]
[ True True True True True]]
[[False False False False False]
[False False False False True]
[ True True True True True]
[ True True True True True]
[ True True True True True]]
[[False False False False False]
[False False False False True]
[ True True True True True]
[ True True True True True]
[ True True True True True]]
[[False False False False False]
[False False False False True]
[False False False False False]
[False False False False False]
[False False False False False]]
[[False False False False False]
[False False False False True]
[False False False False False]
[False False False False False]
[False False False False False]]
[[ True True True True True]
[ True True True True False]
[ True True True True True]
[ True True True True True]
[ True True True True True]]
[[ True True True True True]
[ True True True True False]
[ True True True True True]
[ True True True True True]
[ True True True True True]]
[[ True True True True True]
[ True True True True False]
[False False False False False]
[False False False False False]
[False False False False False]]
[[ True True True True True]
[ True True True True False]
[False False False False False]
[False False False False False]
[False False False False False]]
[[ True True True True True]
[ True True True True True]
[False False False False False]
[False False False False False]
[False False False False False]]
[[ True True True True True]
[ True True True True True]
[False False False False False]
[False False False False False]
[False False False False False]]
np.random.seed(20200611)
x = np.array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25],
[26, 27, 28, 29, 30],
[31, 32, 33, 34, 35]])
y = np.random.randint(10, 40, [5, 5])
print(y)
print('\n')
# [[32 28 31 33 37]
# [23 37 37 30 29]
# [32 24 10 33 15]
# [27 17 10 36 16]
# [25 32 23 39 34]]
z = x > y
print(z)
print('\n')
print(np.greater(x, y))
print('\n')
# [[False False False False False]
# [False False False False False]
# [False False True False True]
# [False True True False True]
# [ True False True False True]]
z = x >= y
print(z)
print('\n')
print(np.greater_equal(x, y))
print('\n')
z = x == y
print(z)
print('\n')
print(np.equal(x, y))
print('\n')
z = x != y
print(z)
print('\n')
print(np.not_equal(x, y))
print('\n')
z = x < y
print(z)
print('\n')
print(np.less(x, y))
# [[ True True True True True]
# [ True True True True True]
# [ True True False True False]
# [ True False False True False]
# [False False False True False]]
z = x <= y
print(z)
print('\n')
print(np.less_equal(x, y))
[[32 28 31 33 37]
[23 37 37 30 29]
[32 24 10 33 15]
[27 17 10 36 16]
[25 32 23 39 34]]
[[False False False False False]
[False False False False False]
[False False True False True]
[False True True False True]
[ True False True False True]]
[[False False False False False]
[False False False False False]
[False False True False True]
[False True True False True]
[ True False True False True]]
[[False False False False False]
[False False False False False]
[False False True False True]
[False True True False True]
[ True True True False True]]
[[False False False False False]
[False False False False False]
[False False True False True]
[False True True False True]
[ True True True False True]]
[[False False False False False]
[False False False False False]
[False False False False False]
[False False False False False]
[False True False False False]]
[[False False False False False]
[False False False False False]
[False False False False False]
[False False False False False]
[False True False False False]]
[[ True True True True True]
[ True True True True True]
[ True True True True True]
[ True True True True True]
[ True False True True True]]
[[ True True True True True]
[ True True True True True]
[ True True True True True]
[ True True True True True]
[ True False True True True]]
[[ True True True True True]
[ True True True True True]
[ True True False True False]
[ True False False True False]
[False False False True False]]
[[ True True True True True]
[ True True True True True]
[ True True False True False]
[ True False False True False]
[False False False True False]]
[[ True True True True True]
[ True True True True True]
[ True True False True False]
[ True False False True False]
[False True False True False]]
[[ True True True True True]
[ True True True True True]
[ True True False True False]
[ True False False True False]
[False True False True False]]
x = np.array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25],
[26, 27, 28, 29, 30],
[31, 32, 33, 34, 35]])
np.random.seed(20200611)
y = np.random.randint(10, 50, 5)
print(y)
z = x > y
print(z)
print(np.greater(x, y))
z = x >= y
print(z)
print(np.greater_equal(x, y))
z = x == y
print(z)
print(np.equal(x, y))
z = x != y
print(z)
print(np.not_equal(x, y))
z = x < y
print(z)
print(np.less(x, y))
z = x <= y
print(z)
print(np.less_equal(x, y))
[32 37 30 24 10]
[[False False False False True]
[False False False False True]
[False False False False True]
[False False False True True]
[False False True True True]]
[[False False False False True]
[False False False False True]
[False False False False True]
[False False False True True]
[False False True True True]]
[[False False False False True]
[False False False False True]
[False False False True True]
[False False False True True]
[False False True True True]]
[[False False False False True]
[False False False False True]
[False False False True True]
[False False False True True]
[False False True True True]]
[[False False False False False]
[False False False False False]
[False False False True False]
[False False False False False]
[False False False False False]]
[[False False False False False]
[False False False False False]
[False False False True False]
[False False False False False]
[False False False False False]]
[[ True True True True True]
[ True True True True True]
[ True True True False True]
[ True True True True True]
[ True True True True True]]
[[ True True True True True]
[ True True True True True]
[ True True True False True]
[ True True True True True]
[ True True True True True]]
[[ True True True True False]
[ True True True True False]
[ True True True False False]
[ True True True False False]
[ True True False False False]]
[[ True True True True False]
[ True True True True False]
[ True True True False False]
[ True True True False False]
[ True True False False False]]
[[ True True True True False]
[ True True True True False]
[ True True True True False]
[ True True True False False]
[ True True False False False]]
[[ True True True True False]
[ True True True True False]
[ True True True True False]
[ True True True False False]
[ True True False False False]]
- numpy.isclose
- numpy.allclose
- numpy.isclose(a, b, rtol=1.e-5, atol=1.e-8, equal_nan=False) Returns a boolean array where two arrays are element-wise equalwithin a tolerance.
- numpy.allclose(a, b, rtol=1.e-5, atol=1.e-8, equal_nan=False) Returns True if two arrays are element-wise equal within atolerance.
- numpy.allclose() 等价于 numpy.all(isclose(a, b, rtol=rtol, atol=atol, equal_nan=equal_nan)) 。
- The tolerance values are positive, typically very small numbers. The relative difference ( rtol * abs(b) ) and the absolute difference atol are addedtogether to compare against the absolute difference between a and b .
判断是否为True的计算依据:
- np.absolute(a - b) <= (atol + rtol * absolute(b))
- atol:float,绝对公差。
- rtol:float,相对公差
#比较两个数组是否可以认为相等。
x = np.isclose([1e10, 1e-7], [1.00001e10, 1e-8])
print(x) # [ True False]
x = np.allclose([1e10, 1e-7], [1.00001e10, 1e-8])
print(x) # False
x = np.isclose([1e10, 1e-8], [1.00001e10, 1e-9])
print(x) # [ True True]
x = np.allclose([1e10, 1e-8], [1.00001e10, 1e-9])
print(x) # True
x = np.isclose([1e10, 1e-8], [1.0001e10, 1e-9])
print(x) # [False True]
x = np.allclose([1e10, 1e-8], [1.0001e10, 1e-9])
print(x) # False
x = np.isclose([1.0, np.nan], [1.0, np.nan])
print(x) # [ True False]
x = np.allclose([1.0, np.nan], [1.0, np.nan])
print(x) # False
x = np.isclose([1.0, np.nan], [1.0, np.nan], equal_nan=True)
print(x) # [ True True]
x = np.allclose([1.0, np.nan], [1.0, np.nan], equal_nan=True)
print(x) #
[ True False]
False
[ True True]
True
[False True]
False
[ True False]
False
[ True True]
True