10月NumPy学习-数学函数与逻辑函数

数学函数

算数运算

  1. numpy.add(x1,x2,args,**kwargs)
  2. numpy.subtrack(x1,x2,args,**kwargs)
  3. numpy.multiply(x1,x2,args,**kwargs)
  4. numpt.divide(x1,x2,args,**kwargs)
  5. numpy.floor_divide(x1,x2,args,**kwargs)
  6. 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]] 
  1. numpy.sqrt
  2. 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] 

三角函数

  1. numpy.sin(x, *args, **kwargs)
  2. numpy.cos(x, *args, **kwargs)
  3. numpy.tan(x, *args, **kwargs)
  4. numpy.arcsin(x, *args, **kwargs)
  5. numpy.arccos(x, *args, **kwargs)
  6. 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] 

指数和对数

  1. numpy.exp
  2. numpy.log
  3. numpy.exp2
  4. numpy.log2
  5. numpy.exp10
  6. 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.] 

加法函数、乘法函数

  1. numpy.sum(a[,axis=None,dtype=None,out=None,…])
    • 通过不同的axis,numpy会沿着不同的方向进行操作;如果不设置,那么对于所有的元素操作;如果axis=0,则沿着纵轴进行操作;axis=1,沿着横轴进行操作。对于多维数组,则numpy沿着第i个下标变化的方向进行操作
  2. 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]] 
  1. numpy.prod(a[,axis=None,dtype=None,out=None,…])乘积
  2. 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]] 
  1. 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]]

四舍五入

  1. 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]] 
  1. numpu.ceil上限,向上取整
  2. 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.]] 

杂项

  1. 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
  1. numpy.absolute 绝对值
  2. 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] 
  1. 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]

逻辑函数

真值测试

  1. numpy.all
  2. 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]

数组内容

  1. numpy.isnan
a = np.array([1,2,np.nan])
print(np.isnan(a))
[False False  True]

逻辑运算

  1. numpy.logical_not
  2. numpy.logical_and
  3. numpy.logical_or
  4. 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]

对照

  1. numpy.greater(x1, x2, *args, **kwargs) Return the truth value of (x1 > x2) element-wise.
  2. numpy.greater_equal(x1, x2, *args, **kwargs) Return the truth value of (x1 >= x2) element-wise.
  3. numpy.equal(x1, x2, *args, **kwargs) Return (x1 == x2) element-wise.
  4. numpy.not_equal(x1, x2, *args, **kwargs) Return (x1 != x2) element-wise.
  5. numpy.less(x1, x2, *args, **kwargs) Return the truth value of (x1 < x2) element-wise.
  6. 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]]
  1. numpy.isclose
  2. 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值