Numpy學習第3天 統計相關

2021-10-10 22:32:07 字數 3521 閱讀 9778

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.amin(x)

print

(y)# 11

y = np.amin(x, axis=0)

print

(y)# [11 12 13 14 15]

y = np.amin(x, axis=1)

print

(y)# [11 16 21 26 31]

解釋:axis的上限隨著陣列的維度增加而增加,n維陣列ndarray,axis的範圍為[0, n-1],例如,對於一維陣列[1, 2],axis的範圍為0,二維陣列[[1, 2], [3, 4]]的axis的範圍為0~1,以此類推。其實axis每加一級,就相當於把陣列降一維度,遞迴的對其中的每個元素進行操作:

# 偽**

operation(ndarray, axis=n):if

(n ==0)

: res = caculate something cover all items in ndarray

return res

res =

for item in ndarray:1)

)return res

對於上面的例子,陣列是二維的,當axis=0時,拆掉最外面的中括號,剩下

[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]

以每個塊為整體,對所有的塊做min運算,這是向量化的運算,對不同一維陣列中的同一位置上的元素做運算,在這個例子中,得到的結果是[11, 12, 13, 14, 15]。因為axis=0,所以最終的答案就為它。

當axis=1時,對每個一維陣列降維後分別進行min運算,得到的結果都分別是乙個標量,為11,16,21,26,31,因為axis=1,所以回溯後這些結果會被追加到列表中,所以最終結果為[11, 16, 21, 26, 31]。

極差:乙個陣列中的最大值-最小值

import numpy as np

np.random.seed(

20200623

)x = np.random.randint(0,

20, size=[4

,5])

print

(x)# [[10 2 1 1 16]

# [18 11 10 14 10]

# [11 1 9 18 8]

# [16 2 0 15 16]]

print

(np.ptp(x)

)# 18

print

(np.ptp(x, axis=0)

)# [ 8 10 10 17 8]

print

(np.ptp(x, axis=1)

)# [15 8 17 16]

import numpy as np

np.random.seed(

20200623

)x = np.random.randint(0,

20, size=[4

,5])

print

(x)# [[10 2 1 1 16]

# [18 11 10 14 10]

# [11 1 9 18 8]

# [16 2 0 15 16]]

print

(np.percentile(x,[25

,50])

)# [ 2. 10.]

print

(np.percentile(x,[25

,50], axis=0)

)# [[10.75 1.75 0.75 10.75 9.5 ]

# [13.5 2. 5. 14.5 13. ]]

print

(np.percentile(x,[25

,50], axis=1)

)# [[ 1. 10. 8. 2.]

# [ 2. 11. 9. 15.]]

import numpy as np

np.random.seed(

20200623

)x = np.random.randint(0,

20, size=[4

,5])

print

(x)# [[10 2 1 1 16]

# [18 11 10 14 10]

# [11 1 9 18 8]

# [16 2 0 15 16]]

print

(np.percentile(x,50)

)print

(np.median(x)

)# 10.0

print

(np.percentile(x,

50, axis=0)

)print

(np.median(x, axis=0)

)# [13.5 2. 5. 14.5 13. ]

print

(np.percentile(x,

50, axis=1)

)print

(np.median(x, axis=1)

)# [ 2. 11. 9. 15.]

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.mean(x)

print

(y)# 23.0

y = np.mean(x, axis=0)

print

(y)# [21. 22. 23. 24. 25.]

y = np.mean(x, axis=1)

print

(y)# [13. 18. 23. 28. 33.]

mybatis學習第3天

一 resultmap與resulttype的用法 2 resultmap用於自定的手動定義屬性和結果集中的列名的對映 resulttype用於屬性和列名能自動一一對應的對映 3 二者都只反映一一對應的關係,並不返回值。一對多關係 需要多的一方記住少的一方 在少的一方定義乙個集合用於封裝多的一方,介...

Linux學習第3天

目錄 高階命令 grep文字搜尋工具 系統命令 檢視 殺死程序的方式 netcat 管道符 作用 前乙個命令輸出結果,作為後乙個命令的輸入 對於前乙個命令的錯誤沒有處理能力 ls help more df lh 檢視硬碟容量和剩餘空間 free h 檢視記憶體狀況 ps process顯示所有程序以...

java學習筆記 第3天

sys as sysdba sys使用者可以建立其他的使用者 create user user01 identified by u01 建立乙個使用者,口令為u01 alter user user01 identified by us01 更改使用者的口令為us01 password 只有擁有dba...