NumPy 数组搜索

ค้นหาลูกศรัทย์

คุณสามารถค้นหาค่าในแนวคิดนี้ (ค้นหา) และกลับค่าดัชนีที่พบ

ถ้าต้องการค้นหาลูกศรัทย์ในแนวคิดนี้ ใช้ where() วิธี

ตัวอย่าง

ค้นหาตำแหน่งดัชนีของค่า 4

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 4, 4])
x = np.where(arr == 4)
print(x)

ปฏิบัติตัวอย่าง

ตัวอย่างดังกล่าวจะคืนค่าเป็นตัวเอกสาร(array([3, 5, 6],)

หมายความว่าค่า 4 มีที่ตั้งดัชนีที่ 3, 5 และ 6

ตัวอย่าง

ค้นหาตำแหน่งดัชนีของค่าที่เป็นเลขใหญ่

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x = np.where(arr%2 == 0)
print(x)

ปฏิบัติตัวอย่าง

ตัวอย่าง

ค้นหาตำแหน่งดัชนีของค่าที่เป็นเลขเล็ก

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x = np.where(arr%2 == 1)
print(x)

ปฏิบัติตัวอย่าง

การค้นหาลูกศรัทย์

มีชื่อเรียก searchsorted() มีวิธีนี้ วิธีนี้ทำการค้นหาลูกศรัทย์ที่สอดคล้องกับอินเตอร์เวนของเลขที่กำหนดเพื่อที่จะรักษาลำดับการค้นหา

นับถือ searchsorted() วิธีนี้ใช้สำหรับการจัดลำดับตาราง

ตัวอย่าง

ค้นหาตำแหน่งที่จะใส่ค่า 7

import numpy as np
arr = np.array([6, 7, 8, 9])
x = np.searchsorted(arr, 7)
print(x)

ปฏิบัติตัวอย่าง

การอธิบายตัวอย่างควรใส่ตัวเลข 7 ในตำแหน่งที่ดังกล่าวเพื่อที่จะรักษาลำดับ

วิธีนี้จะค้นหาจากด้านซ้ายและส่งกลับตำแหน่งที่ตัวเลข 7 ไม่มีมากกว่าตัวเลขต่อไป

ค้นหาจากด้านขวา

โดยมาตรฐาน จะส่งกลับตำแหน่งที่ด้านซ้ายสุด แต่เราสามารถกำหนด side='right'เพื่อที่จะส่งกลับตำแหน่งที่ด้านขวาสุด

ตัวอย่าง

ค้นหาตำแหน่งที่จะใส่ค่า 7 จากด้านขวา

import numpy as np
arr = np.array([6, 7, 8, 9])
x = np.searchsorted(arr, 7, side='right')
print(x)

ปฏิบัติตัวอย่าง

การอธิบายตัวอย่างควรใส่ตัวเลข 7 ในตำแหน่งที่ดังกล่าวเพื่อที่จะรักษาลำดับ

วิธีนี้จะค้นหาจากด้านขวาและส่งกลับตำแหน่งที่ตัวเลข 7 ไม่มีน้อยกว่าตัวเลขต่อไป

หลายค่า

ในกรณีที่ต้องการค้นหาหลายค่า ใช้ตัวเลขในแบบฟอร์มของตัวเลข

ตัวอย่าง

ค้นหาตำแหน่งที่จะใส่ค่า 2, 4, 6

import numpy as np
arr = np.array([1, 3, 5, 7])
x = np.searchsorted(arr, [2, 4, 6])
print(x)

ปฏิบัติตัวอย่าง

ค่าที่ส่งกลับคือแบบฟอร์มของ[1 2 3] มีตัวย่อถึงสามที่จะแทนที่ด้วยตัวเลข 2, 4, 6 ในลำดับเดิมเพื่อที่จะเก็บระบบลำดับ