scipy.io.

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 mmwrite aufrufen. 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)