Hướng dẫn how do you find the max and min of a numpy array in python? - làm cách nào để tìm giá trị tối đa và tối thiểu của một mảng numpy trong python?

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ẽ số liệu thống kê tóm tắt phổ biến nhất là độ lệch 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 bộ dữ liệu, nhưng các tập hợp khác cũng hữu ích (tổng, sản phẩm, trung bình, tối thiểu và tối đa, lượng tử, v.v. ).

Numpy có các chức năng tổng hợp tích hợp nhanh để làm việc trên các mảng; Chúng tôi sẽ thảo luận và chứng minh một số trong số họ ở đây.

Tóm tắt các giá trị trong một mảng

Ví dụ nhanh, hãy xem xét tính toán 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 cách sử dụng hàm

10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
5 tích hợp:

In [2]:

L = np.random.random(100)
sum(L)

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

10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
5 của Numpy và kết quả giống nhau trong trường hợp đơn giản nhất:

Tuy nhiên, vì nó thực hiện thao tác trong mã được biên dịch, phiên bản hoạt động của Numpy được tính toán nhanh hơn nhiều:

In [4]:

big_array = np.random.rand(1000000)
%timeit sum(big_array)
%timeit np.sum(big_array)

10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop

Mặc dù vậy, hãy cẩn thận: hàm

10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
5 và hàm
10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
8 không giống nhau, đôi khi có thể dẫn đến sự nhầm lẫn! Cụ thể, các đối số tùy chọn của chúng có ý nghĩa khác nhau và
10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
8 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 đã tích hợp các hàm

min(big_array), max(big_array)
0 và
min(big_array), max(big_array)
1, được sử dụng để tìm giá trị tối thiểu và giá trị tối đa của bất kỳ mảng nào đã cho:

In [5]:

min(big_array), max(big_array)

Out[5]:

(1.1717128136634614e-06, 0.9999976784968716)

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

In [6]:

np.min(big_array), np.max(big_array)

Out[6]:

(1.1717128136634614e-06, 0.9999976784968716)

In [7]:

%timeit min(big_array)
%timeit np.min(big_array)

10 loops, best of 3: 82.3 ms per loop
1000 loops, best of 3: 497 µs per loop

Đối với

min(big_array), max(big_array)
0,
min(big_array), max(big_array)
1,
10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
5 và một số tập hợp numpy khác, một 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:

In [8]:

print(big_array.min(), big_array.max(), big_array.sum())

big_array = np.random.rand(1000000)
%timeit sum(big_array)
%timeit np.sum(big_array)
0

Bất cứ khi nào có thể, hãy chắc chắn rằng bạn đang sử dụng phiên bản Numpy của các tập hợp này khi hoạt động trên các 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à một tập 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:

In [9]:

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)
2

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:

Các hàm tổng hợp có 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 thấy giá trị tối thiểu trong mỗi cột bằng cách chỉ định

min(big_array), max(big_array)
5:

Out[11]:

big_array = np.random.rand(1000000)
%timeit sum(big_array)
%timeit np.sum(big_array)
3

Hàm trả về bốn giá trị, tương ứng với bốn cột của số.

Tương tự, chúng ta có thể tìm thấy giá trị tối đa trong mỗi hàng:

Out[12]:

big_array = np.random.rand(1000000)
%timeit sum(big_array)
%timeit np.sum(big_array)
4

Cách mà trục được chỉ định ở đâ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

min(big_array), max(big_array)
6 chỉ định kích thước của mảng sẽ bị thu gọn, thay vì kích thước sẽ được trả về. Vì vậy, việc chỉ định
min(big_array), max(big_array)
5 có nghĩa là trục đầu tiên sẽ bị thu gọn: đối với các 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 chức năng 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ó đối tác ____ 38 an toàn 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ị IEEE nổi đặc biệt của IEEE (để thảo luận đầy đủ về dữ liệu bị thiếu, xem xử lý dữ liệu bị thiếu). Một số chức năng an toàn ____ 38 này không được thêm vào cho đến khi Numpy 1.8, vì vậy chúng sẽ không có sẵn trong các phiên bản Numpy cũ hơn.

Bảng sau đây cung cấp một danh sách các chức năng tổng hợp hữu ích có sẵn trong Numpy:

