Chà, nếu bạn đang nói về danh sách Python tiêu chuẩn, điều này thật dễ dàng:
# 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. Ví dụ:
>>> from random import randint
>>> a_list = [[randint[1,15] for _ in range[10]] for _ in range[3]]
>>> print a_list
[[3, 12, 3, 12, 13, 5, 12, 2, 1, 13], [3, 8, 7, 4, 6, 11, 15, 12, 4, 6], [15, 3, 8, 15, 1, 6, 4, 7, 15, 14]]
>>> a_list[1].sort[]
>>> print a_list
[[3, 12, 3, 12, 13, 5, 12, 2, 1, 13], [3, 4, 4, 6, 6, 7, 8, 11, 12, 15], [15, 3, 8, 15, 1, 6, 4, 7, 15, 14]]
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à. Bây giờ giả sử chúng ta có một mảng 2D numpy, tức là. Đầu ra: 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 đó, Đầu ra:import numpy as np
# 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]
2D Numpy Array
[[11 12 13 22]
[21 7 23 14]
[31 10 33 7]]
[[21 7 23 14]
[31 10 33 7]
[11 12 13 22]]
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]
Sorted 2D Numpy Array [[21 7 23 14] [31 10 33 7] [11 12 13 22]]
Nó đã sắp xếp mảng 2D numpy theo cột thứ 2, tức là cột tại INDEX 1.
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.
Let’s break down the above expression part by part and understand how ot worked.
Quảng cáo
Chọn cột tại INDEX 1 từ mảng 2D numpy, tức là.
arr2D[:,columnIndex]
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à
[12 7 10]
Bây giờ hãy lấy mảng các chỉ số sắp xếp cột này, tức là.
arr2D[:,columnIndex].argsort[]
Nó trả về các vị trí chỉ mục có thể sắp xếp cột trên, tức là
import numpy as np0
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à.
So, to change the positioning of rows based on values returned by argsort[]. Pass that to [] operator of 2D numpy array i.e.
import numpy as np1
Nó sẽ thay đổi thứ tự hàng và tạo mảng 2D được sắp xếp theo cột thứ 2, tức là theo cột tại vị trí chỉ mục 1.
Hãy để xem một số ví dụ khác,
Sắp xếp mảng 2D numpy theo cột tại chỉ mục 0
import numpy as np2
Đầu ra:
import numpy as np3
Sắp xếp mảng 2d numpy theo cột cuối cùng
import numpy as np4
Đầu ra:
import numpy as np5
Sắp xếp một mảng 2d numpy theo hàng
Trên logic tương tự, chúng ta có thể sắp xếp một mảng 2D numpy theo một hàng duy nhất, tức là xáo trộn các cột của mảng 2D numpy để tạo ra hàng đã cho được sắp xếp.
Hãy để hiểu biết bởi các ví dụ,
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]]
Sắp xếp mảng 2D numpy theo hàng tại vị trí chỉ mục 1
Hãy để sắp xếp các mảng 2D Numpy được tạo ở trên theo hàng thứ 2, tức là hàng tại vị trí chỉ mục 1, tức là
import numpy as np8
Đầu ra:
import numpy as np9
Nó đã thay đổi vị trí của tất cả các cột trong mảng 2D numpy để tạo hàng tại vị trí chỉ mục 1 được sắp xếp. Vì vậy, về cơ bản, chúng tôi đã sắp xếp mảng 2D numpy theo chỉ mục 1.
Nó hoạt động như thế nào?
Logic của nó tương tự như ở trên, tức là chọn hàng tại vị trí chỉ mục đã cho bằng toán tử [] và sau đó nhận các chỉ số được sắp xếp của hàng này bằng argsort [].
# 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
Sau đó thay đổi vị trí của các cột để thực hiện mảng 2D này được sắp xếp theo hàng.
# 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
Một số ví dụ khác,
Sắp xếp mảng 2d numpy theo hàng đầu tiên
# 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
Đầu ra:
import numpy as np3
Sắp xếp mảng 2d numpy theo hàng cuối cùng
# 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
Đầ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]5
Sắp xếp mảng 2d numpy theo hàng cuối cùng
# 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]6
Output:
# 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