Tìm kiếm mảng NumPy
- Trang Trước Chia mảng NumPy
- Trang Tiếp Theo Sắp xếp mảng NumPy
tìm kiếm mảng
Bạn có thể tìm kiếm (truy vấn) một giá trị trong mảng và sau đó trả về các chỉ mục đã tìm thấy.
Để tìm kiếm mảng, hãy sử dụng where()
phương pháp.
Ví dụ
tìm kiếm các chỉ mục có giá trị 4:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 4, 4]) x = np.where(arr == 4) print(x)
ví dụ trên sẽ trả về một cặp:(array([3, 5, 6],)
nghĩa là giá trị 4 xuất hiện ở chỉ mục 3, 5 và 6.
Ví dụ
tìm kiếm các chỉ mục có giá trị chẵn:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) x = np.where(arr%2 == 0) print(x)
Ví dụ
tìm kiếm các chỉ mục có giá trị lẻ:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) x = np.where(arr%2 == 1) print(x)
sắp xếp tìm kiếm
có một tên gọi searchsorted()
phương pháp, phương pháp này thực hiện tìm kiếm bội số trong mảng và trả về chỉ mục sẽ chèn giá trị được chỉ định để duy trì thứ tự tìm kiếm.
giả định searchsorted()
phương pháp này được sử dụng để sắp xếp mảng.
Ví dụ
Tìm kiếm nên chèn giá trị 7 vào các chỉ mục:
import numpy as np arr = np.array([6, 7, 8, 9]) x = np.searchsorted(arr, 7) print(x)
Giải thích ví dụ:Nên chèn số 7 vào chỉ mục 1 để duy trì thứ tự sắp xếp.
Phương pháp này bắt đầu từ bên trái và trả về chỉ mục đầu tiên mà số 7 không còn lớn hơn giá trị tiếp theo.
Tìm kiếm từ bên phải
Mặc định, trả về chỉ mục bên trái, nhưng chúng ta có thể chỉ định side='right'
để trả về chỉ mục bên phải nhất.
Ví dụ
Tìm kiếm nên chèn giá trị 7 vào các chỉ mục từ bên phải:
import numpy as np arr = np.array([6, 7, 8, 9]) x = np.searchsorted(arr, 7, side='right') print(x)
Giải thích ví dụ:Nên chèn số 7 vào chỉ mục 2 để duy trì thứ tự sắp xếp.
Phương pháp này bắt đầu từ bên phải và trả về chỉ mục đầu tiên mà số 7 không còn nhỏ hơn giá trị tiếp theo.
Nhiều giá trị
Để tìm kiếm nhiều giá trị, hãy sử dụng mảng có giá trị cụ thể.
Ví dụ
Tìm kiếm nên chèn giá trị 2, 4 và 6 vào các chỉ mục:
import numpy as np arr = np.array([1, 3, 5, 7]) x = np.searchsorted(arr, [2, 4, 6]) print(x)
Giá trị trả về là một mảng:[1 2 3]
Chứa ba chỉ mục, trong đó sẽ chèn vào 2, 4, 6 trong mảng gốc để duy trì thứ tự.
- Trang Trước Chia mảng NumPy
- Trang Tiếp Theo Sắp xếp mảng NumPy