วิธีจัดเรียงอาร์เรย์ 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