Trong quá trình xử lý dữ liệu số, chắc hẳn chúng ta sẽ cần phải thống kê để xem xét một vài tính chất của dữ liệu. Khi làm việc trong mảng Numpy sẽ cung cấp cho chúng ta một số hàm thống kê để phục vụ việc xử lý dữ liệu nhanh chóng và hiệu quả.

1. Hàm np.min() và np.max()

Các hàm np.min() và hàm np.max() trả về giá trị nhỏ nhất và giá trị lớn nhất từ các phần tử trong mảng đã cho dọc theo trục được chỉ định (có thể là trục ngang hoặc trục dọc)
import numpy as np 

# Khai bao mang
a = np.array([
    [3,7,5],
    [8,4,3],
    [2,4,9]
]) 

print("Mang a ban dau")
print(a)
 
print("Gia tri NHO nhat theo truc ngang")
print(np.amin(a,1)) 

print("Gia tri NHO nhat theo truc doc")
print(np.amin(a,0))

print("Gia tri LON nhat theo truc ngang")
print(np.amax(a,1)) 

print("Gia tri LON nhat theo truc doc")
print(np.amax(a,0))

Kết quả:

Mang a ban dau
[[3 7 5]
 [8 4 3]
 [2 4 9]]
Gia tri NHO nhat theo truc ngang
[3 3 2]
Gia tri NHO nhat theo truc doc
[2 4 3]
Gia tri LON nhat theo truc ngang
[7 8 9]
Gia tri LON nhat theo truc doc
[8 7 9]

2. Hàm np.ptp()

Hàm np.ptp() đóng một vai trò quan trọng trong thống kê bằng cách tìm ra Phạm vi của các số đã cho theo các trục được chỉ định. Phạm vi = giá trị lớn nhất – giá trị nhỏ nhất. 

import numpy as np 

# Khai bao mang
a = np.array([
    [3,7,5],
    [8,4,3],
    [2,4,9]
]) 

print("Mang a ban dau")
print(a)
 

print("Pham vi cac so da cho theo truc ngang")
print(np.ptp(a,1)) 

print("Pham vi cac so da cho theo truc doc")
print(np.ptp(a,0)) 

Kết quả:

Mang a ban dau
[[3 7 5]
 [8 4 3]
 [2 4 9]]
Pham vi cac so da cho theo truc ngang
[4 5 7]
Pham vi cac so da cho theo truc doc
[6 3 6]

3. Hàm np.percentile()

Hàm np.percentile() được sử dụng để tính toán Phần trăm thứ n của dữ liệu đã cho (phần tử mảng) dọc theo trục được chỉ định.
import numpy as np
 
# Mang 2 chieu ban dau
a = np.array([
    [14, 17, 12, 33, 44], 
    [15, 6, 27, 8, 19],
    [23, 2, 54, 1, 4]
])
print("Mang ban dau")
print(a)
    
# Tinh 50 phan tram trong mang a
print("50 phan tram cua mang a ")
print(np.percentile(a, 50))

# Tinh 50 phan tram cua mang theo chieu ngang
print("50 phan tram cua mang a theo truc ngang")
print(np.percentile(a, 50, axis = 1))

# Tinh 50 phan tram cua mang theo chieu doc
print("50 phan tram cua mang a theo truc doc")
print(np.percentile(a, 50, axis = 0))

Kết quả:

Mang ban dau
[[14 17 12 33 44]
 [15  6 27  8 19]
 [23  2 54  1  4]]
50 phan tram cua mang a
15.0
50 phan tram cua mang a theo truc ngang
[17. 15.  4.]
50 phan tram cua mang a theo truc doc
[15.  6. 27.  8. 19.]

4. Hàm np.median()

Hàm np.median() được sử dụng để tính trung vị các phần tử có trong mảng Numpy theo trục được chỉ định trước. Để tìm được trung vị đầu tiên ta cần sắp xếp mảng từ bé đến lớn, sau đó chúng ta lấy ra giá trị trung vị bằng cách lấy phần tử ở giữa dãy số đó:

import numpy as np
 
# Mang 2 chieu ban dau
a = np.array([
    [14, 17, 12, 33, 44], 
    [15, 6, 27, 8, 19],
    [23, 2, 54, 1, 4]
])
print("Mang ban dau")
print(a)
    
# Tinh trung vi gia tri cua mang a
print("Trung vi gia tri cua mang a ")
print(np.median(a))

# Tinh trung vi gia tri cua mang theo truc ngang
print("Trung vi gia tri mang theo truc ngang")
print(np.median(a, axis = 1))

# Tinh trung vi gia tri cua mang theo truc doc
print("Trung vi gia tri mang theo truc doc")
print(np.median(a, axis = 0))

