Ich habe eine sehr große (200k +) Satz von Schlüssel/Wert-Paaren, für die ich sehr große (manchmal alle) der Werte abrufen müssen. Der offensichtliche Weg, dies zu tun, ist mit einem Wörterbuch, so dassNachschlagen große Mengen von Schlüsseln: Wörterbuch vs. NumPy Array
values = {lookup.get(key) for key in key_set}
Dies ist sehr zeit immer in meinem Code aufwendig, und ich frage mich, ob es ein schnellerer Weg, dies mit einem Array NumPy zu implementieren. Ich habe experimentiert mit einem Array mit zwei Spalten mit und n Reihen, so dass für jeden einzelnen Schlüssel:
value = lookup_array[lookup_array[:,0] == key, 1]
Aber ich bin nicht sicher, wie dies ohne aufwendige Iteration bis zu vielen Schlüssel zu skalieren. Ich habe mir angeschaut:
values = lookup_array[np.in1d(lookup_array[:,0], key_set), 1]
aber das scheint auch zeitaufwendig.
Gibt es eine andere Möglichkeit, eine massive Suche nach nicht konsekutiven Werten schnell ohne Iteration durchzuführen?
was ist 'lookup'? –
Im ersten Beispiel Nachschlagen ist ein Wörterbuch – triphook
Sollte das nicht 'Lookup_array [:, 0]' stattdessen sein? Enthält 'key_set' auch' eindeutige' Schlüssel? – Divakar