Làm cách nào để bạn tìm thấy mức tối đa của tập dữ liệu trong python?

< Tính toán trên mảng NumPy. Chức năng phổ quát. nội dung. Tính toán trên mảng. Phát sóng >

Thông thường, khi phải đối mặt với một lượng lớn dữ liệu, bước đầu tiên là tính toán số liệu thống kê tóm tắt cho dữ liệu được đề cập. Có lẽ thống kê tóm tắt phổ biến nhất là giá trị trung bình và độ lệch chuẩn, cho phép bạn tóm tắt các giá trị "điển hình" trong tập dữ liệu, nhưng các tổng hợp khác cũng hữu ích [tổng, tích, trung bình, tối thiểu và tối đa, lượng tử, v.v. ]

NumPy có các hàm tổng hợp tích hợp sẵn nhanh chóng để làm việc trên các mảng;

Tính tổng các giá trị trong một mảng¶

Ví dụ nhanh, hãy xem xét tính tổng của tất cả các giá trị trong một mảng. Bản thân Python có thể làm điều này bằng hàm

np.sum[L]
3 tích hợp

Trong 1]

import numpy as np

Trong 2]

L = np.random.random[100]
sum[L]

Ra[2]

55.61209116604941

Cú pháp khá giống với cú pháp của hàm

np.sum[L]
3 của NumPy và kết quả giống nhau trong trường hợp đơn giản nhất

Trong 3]

np.sum[L]

Ra[3]

55.612091166049424

Tuy nhiên, vì nó thực thi thao tác trong mã được biên dịch, nên phiên bản thao tác của NumPy được tính toán nhanh hơn nhiều

Trong [4]

big_array = np.random.rand[1000000]
%timeit sum[big_array]
%timeit np.sum[big_array]

________số 8

Hãy cẩn thận, mặc dù. Hàm

np.sum[L]
3 và hàm
np.sum[L]
6 không giống nhau nên đôi khi có thể gây nhầm lẫn. Đặc biệt, các đối số tùy chọn của chúng có ý nghĩa khác nhau và
np.sum[L]
6 nhận thức được nhiều kích thước mảng, như chúng ta sẽ thấy trong phần sau

Tối thiểu và Tối đa¶

Tương tự, Python có sẵn các hàm

np.sum[L]
8 và
np.sum[L]
9, dùng để tìm giá trị nhỏ nhất và giá trị lớn nhất của bất kỳ mảng nào

Trong [5]

import numpy as np
4

Ra[5]

import numpy as np
5

Các chức năng tương ứng của NumPy có cú pháp tương tự và lại hoạt động nhanh hơn nhiều

Trong [6]

import numpy as np
6

Ra[6]

import numpy as np
5

Trong [7]

L = np.random.random[100]
sum[L]
1

L = np.random.random[100]
sum[L]
2

Đối với

np.sum[L]
8,
np.sum[L]
9,
np.sum[L]
3 và một số tập hợp NumPy khác, cú pháp ngắn hơn là sử dụng các phương thức của chính đối tượng mảng

Trong [8]

L = np.random.random[100]
sum[L]
3

L = np.random.random[100]
sum[L]
4

Bất cứ khi nào có thể, hãy đảm bảo rằng bạn đang sử dụng phiên bản NumPy của các tập hợp này khi thao tác trên mảng NumPy

Tập hợp đa chiều¶

Một loại hoạt động tổng hợp phổ biến là tổng hợp dọc theo một hàng hoặc cột. Giả sử bạn có một số dữ liệu được lưu trữ trong một mảng hai chiều

Trong [9]

L = np.random.random[100]
sum[L]
5

L = np.random.random[100]
sum[L]
6

Theo mặc định, mỗi hàm tổng hợp NumPy sẽ trả về tổng hợp trên toàn bộ mảng

Trong [10]

L = np.random.random[100]
sum[L]
7

Ra[10]

L = np.random.random[100]
sum[L]
8

Các hàm tổng hợp nhận một đối số bổ sung chỉ định trục dọc theo đó tổng hợp được tính toán. Ví dụ: chúng ta có thể tìm giá trị nhỏ nhất trong mỗi cột bằng cách chỉ định

55.612091166049424
3

Trong [11]

L = np.random.random[100]
sum[L]
9

Ra[11]

55.61209116604941
0

Hàm trả về 4 giá trị, tương ứng với 4 cột số

Tương tự, chúng ta có thể tìm giá trị lớn nhất trong mỗi hàng

Trong [12]

55.61209116604941
1

Ra[12]

55.61209116604941
2

Cách chỉ định trục ở đây có thể gây nhầm lẫn cho người dùng đến từ các ngôn ngữ khác. Từ khóa

55.612091166049424
4 chỉ định kích thước của mảng sẽ được thu gọn, thay vì kích thước sẽ được trả về. Vì vậy, chỉ định
55.612091166049424
3 có nghĩa là trục đầu tiên sẽ bị thu gọn. đối với mảng hai chiều, điều này có nghĩa là các giá trị trong mỗi cột sẽ được tổng hợp

