import numpy as np
# 生成10名同學,5門功課的資料
score = np.random.randint(40,
100,[10
,5])
score
array([[98, 47, 44, 77, 43],
[46, 78, 52, 54, 87],
[64, 78, 67, 75, 59],
[59, 72, 78, 59, 50],
[92, 55, 56, 81, 84],
[54, 94, 41, 72, 48],
[96, 40, 67, 57, 71],
[69, 42, 88, 52, 95],
[74, 85, 98, 64, 71],
[68, 62, 47, 96, 75]])
# 取出最後4名同學的成績,用於邏輯判斷
test_score=score[6:
,:]test_score
array([[69, 60, 85, 58, 95],
[44, 45, 52, 52, 81],
[56, 43, 81, 99, 96],
[97, 51, 64, 99, 95]])
# 邏輯判斷, 如果成績大於60就標記為true 否則為false
test_score>
60
array([[false, false, true, true, true],
[ true, false, true, true, false],
[ true, true, true, true, true],
[false, false, true, true, false]])
# bool賦值, 將滿足條件的設定為指定的值-布林索引
test_score[test_score >60]
=1test_score
array([[ 1, 60, 1, 58, 1],
[44, 45, 52, 52, 1],
[56, 43, 1, 1, 1],
[ 1, 51, 1, 1, 1]])
# np.all() 全,都
# np.any() 任意乙個
# 判斷前兩名同學的成績[0:2, :]是否全及格
np.all
(score[0:
2,:]
>
60)
false
# 判斷前兩名同學的成績[0:2, :]是否有大於90分的
np.any
(score[0:
2,:]
>
90)
true
# 通過使用np.where能夠進行更加複雜的運算
# 判斷前四名學生,前四門課程中,成績中大於60的置為1,否則為0
tem = score[0:
4,0:
4]np.where(tem >60,
1,0)
array([[1, 0, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 0],
[1, 1, 1, 0]])
# 復合邏輯需要結合np.logical_and和np.logical_or使用
# 判斷前四名學生,前四門課程中,成績中大於60且小於90的換為1,否則為0
np.where(np.logical_and(tem >
60, tem <90)
,1,0
)
array([[0, 0, 0, 1],
[0, 1, 0, 0],
[1, 1, 1, 1],
[0, 1, 1, 0]])
# 判斷前四名學生,前四門課程中,成績中大於90或小於60的換為1,否則為0
np.where(np.logical_or(tem <
60, tem >90)
,1,0
)
array([[1, 1, 1, 0],
[1, 0, 1, 1],
[0, 0, 0, 0],
[1, 0, 0, 1]])
# np.max(資料,值)
# np.min()
# np.media()中位數
# np.mean()平均值
# np.std()標準差
# np.var()方差
# np.argmax() 最大值對應的下標
# np.argmin() 最小值對應的下標
# 進行統計的時候,axis 軸的取值並不一定
# numpy中不同的api軸的值都不一樣,在這裡,axis 0代表列, axis 1代表行去進行統計
# 接下來對於前四名學生,進行一些統計運算
temp = score[:4
,:]print
("前四名學生,各科成績的最高分:{}"
.format
(np.
max(temp, axis=0)
))print
("前四名學生,各科成績的最低分:{}"
.format
(np.
min(temp, axis=0)
))print
("前四名學生,各科成績波動情況:{}"
.format
(np.std(temp, axis=0)
))print
("前四名學生,各科成績的平均分:{}"
.format
(np.mean(temp, axis=0)
))temp
前四名學生,各科成績的最高分:[98 78 78 77 87]
前四名學生,各科成績的最低分:[46 47 44 54 43]
前四名學生,各科成績波動情況:[19.20123694 12.79404158 13.16007219 9.93415824 16.7238602 ]
前四名學生,各科成績的平均分:[66.75 68.75 60.25 66.25 59.75]
array([[98, 47, 44, 77, 43],
[46, 78, 52, 54, 87],
[64, 78, 67, 75, 59],
[59, 72, 78, 59, 50]])
print
("前四名學生,各科成績最高分對應的下標:{}"
.format
(np.argmax(temp, axis=0)
))
前四名學生,各科成績最高分對應的下標:[0 1 3 0 1]
N維陣列 1 ndarray介紹
import numpy as np import random import timescore np.array 80,89,86,67,79 78,97,89,67,81 90,94,78,67,74 91,91,90,67,69 76,87,75,67,86 70,79,84,67,84 9...
N維陣列 4 陣列運算
import numpy as nparr np.array 1,2,3,2,1,4 5,6,1,2,3,1 arr 1arr 2array 0.5,1.1.5,1.0.5,2.2.5,3.0.5,1.1.5,0.5 可以對比python列表的運算,看出區別 a 1,2,3,4,5 a 3 1,2,...
運算及一維陣列
常見的運算子 整除 a 1 2 a 0 取餘 a 1 2 a 1 2 賦值 a 1 a a 1 a 2 a 2 a 2 a 在變數後面表示先賦值,後運算 a 在變數後面表示先運算,後賦值 a b?a b 判斷a b,如果為真,輸出啊a,如果為假,輸出b define add a,b a b 巨集定義...