Kết quả:

Mang ban dau
[[14 17 12 33 44]
 [15  6 27  8 19]
 [23  2 54  1  4]]
Trung vi gia tri cua mang a
15.0
Trung vi gia tri mang theo truc ngang
[17. 15.  4.]
Trung vi gia tri mang theo truc doc
[15.  6. 27.  8. 19.]

5. Hàm np.mean()

Hàm np.mean() được sử dụng để tính giá trị trung bình cộng (trung bình) của dữ liệu đã cho trong mảng dọc theo trục xác định.

import numpy as np
 
# Mang 2 chieu ban dau
a = np.array([
    [14, 17, 12, 33, 44], 
    [15, 6, 27, 8, 19],
    [23, 2, 54, 1, 4]
])
print("Mang ban dau")
print(a)
    
# Tinh trung binh gia tri cua mang a
print("Trung binh gia tri cua mang a ")
print(np.mean(a))

# Tinh trung binh gia tri cua mang theo truc ngang
print("Trung binh gia tri mang theo truc ngang")
print(np.mean(a, axis = 1))

# Tinh trung binh gia tri cua mang theo truc doc
print("Trung binh gia tri mang theo truc doc")
print(np.mean(a, axis = 0))

Kết quả:

Mang ban dau
[[14 17 12 33 44]
 [15  6 27  8 19]
 [23  2 54  1  4]]
Trung binh gia tri cua mang a
18.6
Trung binh gia tri mang theo truc ngang
[24.  15.  16.8]
Trung binh gia tri mang theo truc doc
[17.33333333  8.33333333 31.         14.         22.33333333]

6. Hàm np.std()

Hàm np.std() được sử dụng để tính độ lệch chuẩn cho các giá trị trong mảng theo trục được chỉ định trước. Độ lệch chuẩn, hay độ lệch tiêu chuẩn là một đại lượng thống kê mô tả dùng để đo mức độ phân tán của một tập dữ liệu dựa theo các giá trị trung bình. Độ lệch chuẩn được tính theo công thức sau:
import numpy as np
 
# Mang 2 chieu ban dau
a = np.array([
    [14, 17, 12, 33, 44], 
    [15, 6, 27, 8, 19],
    [23, 2, 54, 1, 4]
])
print("Mang ban dau")
print(a)
    
# Tinh do lech chuan cua mang a
print("Do lech chuan cac gia tri cua mang a ")
print(np.std(a))

# Tinh do lech chuan cua mang theo truc ngang
print("Do lech chuan cac gia tri mang theo truc ngang")
print(np.std(a, axis = 1))

# Tinh do lech chuan cua mang theo truc doc
print("Do lech chuan cac gia tri mang theo truc doc")
print(np.std(a, axis = 0))

Kết quả:

Mang ban dau
[[14 17 12 33 44]
 [15  6 27  8 19]
 [23  2 54  1  4]]
Do lech chuan cac gia tri cua mang a
14.934523762075575
Do lech chuan cac gia tri mang theo truc ngang
[12.44186481  7.61577311 20.27214838]
Do lech chuan cac gia tri mang theo truc doc
[ 4.02768199  6.3420992  17.3781472  13.73559852 16.49915823]

7. Hàm np.var()

Hàm np.var() được sử dụng để tính phương sai cho các giá trị trong mảng theo trục được chỉ định trước. Trong lý thuyết xác suất và thống kê, phương sai của được sử dụng để đo sự phân tán thống kê của – phương sai hàm ý đến việc các giá trị phân tán so với giá trị trung bình là bao nhiêu.
import numpy as np
 
# Mang 2 chieu ban dau
a = np.array([
    [14, 17, 12, 33, 44], 
    [15, 6, 27, 8, 19],
    [23, 2, 54, 1, 4]
])
print("Mang ban dau")
print(a)
    
# Tinh phuong sai cua mang a
print("Phuong sai cua mang a ")
print(np.var(a))

# Tinh phuong sai cua mang theo truc ngang
print("Phuong sai cua mang theo truc ngang")
print(np.var(a, axis = 1))

# Tinh phuong sai cua mang theo truc doc
print("Phuong sai cua mang theo truc doc")
print(np.var(a, axis = 0))

Kết quả:

Mang ban dau
[[14 17 12 33 44]
 [15  6 27  8 19]
 [23  2 54  1  4]]
Phuong sai cua mang a
223.04
Phuong sai cua mang theo truc ngang
[154.8   58.   410.96]
Phuong sai cua mang theo truc doc
[ 16.22222222  40.22222222 302.         188.66666667 272.22222222]