Ich habe einige Wörter in einem Wörterbuch und nach diesen und einigen Sätzen möchte ich ein bestimmtes Array erstellen.Create Array von dict
words = {'a': array([ 1.78505888, -0.40040435, -0.2555062 ]), 'c': array([ 0.58101204, -0.23254054, -0.5700197 ]), 'b': array([ 1.17213122, 0.38232652, -0.78477569]), 'd': array([-0.07545012, -0.10094538, -0.98136142])}
sentences = [['a', 'c'], ['b', 'a', 'd'], ['d', 'c']]
Was ich will, ist ein Array mit der ersten Reihe ist, um die die Werte von ‚a‘ und ‚c‘ vertikal gestapelt zu erhalten.
Die zweite Zeile ist die vertikal gestapelten Werte von 'b' und 'a'.
Und die dritte, die Werte von 'd' und 'c' vertikal gestapelt.
Ich versuchte dies:
np.vstack((words[word] for word in sentences[0]))
>>> array([[ 1.78505888, -0.40040435, -0.2555062 ],
[ 0.58101204, -0.23254054, -0.5700197 ]])
Also das ist meine erste Reihe ist, aber ich bin das nicht in der Lage zu tun für ‚Sätze‘ mit Liste Verständnis (nur für eine Person).
EDIT: Im Grunde, was ich versuche, ist die folgende
first_row = np.vstack((words[word] for word in sentences[0]))
second_row = np.vstack((words[word] for word in sentences[1]))
third_row = np.vstack((words[word] for word in sentences[2]))
l = []
l.append(first_row)
l.append(second_row)
l.append(third_row)
print np.array(l)
>>> [[[ 1.78505888 -0.40040435 -0.2555062 ]
[ 0.58101204 -0.23254054 -0.5700197 ]]
[[ 1.17213122 0.38232652 -0.78477569]
[ 1.78505888 -0.40040435 -0.2555062 ]
[-0.07545012, -0.10094538, -0.98136142]]
[[-0.07545012 -0.10094538 -0.98136142]
[ 0.58101204 -0.23254054 -0.5700197 ]]]
können Sie bitte eine Beispielausgabe schreiben? – AceLearn
Haben Sie immer die gleiche Anzahl von Elementen für jede Taste in 'words', wie hier in' 3's? Haben Sie immer die gleiche Anzahl von Elementen pro Index in "Sätzen", wie sie paarweise in den Beispieldaten sind? – Divakar
Im 'Wörter' Wörterbuch haben alle Werte die gleiche Dimension (numpy Array der Größe n), aber in 'Sätzen' können die Zeilen unterschiedlich lang sein. – dooms