Ich arbeite derzeit auf notMINST-Datenbank mit Python 2.7, versuchen, doppelte Bilder zu entfernen. Ich verwandle jedes Bild in MD5-Hash und erstellt ein Wörterbuch image_hashSchneller Algorithmus zum Entfernen von Duplikaten aus Wörterbüchern, vergleichen von zwei
Die erste Methode funktioniert, es dauerte jedoch fast eine Stunde für insgesamt 500000 Bilder im Datensatz.
image_hash_identical = {}
for key,value in image_hash.items():
if value not in image_hash_identical.values():
image_hash_identical[key] = value
Ich habe versucht, ‚set‘ Funktion zu verwenden, um eine zweite Methode zu schaffen Dinge schneller zu machen:
image_hash_set_values = list(set(image_hash.values()))
for i in range(len(image_hash_set_values)):
for j in range(i, len(image_hash)):
image_hash[j] == image_hash_set_values[i]:
image_hash_identical[i] = image_hash[j]
break
jedoch dieser Code konnte den Prozess für die ‚Set‘ Funktion beschleunigen schlurfte die Reihenfolge von image_hash. Gibt es irgendwelche Möglichkeiten, das Shuffling durch die 'set'-Funktion oder irgendwelche schnelleren Algorithmen zu verhindern, die mit dieser Situation umgehen können?
Haben Sie versucht, den Aufbau '' 'image_hash''' mit dem Hash als Schlüssel? – wwii
Nein, nicht als Schlüssel, sondern als Wert. Ich benutzte Schlüssel, um die ID von Observasion darzustellen – Xiuyuanc