Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Cách sử dụng hàm sort() trong NumPy
Trong bài viết này, bạn sẽ học cách sử dụng hàm numpy sort() để sắp xếp các phần tử của một mảng. Hàm numpy sort() là một công cụ mạnh mẽ và linh hoạt, cho phép bạn sắp xếp các phần tử của mảng theo nhiều cách khác nhau, bao gồm sắp xếp theo thứ tự tăng dần hoặc giảm dần, và sắp xếp theo các trục cụ thể trong các mảng nhiều chiều. Việc nắm vững cách sử dụng hàm numpy sort() sẽ giúp bạn dễ dàng thao tác và phân tích dữ liệu một cách hiệu quả hơn.
Giới thiệu về hàm sort() trong Numpy
Hàm numpy sort() trả về một bản sao đã được sắp xếp của một mảng. Dưới đây là cú pháp của hàm sort():
numpy.sort(a, axis=-1, kind=None, order=None)
Trong cú pháp này:
a
là một mảng numpy cần được sắp xếp. Nó có thể là bất kỳ đối tượng nào có thể chuyển đổi thành mảng.axis
xác định trục mà các phần tử sẽ được sắp xếp. Nếu trục làNone
, hàm sẽ làm phẳng mảng trước khi sắp xếp. Mặc định, trục là-1
, tức là sắp xếp các phần tử theo trục cuối cùng.kind
xác định thuật toán sắp xếp, có thể là ‘quicksort’, ‘mergesort’, ‘heapsort’, và ‘stable’.order
xác định các trường sẽ so sánh đầu tiên, thứ hai, v.v. khi sắp xếp một mảng có các trường được định nghĩa.order
có thể là một chuỗi đại diện cho trường cần sắp xếp hoặc danh sách các chuỗi đại diện cho danh sách các trường cần sắp xếp.
Nếu bạn muốn sắp xếp các phần tử của một mảng tại chỗ, bạn có thể sử dụng phương thức sort() của đối tượng ndarray với cú pháp sau:
Bài viết này được đăng tại [free tuts .net]
ndarray.sort(axis=-1, kind=None, order=None)
Các ví dụ về hàm sort() trong Numpy
Hãy cùng xem một số ví dụ về việc sử dụng hàm numpy sort().
Sử dụng hàm sort() để sắp xếp một mảng 1-D
Ví dụ sau sử dụng hàm sort() để sắp xếp các số trong một mảng 1-D:
import numpy as np a = np.array([2, 3, 1]) b = np.sort(a) print(b)
Kết quả:
[1 2 3]
Trong ví dụ này, hàm sort() sắp xếp các phần tử của mảng từ thấp đến cao.
Để sắp xếp các phần tử của một mảng từ cao đến thấp, bạn có thể sử dụng hàm sort() để sắp xếp mảng từ thấp đến cao và sử dụng slicing để đảo ngược mảng. Ví dụ:
import numpy as np a = np.array([2, 3, 1]) b = np.sort(a)[::-1] print(b)
Kết quả:
[3 2 1]
Trong ví dụ này:
- Đầu tiên, hàm sort() sắp xếp các phần tử trong mảng
a
theo thứ tự tăng dần (từ thấp đến cao). - Sau đó, slicing
[::-1]
đảo ngược mảng đã sắp xếp để các phần tử của mảng kết quả theo thứ tự giảm dần.
Sử dụng hàm numpy sort() để sắp xếp một mảng 2-D
Ví dụ sau sử dụng hàm sort() để sắp xếp một mảng 2-D:
import numpy as np a = np.array([ [2, 3, 1], [5, 6, 4] ]) b = np.sort(a) print(b)
Kết quả:
[[1 2 3] [4 5 6]]
Ví dụ sau sử dụng hàm sort() để sắp xếp các phần tử theo trục 0:
import numpy as np a = np.array([ [5, 3, 4], [2, 6, 1] ]) b = np.sort(a, axis=0) print(b)
Kết quả:
[[2 3 1] [5 6 4]]
Tương tự, bạn có thể sắp xếp các phần tử của mảng theo trục 1:
import numpy as np a = np.array([ [5, 3, 4], [2, 6, 1] ]) b = np.sort(a, axis=1) print(b)
Kết quả:
[[3 4 5] [1 2 6]]
Sử dụng hàm numpy sort() để sắp xếp một mảng có cấu trúc
Ví dụ sau sắp xếp các nhân viên theo năm làm việc và sau đó là lương:
import numpy as np dtype = [('name', 'S10'), ('year_of_services', float), ('salary', float)] employees = [ ('Alice', 1.5, 12500), ('Bob', 1, 15500), ('Jane', 1, 11000) ] payroll = np.array(employees, dtype=dtype) result = np.sort( payroll, order=['year_of_services', 'salary'] ) print(result)
Kết quả:
[(b'Jane', 1. , 11000.) (b'Bob', 1. , 15500.) (b'Alice', 1.5, 12500.)]