numpyの汎用関数
60215 ワード
4、汎用関数(ufunc)
4.1一元計算関数
4.2二元計算関数
4.3三元計算関数
4.4よく使う元素統計関数
4.5判断関数
4.1一元計算関数
import numpy as np
arr1 = np.random.uniform(-5,10,(3,4))
print(arr1)
print(' ')
print(np.ceil(arr1))
print(' ')
print(np.floor(arr1))
print(' ')
print(np.rint(arr1))
print(' ')
print(np.abs(arr1))
print(' ')
print(np.negative(arr1))
print(np.negative(-1))
print(' ')
print(np.square(arr1))
print(' ')
print(np.sqrt(np.abs(arr1)))
print(' ')
print(np.modf(arr1)[0])
print(np.modf(arr1)[1])
print(' ')
print(np.isnan(arr1))
:
[[ 7.40388163 -2.16076085 5.71059497 -1.54591523]
[ 6.95716697 1.92224912 1.35926832 -0.45224724]
[-3.12226763 -1.88739917 -4.73912872 -4.80680889]]
[[ 8. -2. 6. -1.]
[ 7. 2. 2. -0.]
[-3. -1. -4. -4.]]
[[ 7. -3. 5. -2.]
[ 6. 1. 1. -1.]
[-4. -2. -5. -5.]]
[[ 7. -2. 6. -2.]
[ 7. 2. 1. -0.]
[-3. -2. -5. -5.]]
[[7.40388163 2.16076085 5.71059497 1.54591523]
[6.95716697 1.92224912 1.35926832 0.45224724]
[3.12226763 1.88739917 4.73912872 4.80680889]]
[[-7.40388163 2.16076085 -5.71059497 1.54591523]
[-6.95716697 -1.92224912 -1.35926832 0.45224724]
[ 3.12226763 1.88739917 4.73912872 4.80680889]]
1
[[54.81746326 4.66888743 32.61089487 2.38985389]
[48.4021722 3.69504166 1.84761035 0.20452756]
[ 9.74855517 3.56227562 22.45934099 23.10541167]]
[[2.72100747 1.46995267 2.38968512 1.24334839]
[2.63764421 1.38645199 1.16587663 0.6724933 ]
[1.76699395 1.37382647 2.176954 2.19244359]]
[[ 0.40388163 -0.16076085 0.71059497 -0.54591523]
[ 0.95716697 0.92224912 0.35926832 -0.45224724]
[-0.12226763 -0.88739917 -0.73912872 -0.80680889]]
[[ 7. -2. 5. -1.]
[ 6. 1. 1. -0.]
[-3. -1. -4. -4.]]
[[False False False False]
[False False False False]
[False False False False]]
:
isnan ,
4.2二元計算関数
arr1 = np.arange(10).reshape((2,5))
arr2 = np.arange(10,20).reshape((2,5))
print('arr1',arr1)
print('arr2',arr2)
print(' ')
print(np.add(arr1,arr2))
print(' ')
print(np.subtract(arr1,arr2))
print(' ')
print(np.divide(arr1,arr2))
print(np.floor_divide(arr1,arr2)) #
print(np.mod(arr1,arr2)) #
print(' ')
print(np.multiply(arr1,arr2))
:
arr1 [[0 1 2 3 4]
[5 6 7 8 9]]
arr2 [[10 11 12 13 14]
[15 16 17 18 19]]
[[10 12 14 16 18]
[20 22 24 26 28]]
[[-10 -10 -10 -10 -10]
[-10 -10 -10 -10 -10]]
[[0. 0.09090909 0.16666667 0.23076923 0.28571429]
[0.33333333 0.375 0.41176471 0.44444444 0.47368421]]
[[0 0 0 0 0]
[0 0 0 0 0]]
[[0 1 2 3 4]
[5 6 7 8 9]]
[[ 0 11 24 39 56]
[ 75 96 119 144 171]]
4.3三元計算関数
arr1 = np.arange(10).reshape((2, 5))
arr2 = np.arange(10, 20).reshape((2, 5))
print('arr1', arr1)
print('arr2', arr2)
# print(np.where(arr1%2==0))
print(np.where(arr1 % 2 == 0, arr1, 100))
print('#############')
print(np.where(arr1 > arr2, arr1, arr2))
print('$$$$$$$$$$$$')
list1 = arr1.tolist()
list2 = arr2.tolist()
print([x if x>y else y for x,y in zip(list1,list2)])
arr3 = np.random.uniform(10,50,(3,4))
print(arr3)
# 20 30 , 100
print(np.where((np.rint(arr3)>20) & (np.rint(arr3)<30),100,arr3))
# , 0,
print(np.where(np.isnan(arr3),0,arr3))
:
arr1 [[0 1 2 3 4]
[5 6 7 8 9]]
arr2 [[10 11 12 13 14]
[15 16 17 18 19]]
[[ 0 100 2 100 4]
[100 6 100 8 100]]
#############
[[10 11 12 13 14]
[15 16 17 18 19]]
$$$$$$$$$$$$
[[10, 11, 12, 13, 14], [15, 16, 17, 18, 19]]
[[42.1366265 25.04062239 13.17674991 34.65152513]
[16.06540995 30.29572491 41.49376874 42.42785617]
[30.78561853 41.58242411 13.1441147 33.74916931]]
[[ 42.1366265 100. 13.17674991 34.65152513]
[ 16.06540995 30.29572491 41.49376874 42.42785617]
[ 30.78561853 41.58242411 13.1441147 33.74916931]]
[[42.1366265 25.04062239 13.17674991 34.65152513]
[16.06540995 30.29572491 41.49376874 42.42785617]
[30.78561853 41.58242411 13.1441147 33.74916931]]
4.4よく使う元素統計関数
axis ,0 ,1
arr1 = np.arange(1,50).reshape((7,7))
print(arr1)
print('#######')
print(np.mean(arr1,axis=1)) #
print(np.mean(arr1,axis=0)) #
print(np.mean(arr1)) #
print('########')
print(np.sum(arr1)) #
print(np.max(arr1)) #
print(np.min(arr1)) #
print(np.std(arr1)) #
print(np.var(arr1)) #
print(np.argmax(arr1)) #
print(np.argmax(arr1,axis=0)) #
print(np.argmin(arr1)) #
print(np.cumsum(arr1)) # ,
print(np.cumprod(arr1)) # ,
:
[[ 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 26 27 28]
[29 30 31 32 33 34 35]
[36 37 38 39 40 41 42]
[43 44 45 46 47 48 49]]
#######
[ 4. 11. 18. 25. 32. 39. 46.]
[22. 23. 24. 25. 26. 27. 28.]
25.0
########
1225
49
1
14.142135623730951
200.0
48
[6 6 6 6 6 6 6]
0
[ 1 3 6 10 15 21 28 36 45 55 66 78 91 105
120 136 153 171 190 210 231 253 276 300 325 351 378 406
435 465 496 528 561 595 630 666 703 741 780 820 861 903
946 990 1035 1081 1128 1176 1225]
[ 1 2 6 24 120 720
5040 40320 362880 3628800 39916800 479001600
1932053504 1278945280 2004310016 2004189184 -288522240 -898433024
109641728 -2102132736 -1195114496 -522715136 862453760 -775946240
2076180480 -1853882368 1484783616 -1375731712 -1241513984 1409286144
738197504 -2147483648 -2147483648 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0]
4.5判断関数
arr1 = np.random.randint(0,50,(4,4))
print(arr1)
# 0, 20, True, Flase
print(np.all((arr1>0) & (arr1<20)))
# 0, 100, True, Flase
print(np.all((arr1>0) & (arr1<100)))
# 10
print(np.all(arr1>10,axis=0))
# 10 , True, Flase
print(np.any(arr1<10,axis=0))
:
[[49 45 24 11]
[23 8 30 5]
[48 21 43 14]
[ 8 33 38 2]]
False
True
[False False True False]
[ True True False True]
:
1、
2、all ,any
3、axis