Hướng dẫn sort 2d array python by row - sắp xếp python mảng 2d theo hàng

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à.

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]]

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 np
0

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 np
1

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

Đầu ra:

import numpy as np
3

Sắp xếp mảng 2d numpy theo cột cuối cùng

import numpy as np
4

Đầu ra:

import numpy as np
5

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

Đầu ra:

import numpy as np
9

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 np
3

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

Làm cách nào để sắp xếp một mảng 2D theo hàng trong Python?

Tìm hàng với số lượng tối đa là 1s ..
Tìm trung bình trong hàng ma trận sắp xếp khôn ngoan ..
Tìm các yếu tố riêng biệt chung cho tất cả các hàng của ma trận ..
Tìm phần tử tối đa của mỗi hàng trong một ma trận ..
Tìm các yếu tố độc đáo trong một ma trận ..
Tìm kiếm trong một hàng khôn ngoan và cột Ma trận được sắp xếp khôn ngoan ..
Các tế bào độc đáo trong ma trận nhị phân ..

Làm thế nào để bạn sắp xếp các hàng trong một mảng 2D?

Tạo mảng 2D thành một mảng đơn giản [1D] riêng biệt [Bước 1]. Sau đó sử dụng các mảng. Sắp xếp [] phương thức để sắp xếp mảng đơn giản [bước 2]. Sau đó, đặt mỗi không gian của mảng 2D thành số cột trên [tọa độ x nơi không gian sẽ được thay đổi] nhân với số lượng khoảng trống trên mỗi hàng trong mảng 2D.

Làm thế nào để bạn sắp xếp một hàng mảng trong Python?

Các mảng numpy có thể được sắp xếp theo một cột, hàng hoặc nhiều cột hoặc hàng bằng hàm argsort [].Hàm argsort trả về một danh sách các chỉ số sẽ sắp xếp các giá trị trong một mảng trong giá trị tăng dần.using the argsort[] function. The argsort function returns a list of indices that will sort the values in an array in ascending value.

Chúng ta có thể sắp xếp một danh sách 2D trong Python không?

Làm thế nào để bạn sắp xếp một danh sách 2D trong Python bằng Lambda?Sử dụng Sắp xếp [] với hàm Lambda để sắp xếp danh sách đa chiều theo cột.Cuộc gọi được sắp xếp [itable, key = none] với khóa được đặt thành hàm lambda của cú pháp Lambda x: x [i] để sắp xếp một danh sách đa chiều có thể được điều chỉnh bởi phần tử i trong mỗi danh sách bên trong x.Use sorted[] with a lambda function to sort a multidimensional list by column. Call sorted[iterable, key=None] with key set to a lambda function of syntax lambda x: x[i] to sort a multidimensional list iterable by the i th element in each inner list x .

Bài Viết Liên Quan

Chủ Đề