Các hàm tổng hợp khác¶

NumPy cung cấp nhiều chức năng tổng hợp khác, nhưng chúng tôi sẽ không thảo luận chi tiết về chúng ở đây. Ngoài ra, hầu hết các tập hợp đều có một đối tác an toàn với

55.612091166049424
6 tính toán kết quả trong khi bỏ qua các giá trị bị thiếu, được đánh dấu bằng giá trị
55.612091166049424
6 dấu phẩy động đặc biệt của IEEE [để thảo luận đầy đủ hơn về dữ liệu bị thiếu, hãy xem Xử lý dữ liệu bị thiếu]. Một số chức năng an toàn cho
55.612091166049424
6 này đã không được thêm cho đến khi NumPy 1. 8, vì vậy chúng sẽ không khả dụng trong các phiên bản NumPy cũ hơn

Bảng sau đây cung cấp danh sách các hàm tổng hợp hữu ích có sẵn trong NumPy

Function NameNaN-safe VersionDescription
np.sum[L]
6
big_array = np.random.rand[1000000]
%timeit sum[big_array]
%timeit np.sum[big_array]
0Compute sum of elements
big_array = np.random.rand[1000000]
%timeit sum[big_array]
%timeit np.sum[big_array]
1
big_array = np.random.rand[1000000]
%timeit sum[big_array]
%timeit np.sum[big_array]
2Compute product of elements
big_array = np.random.rand[1000000]
%timeit sum[big_array]
%timeit np.sum[big_array]
3
big_array = np.random.rand[1000000]
%timeit sum[big_array]
%timeit np.sum[big_array]
4Compute mean of elements
big_array = np.random.rand[1000000]
%timeit sum[big_array]
%timeit np.sum[big_array]
5
big_array = np.random.rand[1000000]
%timeit sum[big_array]
%timeit np.sum[big_array]
6Compute standard deviation
big_array = np.random.rand[1000000]
%timeit sum[big_array]
%timeit np.sum[big_array]
7
big_array = np.random.rand[1000000]
%timeit sum[big_array]
%timeit np.sum[big_array]
8Compute variance
big_array = np.random.rand[1000000]
%timeit sum[big_array]
%timeit np.sum[big_array]
9
10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
0Find minimum value
10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
1
10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
2Find maximum value
10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
3
10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
4Find index of minimum value
10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
5
10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
6Find index of maximum value
10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
7
10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
8Compute median of elements
10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
9
import numpy as np
40Compute rank-based statistics of elements
import numpy as np
41N/AEvaluate whether any elements are true
import numpy as np
42N/AEvaluate whether all elements

Chúng ta sẽ thấy những tập hợp này thường xuyên trong suốt phần còn lại của cuốn sách

Thí dụ. Chiều cao trung bình của các Tổng thống Hoa Kỳ là bao nhiêu?¶

Các tổng hợp có sẵn trong NumPy có thể cực kỳ hữu ích để tóm tắt một tập hợp các giá trị. Lấy một ví dụ đơn giản, hãy xem xét chiều cao của tất cả các tổng thống Hoa Kỳ. Dữ liệu này có sẵn trong tệp President_heights. csv, là danh sách nhãn và giá trị được phân tách bằng dấu phẩy đơn giản

Trong [13]

55.61209116604941
3

55.61209116604941
4

Chúng ta sẽ sử dụng gói Pandas mà chúng ta sẽ khám phá đầy đủ hơn trong Chương 3, để đọc tệp và trích xuất thông tin này [lưu ý rằng chiều cao được đo bằng centimet]

Trong [14]

55.61209116604941
5

55.61209116604941
6

Bây giờ chúng ta có mảng dữ liệu này, chúng ta có thể tính toán nhiều số liệu thống kê tóm tắt

Trong [15]

55.61209116604941
7

55.61209116604941
8

Lưu ý rằng trong mỗi trường hợp, hoạt động tổng hợp đã giảm toàn bộ mảng thành một giá trị tổng hợp duy nhất, cung cấp cho chúng tôi thông tin về phân phối giá trị. Chúng ta cũng có thể muốn tính lượng tử

Trong [16]

55.61209116604941
9

np.sum[L]
0

Chúng tôi thấy rằng chiều cao trung bình của các tổng thống Hoa Kỳ là 182 cm, hoặc chỉ kém 6 feet

Tất nhiên, đôi khi sẽ hữu ích hơn khi xem biểu diễn trực quan của dữ liệu này mà chúng ta có thể thực hiện bằng cách sử dụng các công cụ trong Matplotlib [chúng ta sẽ thảo luận về Matplotlib đầy đủ hơn trong Chương 4]. Ví dụ: mã này tạo biểu đồ sau

Chủ Đề