วิธีจัดเรียงอาร์เรย์ numpy ตามคอลัมน์ (พร้อมตัวอย่าง)


คุณสามารถใช้วิธีการต่อไปนี้เพื่อจัดเรียงแถวของอาร์เรย์ NumPy ตามค่าคอลัมน์:

วิธีที่ 1: จัดเรียงตามค่าคอลัมน์จากน้อยไปหามาก

 x_sorted_asc = x[x[:, 1]. argsort ()]

วิธีที่ 2: จัดเรียงตามค่าคอลัมน์จากมากไปน้อย

 x_sorted_desc = x[x[:, 1]. argsort ()[::-1]]

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติ

ตัวอย่างที่ 1: จัดเรียงอาร์เรย์ Numpy ตามค่าคอลัมน์จากน้อยไปหามาก

สมมติว่าเรามีอาร์เรย์ NumPy ดังต่อไปนี้:

 import numpy as np

#create array
x = np. array ([14, 12, 8, 10, 5, 7, 11, 9, 2]). reshape (3,3)

#view array
print (x)

[[14 12 8]
 [10 5 7]
 [11 9 2]]

เราสามารถใช้โค้ดต่อไปนี้เพื่อจัดเรียงแถวของตาราง NumPy ตามลำดับจากน้อยไปมากตามค่าในคอลัมน์ที่สอง:

 #define new matrix with rows sorted in ascending order by values in second column
x_sorted_asc = x[x[:, 1]. argsort ()]

#view sorted matrix
print (x_sorted_asc)

[[10 5 7]
 [11 9 2]
 [14 12 8]]

โปรดทราบว่าตอนนี้แถวต่างๆ จะถูกจัดเรียงจากน้อยไปหามาก (เล็กที่สุดไปหาใหญ่ที่สุด) ตามค่าในคอลัมน์ที่สอง

ตัวอย่างที่ 2: จัดเรียงอาร์เรย์ Numpy ตามค่าคอลัมน์จากมากไปน้อย

สมมติว่าเรามีอาร์เรย์ NumPy ดังต่อไปนี้:

 import numpy as np

#create array
x = np. array ([14, 12, 8, 10, 5, 7, 11, 9, 2]). reshape (3,3)

#view array
print (x)

[[14 12 8]
 [10 5 7]
 [11 9 2]]

เราสามารถใช้โค้ดต่อไปนี้เพื่อจัดเรียงแถวของตาราง NumPy ตามลำดับจากมากไปน้อยตามค่าในคอลัมน์ที่สอง:

 #define new matrix with rows sorted in descending order by values in second column
x_sorted_desc = x[x[:, 1]. argsort ()[::-1]]

#view sorted matrix
print (x_sorted_desc)

[[14 12 8]
 [11 9 2]
 [10 5 7]]

โปรดทราบว่าตอนนี้แถวต่างๆ จะถูกจัดเรียงจากมากไปน้อย (มากไปน้อย) ตามค่าในคอลัมน์ที่สอง

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน Python:

วิธีค้นหาดัชนีค่าในอาร์เรย์ NumPy
วิธีรับคอลัมน์เฉพาะจากอาร์เรย์ NumPy
วิธีเพิ่มคอลัมน์ในอาร์เรย์ NumPy

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *