Tôi bắt đầu học Python đến từ nền C++. Những gì tôi đang tìm kiếm là một cách nhanh chóng và dễ dàng để tìm gần nhất (láng giềng gần nhất) của một số điểm truy vấn đa chiều trong một mảng 2D (numpy) của các điểm đa chiều (cũng mảng numpy). Tôi biết rằng scipy có một cây k-d, nhưng tôi không nghĩ rằng đây là những gì tôi muốn. Trước hết, tôi sẽ thay đổi giá trị của các điểm đa chiều trong mảng 2D. Thứ hai, vị trí (tọa độ) của mỗi điểm trong mảng 2D quan trọng vì tôi cũng sẽ thay đổi hàng xóm của chúng.Vùng lân cận gần nhất Tìm kiếm bằng Python mà không có cây k-d
Tôi có thể viết chức năng đi qua mảng 2D và đo khoảng cách giữa điểm truy vấn và điểm trong mảng trong khi vẫn theo dõi điểm nhỏ nhất (sử dụng hàm khoảng cách không gian scipy để đo khoảng cách). Có chức năng tích hợp nào không? Tôi đang cố gắng tránh lặp qua mảng trong python càng nhiều càng tốt. Tôi cũng sẽ có nhiều điểm truy vấn vì vậy sẽ có ít nhất hai "cho vòng" - một để lặp qua các điểm truy vấn và cho mỗi truy vấn, một vòng lặp để lặp qua mảng 2D và tìm khoảng cách tối thiểu.
Cảm ơn lời khuyên nào.
Tôi thích đề xuất đầu tiên, nhưng tôi thực hiện một truy vấn tại một thời điểm và cập nhật giá trị trong mảng (tương tự như SOM). Tôi có thể sử dụng cdist (X, Y) trong đó X chỉ là một truy vấn và cập nhật mảng và chuyển sang truy vấn tiếp theo. Rtree có vẻ như nó có thể là OK, nhưng tôi là một chút không chắc chắn về cách sử dụng nó trong tình hình của tôi. Tôi tự hỏi liệu có bất kỳ gói đồ thị nào cho phép tìm kiếm lân cận gần nhất với điểm bên ngoài không? Tôi có thể sử dụng một gói đồ thị để tạo ra một mạng lưới nơi mỗi nút là một điểm đa chiều. Một số tính năng khác của gói đồ thị sẽ có ích trong chương trình của tôi – COM