mmwrite#
- scipy.io.mmwrite(target, a, comment=None, field=None, precision=None, symmetry='AUTO')[Quelle]#
Schreibt das Sparse- oder dichte Array a in eine Matrix Market-Datei-ähnliche target.
- Parameter:
- targetstr oder dateiähnliches Objekt
Matrix Market-Dateiname (Erweiterung .mtx) oder geöffnetes dateiähnliches Objekt.
- aarray-ähnlich
Sparse oder dichte 2D-Array.
- commentstr, optional
Kommentare, die der Matrix Market-Datei vorangestellt werden.
- fieldNone oder str, optional
Entweder 'real', 'complex', 'pattern' oder 'integer'.
- precisionNone oder int, optional
Anzahl der anzuzeigenden Ziffern für reelle oder komplexe Werte.
- symmetryNone oder str, optional
Entweder 'AUTO', 'general', 'symmetric', 'skew-symmetric' oder 'hermitian'. Wenn symmetry None ist, wird der Symmetrietyp von 'a' anhand seiner Werte bestimmt. Wenn symmetry 'AUTO' ist, wird der Symmetrietyp von 'a' entweder bestimmt oder nach Ermessen von mmwrite auf 'general' gesetzt.
- Rückgabe:
- None
Hinweise
Geändert in Version 1.12.0: C++-Implementierung.
Beispiele
>>> from io import BytesIO >>> import numpy as np >>> from scipy.sparse import coo_array >>> from scipy.io import mmwrite
Schreibt ein kleines NumPy-Array in eine Matrix Market-Datei. Die Datei wird im Format
'array'geschrieben.>>> a = np.array([[1.0, 0, 0, 0], [0, 2.5, 0, 6.25]]) >>> target = BytesIO() >>> mmwrite(target, a) >>> print(target.getvalue().decode('latin1')) %%MatrixMarket matrix array real general % 2 4 1 0 0 2.5 0 0 0 6.25
Fügt einen Kommentar zur Ausgabedatei hinzu und setzt die Präzision auf 3.
>>> target = BytesIO() >>> mmwrite(target, a, comment='\n Some test data.\n', precision=3) >>> print(target.getvalue().decode('latin1')) %%MatrixMarket matrix array real general % % Some test data. % 2 4 1.00e+00 0.00e+00 0.00e+00 2.50e+00 0.00e+00 0.00e+00 0.00e+00 6.25e+00
Konvertieren Sie es in eine sparse Matrix, bevor Sie
mmwriteaufrufen. Dies führt dazu, dass das Ausgabeformat'coordinate'und nicht'array'ist.>>> target = BytesIO() >>> mmwrite(target, coo_array(a), precision=3) >>> print(target.getvalue().decode('latin1')) %%MatrixMarket matrix coordinate real general % 2 4 3 1 1 1.00e+00 2 2 2.50e+00 2 4 6.25e+00
Schreibt ein komplexes hermitisches Array in eine Matrix Market-Datei. Beachten Sie, dass nur sechs Werte tatsächlich in die Datei geschrieben werden; die anderen Werte ergeben sich aus der Symmetrie.
>>> z = np.array([[3, 1+2j, 4-3j], [1-2j, 1, -5j], [4+3j, 5j, 2.5]]) >>> z array([[ 3. +0.j, 1. +2.j, 4. -3.j], [ 1. -2.j, 1. +0.j, -0. -5.j], [ 4. +3.j, 0. +5.j, 2.5+0.j]])
>>> target = BytesIO() >>> mmwrite(target, z, precision=2) >>> print(target.getvalue().decode('latin1')) %%MatrixMarket matrix array complex hermitian % 3 3 3.0e+00 0.0e+00 1.0e+00 -2.0e+00 4.0e+00 3.0e+00 1.0e+00 0.0e+00 0.0e+00 5.0e+00 2.5e+00 0.0e+00
Diese Methode ist mit Threads versehen. Die Standardanzahl von Threads entspricht der Anzahl der CPUs im System. Verwenden Sie threadpoolctl zum Überschreiben
>>> import threadpoolctl >>> >>> target = BytesIO() >>> with threadpoolctl.threadpool_limits(limits=2): ... mmwrite(target, a)