Jestem całkiem nowy w Pythonie numpy. Próbowałem użyć numpy array jako klucza w słowniku w jednej z moich funkcji, a następnie zostałem poinformowany przez interpreter języka Python, że numpy array nie jest hashable. Właśnie dowiedziałem się, że jednym ze sposobów rozwiązania tego problemu jest użycie funkcji repr()
do konwersji numpy array na ciąg znaków, ale wydaje się to bardzo kosztowne. Czy istnieje lepszy sposób osiągnięcia tego samego efektu?Python - Alternatywa dla używania tablicy numpy jako klucza w słowniku
Aktualizacja: Potrafię stworzyć nową klasę zawierającą tablicę numpy, która wydaje się być właściwą drogą do osiągnięcia tego, co chcę. Zastanawiasz się, czy istnieje jakaś lepsza metoda?
update 2: Używanie klasy do zawarcia danych w tablicy i nadpisanie funkcji __hash__
jest dopuszczalne, jednak wolałbym rozwiązanie dostarczone przez @hpaulj. Konwertuj array/list
na tuple
lepiej spełnia moje potrzeby, ponieważ nie wymaga dodatkowej klasy.
Co robisz, że chcesz użyć tablicy numpy (w jakiejkolwiek formie) jako klucza słownika? –
Możesz użyć danych w tablicy numpy, aby utworzyć 'hash', który może być użyty jako klucz do słownika. – ZdaR
@JonClements Potrzebuję słownika do odwzorowania wektora 1-d na zbiór punktów – Jiayi