逻辑函数
import numpy as np
a = np.array([0, 4, 5])
b = np.copy(a)
print(np.all(a == b))
print(np.any(a == b))
b[0] = 1
print(np.all(a == b))
print(np.any(a == b))
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=0))
True
True
False
True
True
True
[False False False]
[ True True True]
a=np.array([1,2,np.nan])
print(np.isnan(a))
[False False True]
import numpy as np
print(np.logical_not(3))
print(np.logical_not([True, False, 0, 1]))
x = np.arange(5)
print(x)
print(np.logical_not(x < 3))
False
[False True True False]
[0 1 2 3 4]
[False False False True True]
print(np.logical_and(True, False))
print(np.logical_and([True, False], [True, False]))
print(np.logical_and(x > 1, x < 4))
False
[ True False]
[False False True True False]
print(np.logical_or(True, False))
print(np.logical_or([True, False], [False, False]))
print(np.logical_or(x < 1, x > 3))
True
[ True False]
[ True False False False True]
print(np.logical_xor(True, False))
print(np.logical_xor([True, True, False, False], [True, False, True, False]))
print(np.logical_xor(x < 1, x > 3))
print(np.logical_xor(0, np.eye(2)))
True
[False True True False]
[ True False False False True]
[[ True False]
[False True]]
import numpy as np
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = x > 2
print(y)
print(np.greater(x, 2))
y = x >= 2
print(y)
print(np.greater_equal(x, 2))
y = x == 2
print(y)
print(np.equal(x, 2))
y = x != 2
print(y)
print(np.not_equal(x, 2))
y = x < 2
print(y)
print(np.less(x, 2))
y = x <= 2
print(y)
print(np.less_equal(x, 2))
[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]
import numpy as np
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(np.greater(x, 20))
y = x >= 20
print(y)
print(np.greater_equal(x, 20))
y = x == 20
print(y)
print(np.equal(x, 20))
y = x != 20
print(y)
print(np.not_equal(x, 20))
y = x < 20
print(y)
print(np.less(x, 20))
y = x <= 20
print(y)
print(np.less_equal(x, 20))
[[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]]
import numpy as np
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)
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 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]]
import numpy as np
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)
print('==============================')
z = x > y
print(z)
print('==============================')
print(np.greater(x, y))
print('==============================')
print('==============================')
z = x >= y
print(z)
print('==============================')
print(np.greater_equal(x, y))
print('==============================')
print('==============================')
z = x == y
print(z)
print('==============================')
print(np.equal(x, y))
print('==============================')
print('==============================')
z = x != y
print(z)
print('==============================')
print(np.not_equal(x, y))
print('==============================')
print('==============================')
z = x < y
print(z)
print('==============================')
print(np.less(x, y))
print('==============================')
print('==============================')
z = x <= y
print(z)
print('==============================')
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]]
import numpy as np
x = np.isclose([1e10, 1e-7], [1.00001e10, 1e-8])
print(x)
x = np.allclose([1e10, 1e-7], [1.00001e10, 1e-8])
print(x)
x = np.isclose([1e10, 1e-8], [1.00001e10, 1e-9])
print(x)
x = np.allclose([1e10, 1e-8], [1.00001e10, 1e-9])
print(x)
x = np.isclose([1e10, 1e-8], [1.0001e10, 1e-9])
print(x)
x = np.allclose([1e10, 1e-8], [1.0001e10, 1e-9])
print(x)
x = np.isclose([1.0, np.nan], [1.0, np.nan])
print(x)
x = np.allclose([1.0, np.nan], [1.0, np.nan])
print(x)
x = np.isclose([1.0, np.nan], [1.0, np.nan], equal_nan=True)
print(x)
x = np.allclose([1.0, np.nan], [1.0, np.nan], equal_nan=True)
print(x)
1
[ True False]
False
[ True True]
True
[False True]
False
[ True False]
False
[ True True]
True
1
广播
import numpy as np
x = np.arange(4)
y = np.ones((3, 4))
print('x : \n',x)
print('y: \n',y)
print('x.shape: \n',x.shape)
print('y.shape: \n',y.shape)
print('(x + y).shape: \n',(x + y).shape)
print('x + y: \n', x + y)
x :
[0 1 2 3]
y:
[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
x.shape:
(4,)
y.shape:
(3, 4)
(x + y).shape:
(3, 4)
x + y:
[[1. 2. 3. 4.]
[1. 2. 3. 4.]
[1. 2. 3. 4.]]
import numpy as np
x = np.arange(4).reshape(4, 1)
y = np.ones(5)
print('x : \n',x)
print('y: \n',y)
print('x.shape: \n',x.shape)
print('y.shape: \n',y.shape)
print((x + y).shape)
print(x + y)
x = np.array([0.0, 10.0, 20.0, 30.0])
print(x.shape)
y = np.array([1.0, 2.0, 3.0])
print(y.shape)
z = x[:, np.newaxis] + y
print(x[:, np.newaxis])
print(z.shape)
print(z)
x :
[[0]
[1]
[2]
[3]]
y:
[1. 1. 1. 1. 1.]
x.shape:
(4, 1)
y.shape:
(5,)
(4, 5)
[[1. 1. 1. 1. 1.]
[2. 2. 2. 2. 2.]
[3. 3. 3. 3. 3.]
[4. 4. 4. 4. 4.]]
(4,)
(3,)
[[ 0.]
[10.]
[20.]
[30.]]
(4, 3)
[[ 1. 2. 3.]
[11. 12. 13.]
[21. 22. 23.]
[31. 32. 33.]]
import numpy as np
x = np.arange(4)
y = np.ones(5)
print(x.shape)
print(y.shape)
print(x + y)
(4,)
(5,)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/tmp/ipykernel_674868/3537277039.py in <module>
8 print(y.shape) # (5,)
9
---> 10 print(x + y)
ValueError: operands could not be broadcast together with shapes (4,) (5,)
数学函数
import numpy as np
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = x + 1
print(y)
print(np.add(x, 1))
y = x - 1
print(y)
print(np.subtract(x, 1))
y = x * 2
print(y)
print(np.multiply(x, 2))
y = x / 2
print(y)
print(np.divide(x, 2))
y = x // 2
print(y)
print(np.floor_divide(x, 2))
y = x ** 2
print(y)
print(np.power(x, 2))
[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]
import numpy as np
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)
print(np.add(x, 1))
y = x - 1
print(y)
print(np.subtract(x, 1))
y = x * 2
print(y)
print(np.multiply(x, 2))
y = x / 2
print(y)
print(np.divide(x, 2))
y = x // 2
print(y)
print(np.floor_divide(x, 2))
y = x ** 2
print(y)
print(np.power(x, 2))
[[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]]
import numpy as np
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)
z = x + y
print(z)
print(np.add(x, y))
z = x - y
print(z)
print(np.subtract(x, y))
z = x * y
print(z)
print(np.multiply(x, y))
z = x / y
print(z)
print(np.divide(x, y))
z = x // y
print(z)
print(np.floor_divide(x, y))
z = x ** np.full([1, 5], 2)
print(z)
print(np.power(x, np.full([5, 5], 2)))
[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]]
import numpy as np
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)
z = x + y
print(z)
print(np.add(x, y))
z = x - y
print(z)
print(np.subtract(x, y))
z = x * y
print(z)
print(np.multiply(x, y))
z = x / y
print(z)
print(np.divide(x, y))
z = x // y
print(z)
print(np.floor_divide(x, y))
z = x ** np.full([5, 5], 2)
print(z)
print(np.power(x, np.full([5, 5], 2)))
[[ 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]]
import numpy as np
x = np.arange(1, 5)
print(x)
y = np.sqrt(x)
print(y)
print(np.power(x, 0.5))
y = np.square(x)
print(y)
print(np.power(x, 2))
[1 2 3 4]
[1. 1.41421356 1.73205081 2. ]
[1. 1.41421356 1.73205081 2. ]
[ 1 4 9 16]
[ 1 4 9 16]
np.full([5, 5], 2)
array([[2, 2, 2, 2, 2],
[2, 2, 2, 2, 2],
[2, 2, 2, 2, 2],
[2, 2, 2, 2, 2],
[2, 2, 2, 2, 2]])
import numpy as np
x = np.linspace(start=0, stop=np.pi / 2, num=10)
print(x)
y = np.sin(x)
print(y)
z = np.arcsin(y)
print(z)
y = np.cos(x)
print(y)
z = np.arccos(y)
print(z)
y = np.tan(x)
print(y)
z = np.arctan(y)
print(z)
[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]
import numpy as np
x = np.arange(1, 5)
print(x)
y = np.exp(x)
print(y)
z = np.log(y)
print(z)
[1 2 3 4]
[ 2.71828183 7.3890561 20.08553692 54.59815003]
[1. 2. 3. 4.]
import numpy as np
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)
y = np.sum(x, axis=0)
print(y)
y = np.sum(x, axis=1)
print(y)
575
[105 110 115 120 125]
[ 65 90 115 140 165]
import numpy as np
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(y)
y = np.cumsum(x, axis=0)
print(y)
y = np.cumsum(x, axis=1)
print(y)
[ 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]]
import numpy as np
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)
y = np.prod(x, axis=0)
print(y)
y = np.prod(x, axis=1)
print(y)
3712525927079477248
[2978976 3877632 4972968 6294624 7875000]
[ 360360 1860480 6375600 17100720 38955840]
import numpy as np
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)
y = np.cumprod(x, axis=0)
print(y)
y = np.cumprod(x, axis=1)
print(y)
[ 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]]
import numpy as np
A = np.arange(2, 14).reshape((3, 4))
print(A)
A[1, 1] = 8
print(A)
print(np.diff(A))
print(np.diff(A, axis=0))
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]]
[[ 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]]
import numpy as np
x = np.random.rand(3, 3) * 10
print(x)
y = np.around(x)
print(y)
y = np.around(x, decimals=2)
print(y)
[[2.53381034 4.19656566 5.82408314]
[0.15056819 3.11454291 4.70637488]
[1.53053372 5.94815398 3.82411538]]
[[3. 4. 6.]
[0. 3. 5.]
[2. 6. 4.]]
[[2.53 4.2 5.82]
[0.15 3.11 4.71]
[1.53 5.95 3.82]]
import numpy as np
x = np.random.rand(3, 3) * 10
print(x)
y = np.ceil(x)
print(y)
y = np.floor(x)
print(y)
[[1.71712114 3.04108939 8.44499147]
[0.63699974 5.22265247 8.245768 ]
[7.20516197 0.68709718 3.78554694]]
[[2. 4. 9.]
[1. 6. 9.]
[8. 1. 4.]]
[[1. 3. 8.]
[0. 5. 8.]
[7. 0. 3.]]
import numpy as np
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)
[[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]]
import numpy as np
x = np.arange(-5, 5)
print(x)
y = np.abs(x)
print(y)
y = np.absolute(x)
print(y)
[-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]
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]
练习
import numpy as np
np.set_printoptions(precision=2)
np.random.seed(100)
a = np.random.uniform(1, 50, 20)
print(a)
b = np.clip(a, a_min=10, a_max=30)
print(b)
b = np.where(a < 10, 10, a)
b = np.where(b > 30, 30, b)
print(b)
[27.63 14.64 21.8 42.39 1.23 6.96 33.87 41.47 7.7 29.18 44.67 11.25
10.08 6.31 11.77 48.95 40.77 9.43 41. 14.43]
[27.63 14.64 21.8 30. 10. 10. 30. 30. 10. 29.18 30. 11.25
10.08 10. 11.77 30. 30. 10. 30. 14.43]
[27.63 14.64 21.8 30. 10. 10. 30. 30. 10. 29.18 30. 11.25
10.08 10. 11.77 30. 30. 10. 30. 14.43]
import numpy as np
a = np.array([1, 3, 7, 1, 2, 6, 0, 1])
b1 = np.diff(a)
b2 = np.sign(b1)
b3 = np.diff(b2)
print(b1)
print(b2)
print(b3)
index = np.where(np.equal(b3, -2))[0] + 1
print(index)
print(a[index])
[ 2 4 -6 1 4 -6 1]
[ 1 1 -1 1 1 -1 1]
[ 0 -2 2 0 -2 2]
[2 5]
[7 6]
import numpy as np
np.random.seed(100)
z = np.random.randint(10, size=10)
print(z)
def MovingAverage(arr, n=3):
a = np.cumsum(arr)
print(a)
a[n:] = a[n:] - a[:-n]
return a[n - 1:] / n
r = MovingAverage(z, 3)
print(np.around(r, 2))
[8 8 3 7 7 0 4 2 5 2]
[ 8 16 19 26 33 33 37 39 44 46]
[6.33 6. 5.67 4.67 3.67 2. 3.67 3. ]
Z = np.random.random((5,5))
Zmax, Zmin = Z.max(), Z.min()
Z = (Z - Zmin)/(Zmax - Zmin)
print(Z)
[[0.22 0.47 0.92 0.06 0.65]
[0.55 0.59 0. 0.32 1. ]
[0.13 0.08 0.32 0.66 0.73]
[0.67 0.97 0.31 0.6 0.18]
[0.56 0.68 0.14 0.61 0.5 ]]
Z = np.random.uniform(0,10,10)
print (Z - Z%1)
print (np.floor(Z))
print (np.ceil(Z)-1)
print (Z.astype(int))
print (np.trunc(Z))
[3. 4. 4. 4. 0. 7. 5. 3. 5. 9.]
[3. 4. 4. 4. 0. 7. 5. 3. 5. 9.]
[3. 4. 4. 4. 0. 7. 5. 3. 5. 9.]
[3 4 4 4 0 7 5 3 5 9]
[3. 4. 4. 4. 0. 7. 5. 3. 5. 9.]
from numpy.lib import stride_tricks
def rolling(a, window):
shape = (a.size - window + 1, window)
strides = (a.itemsize, a.itemsize)
return stride_tricks.as_strided(a, shape=shape, strides=strides)
Z = rolling(np.arange(10), 3)
print (Z)
[[0 1 2]
[1 2 3]
[2 3 4]
[3 4 5]
[4 5 6]
[5 6 7]
[6 7 8]
[7 8 9]]
import numpy as np
def distance(P0,P1,p):
A=-1/(P1[:,0]-P0[:,0])
B=1/(P1[:,1]-P0[:,1])
C=P0[:,0]/(P1[:,0]-P0[:,0])-P0[:,1]/(P1[:,1]-P0[:,1])
return np.abs(A*p[:,0]+B*p[:,1]+C)/np.sqrt(A**2+B**2)
P0 = np.random.uniform(-10,10,(10,2))
P1 = np.random.uniform(-10,10,(10,2))
p = np.random.uniform(-10,10,( 1,2))
print (distance(P0, P1, p))
[1.31e+01 9.93e+00 1.04e-02 5.54e+00 7.57e+00 1.04e+01 3.07e-01 6.24e+00
2.98e+00 9.87e+00]
import numpy as np
from matplotlib import pyplot as plt
x = np.arange(0, 3*np.pi, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1)
plt.plot(x, y2)
[<matplotlib.lines.Line2D at 0x7f0350b99340>]
X = np.random.rand(5, 10)
Y = X - X.mean(axis=1, keepdims=True)
Y = X - X.mean(axis=1).reshape(-1, 1)
print(Y)
[[ 0.06 -0.17 0.52 -0.28 -0.24 0.09 -0.36 -0.12 0.51 -0.03]
[ 0.05 0.17 -0.3 -0.05 -0.05 0.47 -0.14 -0.19 0.4 -0.36]
[ 0.24 -0.45 0.11 -0.46 0.37 -0.05 0.07 0.33 -0.4 0.22]
[-0.05 -0.42 -0.39 -0. 0.54 -0.34 0.11 0.2 0. 0.35]
[ 0.08 0.1 -0.12 0.11 0.25 -0.06 0.06 -0.25 -0.03 -0.14]]
arr1 = np.random.randint(1,10,10)
arr2 = np.random.randint(1,10,10)
print("arr1的平均数为:%s" %np.mean(arr1))
print("arr1的中位数为:%s" %np.median(arr1))
print("arr1的方差为:%s" %np.var(arr1))
print("arr1的标准差为:%s" %np.std(arr1))
print("arr1,arr的相关性矩阵为:%s" %np.cov(arr1,arr2))
print("arr1,arr的协方差矩阵为:%s" %np.corrcoef(arr1,arr2))
arr1的平均数为:3.8
arr1的中位数为:3.5
arr1的方差为:5.56
arr1的标准差为:2.3579652245103193
arr1,arr的相关性矩阵为:[[6.18 2.64]
[2.64 7.38]]
arr1,arr的协方差矩阵为:[[1. 0.39]
[0.39 1. ]]
import numpy as np
a = np.array([1, 2, 3, 2, 3, 4, 3, 4, 5, 6])
b = np.array([7, 2, 10, 2, 7, 4, 9, 4, 9, 8])
mask = np.equal(a, b)
x = np.where(mask)
print(x)
x = np.nonzero(mask)
print(x)
(array([1, 3, 5, 7]),)
(array([1, 3, 5, 7]),)
import numpy as np
a = np.array([2, 6, 1, 9, 10, 3, 27])
mask = np.logical_and(np.greater_equal(a, 5), np.less_equal(a, 10))
x = np.where(mask)
print(a[x])
x = np.nonzero(mask)
print(a[x])
x = a[np.logical_and(a >= 5, a <= 10)]
print(x)
[ 6 9 10]
[ 6 9 10]
[ 6 9 10]
A = np.random.randint(0,2,5)
B = np.random.randint(0,2,5)
equal = np.allclose(A,B)
print(equal)
False
Z = np.array([0,1])
print(Z)
np.logical_not(Z, out=Z)
[0 1]
array([1, 0])
Z = np.array([0.2,1.15])
print(Z)
np.negative(Z, out=Z)
[0.2 1.15]
array([-0.2 , -1.15])
Z=np.array([[0,1,2,3],[4,5,6,7]])
print(Z)
z=5.1
np.abs(Z - z).argmin()
print(np.abs(Z - z).argmin())
print(Z.flat[np.abs(Z - z).argmin()])
[[0 1 2 3]
[4 5 6 7]]
5
5