Trong bài viết này, chúng tôi sẽ thảo luận về cách sắp xếp một mảng 2D numpy theo đơn hoặc nhiều hàng hoặc cột.
Trước hết, mô -đun nhập khẩu Numpy, tức là.
import numpy as np
Bây giờ giả sử chúng ta có một mảng 2D numpy, tức là.
# Create a 2D Numpy array list of list arr2D = np.array[[[11, 12, 13, 22], [21, 7, 23, 14], [31, 10, 33, 7]]] print['2D Numpy Array'] print[arr2D]
Đầu ra:
2D Numpy Array [[11 12 13 22] [21 7 23 14] [31 10 33 7]]
Bây giờ giả sử chúng tôi muốn sắp xếp mảng 2D này theo cột thứ 2 như thế này,
[[21 7 23 14] [31 10 33 7] [11 12 13 22]]
Đối với điều này, chúng ta cần thay đổi định vị của tất cả các hàng trong mảng 2D Numpy dựa trên các giá trị được sắp xếp của cột thứ 2, tức là cột tại INDEX 1. Hãy để xem cách làm điều đó,
Sắp xếp mảng 2D Numpy theo cột tại INDEX 1
columnIndex = 1 # Sort 2D numpy array by 2nd Column sortedArr = arr2D[arr2D[:,columnIndex].argsort[]] print['Sorted 2D Numpy Array'] print[sortedArr]
Đầu ra:
Sorted 2D Numpy Array [[21 7 23 14] [31 10 33 7] [11 12 13 22]]
Bây giờ giả sử chúng tôi muốn sắp xếp mảng 2D này theo cột thứ 2 như thế này,
Đối với điều này, chúng ta cần thay đổi định vị của tất cả các hàng trong mảng 2D Numpy dựa trên các giá trị được sắp xếp của cột thứ 2, tức là cột tại INDEX 1. Hãy để xem cách làm điều đó,
Let’s break down the above expression part by part and understand how ot worked.
Sắp xếp mảng 2D Numpy theo cột tại INDEX 1
Nó đã sắp xếp mảng 2D numpy theo cột thứ 2, tức là cột tại INDEX 1.
arr2D[:,columnIndex]
Nó đã hoạt động như thế nào? Hãy để chia nhỏ phần biểu thức trên từng phần và hiểu cách thức hoạt động của OT.
[12 7 10]
Quảng cáo
arr2D[:,columnIndex].argsort[]
Chọn cột tại INDEX 1 từ mảng 2D numpy, tức là.
[1 2 0]
Nó trả về các giá trị ở cột thứ 2, tức là cột tại vị trí chỉ mục 1, tức là
So, to change the positioning of rows based on values returned by argsort[]. Pass that to []
operator of 2D numpy array i.e.
# Create a 2D Numpy array list of list arr2D = np.array[[[11, 12, 13, 22], [21, 7, 23, 14], [31, 10, 33, 7]]] print['2D Numpy Array'] print[arr2D]0
Bây giờ hãy lấy mảng các chỉ số sắp xếp cột này, tức là.
Nó trả về các vị trí chỉ mục có thể sắp xếp cột trên, tức là
Nó có nghĩa là để sắp xếp cột tại vị trí chỉ mục 1 Sử dụng thứ tự sau của các hàng: [1 2 0] Vì vậy, để thay đổi định vị của các hàng dựa trên các giá trị được trả về bởi argsort []. Chuyển điều đó cho [] toán tử của mảng 2D numpy, tức là.
# Create a 2D Numpy array list of list arr2D = np.array[[[11, 12, 13, 22], [21, 7, 23, 14], [31, 10, 33, 7]]] print['2D Numpy Array'] print[arr2D]1
Đầu ra:
# Create a 2D Numpy array list of list arr2D = np.array[[[11, 12, 13, 22], [21, 7, 23, 14], [31, 10, 33, 7]]] print['2D Numpy Array'] print[arr2D]2
Bây giờ giả sử chúng tôi muốn sắp xếp mảng 2D này theo cột thứ 2 như thế này,
# Create a 2D Numpy array list of list arr2D = np.array[[[11, 12, 13, 22], [21, 7, 23, 14], [31, 10, 33, 7]]] print['2D Numpy Array'] print[arr2D]3
Đầu ra:
# Create a 2D Numpy array list of list arr2D = np.array[[[11, 12, 13, 22], [21, 7, 23, 14], [31, 10, 33, 7]]] print['2D Numpy Array'] print[arr2D]4
Bây giờ giả sử chúng tôi muốn sắp xếp mảng 2D này theo cột thứ 2 như thế này,
Đối với điều này, chúng ta cần thay đổi định vị của tất cả các hàng trong mảng 2D Numpy dựa trên các giá trị được sắp xếp của cột thứ 2, tức là cột tại INDEX 1. Hãy để xem cách làm điều đó,
Sắp xếp mảng 2D Numpy theo cột tại INDEX 1
Nó đã sắp xếp mảng 2D numpy theo cột thứ 2, tức là cột tại INDEX 1.
# Create a 2D Numpy array list of list arr2D = np.array[[[11, 12, 13, 22], [21, 7, 23, 14], [31, 10, 33, 7]]] print['2D Numpy Array'] print[arr2D]
Đầu ra:
2D Numpy Array [[11 12 13 22] [21 7 23 14] [31 10 33 7]]
Bây giờ giả sử chúng tôi muốn sắp xếp mảng 2D này theo cột thứ 2 như thế này,
Đối với điều này, chúng ta cần thay đổi định vị của tất cả các hàng trong mảng 2D Numpy dựa trên các giá trị được sắp xếp của cột thứ 2, tức là cột tại INDEX 1. Hãy để xem cách làm điều đó,
# Create a 2D Numpy array list of list arr2D = np.array[[[11, 12, 13, 22], [21, 7, 23, 14], [31, 10, 33, 7]]] print['2D Numpy Array'] print[arr2D]7
Đầu ra:
# Create a 2D Numpy array list of list arr2D = np.array[[[11, 12, 13, 22], [21, 7, 23, 14], [31, 10, 33, 7]]] print['2D Numpy Array'] print[arr2D]8
Bây giờ giả sử chúng tôi muốn sắp xếp mảng 2D này theo cột thứ 2 như thế này,
Đối với điều này, chúng ta cần thay đổi định vị của tất cả các hàng trong mảng 2D Numpy dựa trên các giá trị được sắp xếp của cột thứ 2, tức là cột tại INDEX 1. Hãy để xem cách làm điều đó,
Sắp xếp mảng 2D Numpy theo cột tại INDEX 1
# Create a 2D Numpy array list of list arr2D = np.array[[[11, 12, 13, 22], [21, 7, 23, 14], [31, 10, 33, 7]]] print['2D Numpy Array'] print[arr2D]9
Nó đã sắp xếp mảng 2D numpy theo cột thứ 2, tức là cột tại INDEX 1.
2D Numpy Array [[11 12 13 22] [21 7 23 14] [31 10 33 7]]0
Nó đã hoạt động như thế nào? Hãy để chia nhỏ phần biểu thức trên từng phần và hiểu cách thức hoạt động của OT.
Quảng cáo
2D Numpy Array [[11 12 13 22] [21 7 23 14] [31 10 33 7]]1
Đầu ra:
# Create a 2D Numpy array list of list arr2D = np.array[[[11, 12, 13, 22], [21, 7, 23, 14], [31, 10, 33, 7]]] print['2D Numpy Array'] print[arr2D]2
Chọn cột tại INDEX 1 từ mảng 2D numpy, tức là.
2D Numpy Array [[11 12 13 22] [21 7 23 14] [31 10 33 7]]3
Đầu ra:
2D Numpy Array [[11 12 13 22] [21 7 23 14] [31 10 33 7]]4
Nó trả về các giá trị ở cột thứ 2, tức là cột tại vị trí chỉ mục 1, tức là
2D Numpy Array [[11 12 13 22] [21 7 23 14] [31 10 33 7]]5
Output:
2D Numpy Array [[11 12 13 22] [21 7 23 14] [31 10 33 7]]6