Wie kann ich den elementweisen Absolutwert einer dünnen komplexen Matrix erhalten? Ist es im Allgemeinen möglich, eine Matrix mithilfe einer benutzerdefinierten Funktion einer anderen zuzuordnen?Elementweise absoluter Wert einer dünn besetzten Matrix
Antwort
Für mich ist das folgende funktioniert
import numpy as np
from scipy import sparse
a = sparse.identity(5).tocsr() * 1j
a[2,4] = 1-1j
b = np.absolute(a)
b.A
# array([[ 1. , 0. , 0. , 0. , 0. ],
# [ 0. , 1. , 0. , 0. , 0. ],
# [ 0. , 0. , 1. , 0. , 1.41421356],
# [ 0. , 0. , 0. , 1. , 0. ],
# [ 0. , 0. , 0. , 0. , 1. ]])
# general functions: use the data attribute to access nonzeros
b.data = np.exp(b.data)
b.A
# array([[ 2.71828183, 0. , 0. , 0. , 0. ],
# [ 0. , 2.71828183, 0. , 0. , 0. ],
# [ 0. , 0. , 2.71828183, 0. , 4.11325038],
# [ 0. , 0. , 0. , 2.71828183, 0. ],
# [ 0. , 0. , 0. , 0. , 2.71828183]])
Haben wir nicht gerade herausgefunden, dass 'spärlich' eine Version von allen 'ufunc' hat, die 0 Werte unberührt lassen? Es gibt eine Kopie von sich selbst zurück, aber mit dem 'ufunc' wird auf alle seine' .data' Werte angewendet. – hpaulj
@hpaulj ja, also taten wir es. Das 'data'-Fiedeln ist für Funktionen, die 0 nicht unberührt lassen. Oder sagst du, dass ich über all die anderen "Faulenzen" didaktischer hätte sein sollen? Sie können dort einen Punkt haben. Um ganz ehrlich zu sein, habe ich einen schnellen Check gemacht und habe nicht das "abs" oder "absolute" Mitglied gefunden und natürlich "__abs__" völlig vergessen. Wenn du magst, kannst du einen Beitrag über die Dinge schreiben, die ich weggelassen habe. –
http://stackoverflow.com/questions/42408772/element-wise-exp-of-scipy-sparse-matrix - auf die Entdeckung, dass es eine spärliche 'expm1' Methode gibt. – hpaulj
Die Sparse Matrix Objekte in scipy __abs__()
die Methode implementieren. Das bedeutet, dass Sie Pythons eingebauteabs()
Funktion verwenden können. Es wird den Anruf an die __abs__()
Methode senden. Zum Beispiel
In [16]: from scipy.sparse import csr_matrix
In [17]: a = csr_matrix([[1+1j, 0, 0, 0], [0, -2, 0, 0], [0, 0, 0, 0], [3-4j, 0, -5j, 0]])
In [18]: a.A
Out[18]:
array([[ 1.+1.j, 0.+0.j, 0.+0.j, 0.+0.j],
[ 0.+0.j, -2.+0.j, 0.+0.j, 0.+0.j],
[ 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j],
[ 3.-4.j, 0.+0.j, 0.-5.j, 0.+0.j]])
In [19]: b = abs(a)
In [20]: b.A
Out[20]:
array([[ 1.41421356, 0. , 0. , 0. ],
[ 0. , 2. , 0. , 0. ],
[ 0. , 0. , 0. , 0. ],
[ 5. , 0. , 5. , 0. ]])
- 1. Konvertieren einer dünn besetzten Matrix in eine vollständige Matrix - R
- 2. So finden Sie Nullelemente in einer dünn besetzten Matrix
- 3. Erstellen einer dünn besetzten Matrix mit LightFM und Druckvorhersagen
- 4. JuMP mit dünn besetzten Matrizen?
- 5. Erstellen einer dünn besetzten Blockdiagonalmatrix in Matlab
- 6. Spärliche doppelte Rückgabe einer dünn besetzten Matrix in einen doppelten Wert umwandeln
- 7. Cosine Abstand zwischen dünn besetzten Matrizen
- 8. R: Schnelle Möglichkeit zum Erstellen einer dünn besetzten Modellmatrix
- 9. Effizienter Zugriff in dünn besetzten Matrizen
- 10. Speicherleck mit Eigen dünn besetzten Matrizen Multiplikation
- 11. Julia - Hinzufügen von Zeilen/Spalten zu dünn besetzten Matrizen
- 12. Weisen Sie der Diagonale einer dünn besetzten Matrix "spärliche" Werte zu R
- 13. Effiziente Nächste-Nachbarn-Suche nach dünn besetzten Matrizen
- 14. Multiplikation von großen dünn besetzten Matrizen verursacht Speicherfehler
- 15. Elementweise Boolesche Tests in einer Matrix
- 16. Efficient elementweise Multiplikation einer Matrix und einer Matrix in Tensorflow
- 17. Wie wird Zellstoff verwendet, um Variablen und Einschränkungen der dünn besetzten Matrix zu generieren?
- 18. Stapeln von zwei dünn besetzten Matrizen mit verschiedenen Dimensionen
- 19. Summe über Zell-Array von dünn besetzten Matrizen
- 20. Elementweise Quadrat der Theano-Matrix
- 21. Efficient elementweise Multiplikation einer Matrix und ein Vektor in TensorFlow
- 22. elementweise Operationen der Matrix in Python
- 23. Absoluter Wert in vb.net
- 24. Hinzufügen von zwei `csc` dünn besetzten Matrizen verschiedener Formen in Python
- 25. Matplotlib yticks absoluter Wert
- 26. Pandas - Absoluter Wert für Kopfzeile
- 27. Wie bekomme ich dünn besetzte Matrizen in H2O?
- 28. Tensorflow: Konstruiere dünn besetzte Matrix aus ihren Diagonalen
- 29. Python: Erstellen von Matrix durch elementweise Operationen auf numpy Arrays
- 30. Elementweise Matrixmultiplikation in NumPy
hast du tatsächlich 'np.absolute (spmat)'? –
Sie haben zwei Fragen gestellt, eine sehr spezifische und eine sehr allgemeine. Die Antwort auf die zweite hängt wahrscheinlich davon ab, wie allgemein die benutzerdefinierte Funktion ist, die Sie im Sinn haben. Könnten Sie noch ein paar Beispiele geben, was Sie tun möchten? –
@WarrenWeckesser Paul Panzer gibt beiden die Antwort. Meine benutzerdefinierten Funktionen hätten Nullen Nullen zugeordnet. –