ฉันกำลังประหลาดใจคำถามเฉพาะนี้ยังไม่ได้รับการถามก่อน np.sort
แต่ผมไม่คิดว่ามันในดังนั้นไม่เกี่ยวกับเอกสารของ
สมมติว่าฉันมีอาร์เรย์แบบสุ่มที่ถือจำนวนเต็มเช่น:
> temp = np.random.randint(1,10, 10)
> temp
array([2, 4, 7, 4, 2, 2, 7, 6, 4, 4])
ถ้าฉันเรียงลำดับฉันจะเรียงลำดับจากน้อยไปมากโดยค่าเริ่มต้น:
> np.sort(temp)
array([2, 2, 2, 4, 4, 4, 4, 6, 7, 7])
แต่ฉันต้องการแก้ปัญหาที่จะเรียงจากมากไปน้อยการสั่งซื้อ
ตอนนี้ฉันรู้ว่าฉันทำได้เสมอ:
reverse_order = np.sort(temp)[::-1]
แต่คำสั่งสุดท้ายนี้มีประสิทธิภาพหรือไม่? มันไม่ได้สร้างสำเนาจากน้อยไปหามากแล้วย้อนกลับสำเนานี้เพื่อให้ได้ผลลัพธ์ในลำดับที่กลับกันใช่หรือไม่? หากเป็นเช่นนั้นจริงมีทางเลือกอื่นที่มีประสิทธิภาพหรือไม่? ดูเหมือนไม่np.sort
ยอมรับพารามิเตอร์เพื่อเปลี่ยนเครื่องหมายของการเปรียบเทียบในการดำเนินการเรียงลำดับเพื่อให้ได้สิ่งต่างๆในลำดับย้อนกลับ
temp[::-1].sort()
รู้ได้อย่างไรว่าต้องเรียงลำดับย้อนกลับ ?? วิธีที่ฉันอ่านคือ: ย้อนกลับอาร์เรย์เดิมแล้วเรียงลำดับ (จากน้อยไปมาก) เหตุใดการย้อนกลับอาร์เรย์เดิม (มาในลำดับสุ่ม) แล้วการเรียงลำดับจากน้อยไปมากจะส่งกลับอาร์เรย์ในลำดับย้อนกลับ