Arrays, Numpy und Dictionaries (sklearn.clusters.dbscan)
Verfasst: Samstag 19. November 2016, 20:10
Folgende Arrays sind gegeben, hier zur Vereinfachung nur mit zwei Elementen. Das erste habe ich angelegt, die anderen zwei sind irgendwie numpy-arrays. x sei hier mal nicht weiter genutzt.:
Ich möchte nun ein dictionary, in dem für jedes labels-Element für das es eine Entsprechung in pos gibt ein Eintrag erscheint wie:
{ 'könnten wenn': array([ 0.123, 0.123, 0.123], dtype=float32) }
Es gibt diesen Code:
Der macht was Ähnliches. Ich versteh nur leider das x[labels==i] nicht.
Ich hab mir das hier zusammengeschrieben:
Aber das sagt:
The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
TL;DR: Wie kriege ich den Vergleich pos[xxx]==labels[yyy] hin?
Das Ganze ist genutzt mit sklearn.clusters.dbscan wer es kennt. Für Hilfe vielen Dank!
Code: Alles auswählen
pos = {'könnten wenn': array([ 0.123, 0.123, 0.123], dtype=float32), 'könnten als': array([ 0.234, 0.234, 0.234 ], dtype=float32)}
x = [[ 0.123 0.123 0.123 ], [ 0.234 0.234 0.234 ]]
labels = [0.123 0.123 0.123, 0.234 0.234 0.234]
{ 'könnten wenn': array([ 0.123, 0.123, 0.123], dtype=float32) }
Es gibt diesen Code:
Code: Alles auswählen
cluster_dict = {i: x[labels==i] for i in range(n_clusters_)}
Ich hab mir das hier zusammengeschrieben:
Code: Alles auswählen
cluster_dict = {i: list(pos.keys())[list(pos.values()).index(x[labels==i])] for i in range(n_clusters_)}
The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
TL;DR: Wie kriege ich den Vergleich pos[xxx]==labels[yyy] hin?
Das Ganze ist genutzt mit sklearn.clusters.dbscan wer es kennt. Für Hilfe vielen Dank!