Tên chức năngPhiên bản Nan-SafeSự mô tả
10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
8
(1.1717128136634614e-06, 0.9999976784968716)
2
Tính tổng các phần tử
(1.1717128136634614e-06, 0.9999976784968716)
3
(1.1717128136634614e-06, 0.9999976784968716)
4
Tính toán sản phẩm của các yếu tố
(1.1717128136634614e-06, 0.9999976784968716)
5
(1.1717128136634614e-06, 0.9999976784968716)
6
Tính trung bình của các yếu tố
(1.1717128136634614e-06, 0.9999976784968716)
7
(1.1717128136634614e-06, 0.9999976784968716)
8
Tính độ lệch chuẩn
(1.1717128136634614e-06, 0.9999976784968716)
9
np.min(big_array), np.max(big_array)
0
Tính phương sai
np.min(big_array), np.max(big_array)
1
np.min(big_array), np.max(big_array)
2
Tìm giá trị tối thiểu
np.min(big_array), np.max(big_array)
3
np.min(big_array), np.max(big_array)
4
Tìm giá trị tối đa
np.min(big_array), np.max(big_array)
5
np.min(big_array), np.max(big_array)
6
Tìm chỉ số giá trị tối thiểu
np.min(big_array), np.max(big_array)
7
np.min(big_array), np.max(big_array)
8
Tìm chỉ mục giá trị tối đa
np.min(big_array), np.max(big_array)
9
(1.1717128136634614e-06, 0.9999976784968716)
0
Tính trung bình của các yếu tố
(1.1717128136634614e-06, 0.9999976784968716)
1
(1.1717128136634614e-06, 0.9999976784968716)
2
Tính toán thống kê dựa trên xếp hạng của các yếu tố
(1.1717128136634614e-06, 0.9999976784968716)
3
N/aĐánh giá xem bất kỳ yếu tố nào có đúng không
(1.1717128136634614e-06, 0.9999976784968716)
4
N/aĐánh giá xem bất kỳ yếu tố nào có đúng không

(1.1717128136634614e-06, 0.9999976784968716)
4

Đánh giá xem tất cả các yếu tố có đúng không

Chúng ta sẽ thấy các 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.

In [13]:

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)
6

Chúng tôi sẽ sử dụng gói Pandas, chúng tôi 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 độ cao được đo bằng centimet).

In [14]:

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)
8

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

In [15]:

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
0

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óm tắt duy nhất, cung cấp cho chúng tôi thông tin về phân phối các giá trị. Chúng tôi cũng có thể muốn tính toán các lượng tử:

In [16]:

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
2

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ỉ ngại sáu feet.

Tất nhiên, đôi khi sẽ hữu ích hơn khi thấy biểu diễn trực quan của dữ liệu này, 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 ra biểu đồ sau:

In [17]:

10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
3

In [18]:

10 loops, best of 3: 104 ms per loop
1000 loops, best of 3: 442 µs per loop
4

Các tập hợp này là một số phần cơ bản của phân tích dữ liệu khám phá mà chúng ta sẽ khám phá sâu hơn trong các chương sau của cuốn sách.

Làm thế nào để bạn tìm thấy giá trị tối đa và tối thiểu của một mảng trong Python?

Python cung cấp chức năng sẵn có khác nhau. Min () được sử dụng để tìm ra giá trị tối thiểu trong một mảng, Max () được sử dụng để tìm ra giá trị tối đa trong một mảng. Index () được sử dụng để tìm chỉ số của phần tử.min() is used for find out minimum value in an array, max() is used for find out maximum value in an array. index() is used for finding the index of the element.

Làm thế nào để bạn tìm thấy giá trị tối đa của một mảng numpy?

Hàm Python Numpy Maximum () hoặc Max () được sử dụng để có được giá trị tối đa (giá trị lớn nhất) của một mảng đã cho hoặc so sánh hai phần tử mảng khôn ngoan và trả về các giá trị tối đa.Trong khi so sánh, một trong những yếu tố của hai mảng là NAN, thì yếu tố đó được trả lại dưới dạng NAN. is used to get the maximum value (greatest value) of a given array, or compare the two arrays element-wise and returns the maximum values. While comparing, one of the elements of two arrays is a NaN, then that element is returned as NaN.

Làm thế nào để bạn tìm thấy min của một mảng numpy?

Để tìm phần tử tối thiểu, sử dụng hàm numpy.min (tên mảng của tên gọi).numpy. min(“array name”) function.

Làm thế nào để bạn tìm thấy các giá trị tối đa và tối đa trong một mảng?

Hàm getResult (int arr [], int n) là tìm phần tử tối đa và tối thiểu có trong mảng ở mức tối thiểu không.so sánh.Nếu chỉ có một phần tử thì chúng ta sẽ khởi tạo các biến tối đa và tối thiểu với ARR [0].Đối với nhiều phần tử, chúng tôi sẽ khởi tạo tối đa với ARR [1] và Min với ARR [0].getresult( int arr[],int n) is to find the maximum and minimum element present in the array in minimum no. of comparisons. If there is only one element then we will initialize the variables max and min with arr[0] . For more than one element, we will initialize max with arr[1] and min with arr[0].