Ich versuche, alle Werte in einer Matrix Beta VxK um die Macht aller Werte in einer Spalte Vx1 zu erhalten, die Teil einer dichten Matrix ist VxN. Also sollte jeder Wert in der Beta die Stärke der entsprechenden Zeile in der Spalte haben, und dies sollte für alle K Spalten in der Beta getan werden. Wenn ich auf Python verwenden np.power für eine Praxis numpy Array für Beta mit:Matrix auf die Macht einer Spalte einer dichten Matrix mit numpy in Python
np.power(head_beta.T, head_matrix[:,0])
Ich bin in der Lage, die Ergebnisse Ich möchte zu erhalten. Die Dimensionen sind (3, 10) für beta und (10,) für head_matrix [:, 0], wobei in diesem Fall 3 = K und 10 = V ist.
Allerdings, wenn ich diese auf meinem tatsächlichen Matrix, die durch die Verwendung
matrix=csc_matrix((data,(row,col)), shape=(30784,72407)).todense()
wo Daten, Zeile und Spalte sind Arrays erhalten wurde, kann ich nicht die gleiche Operation tun:
np.power(beta.T, matrix[:,0])
wobei die Dimensionen (10, 30784) für Beta und (30784, 1) für Matrix sind, in diesem Fall 10 = K und 30784 = V. I die folgenden Fehler
ValueError Traceback (most recent call last)
<ipython-input-29-9f55d4cb9c63> in <module>()
----> 1 np.power(beta.T, matrix[:,0])
ValueError: operands could not be broadcast together with shapes (10,30784) (30784,1) `
Es scheint, daß der Unterschied ist, daß ein Matrix-Matrix ist (Länge, 1) und ist eigentlich eine head_matrix numpy array (Länge), die ich erstellt. Wie kann ich dieselbe Operation mit der Spalte einer dichten Matrix durchführen?
Technisch mit einem '' np.matrix' squeeze' nicht der zusätzliche Dimension zu befreien bekommt, es ändert sich nur die Form zu '(1, N)', wie 'ravel'. – hpaulj