{ } Raw JSON

bundles / scipy 1.17.1 / scipy / io / _fast_matrix_market / mmwrite

function

scipy.io._fast_matrix_market:mmwrite

source: /scipy/io/_fast_matrix_market/__init__.py :376

Signature

def   mmwrite ( target a comment = None field = None precision = None symmetry = AUTO )

Summary

Writes the sparse or dense array a to Matrix Market file-like target.

Parameters

target : str or file-like

Matrix Market filename (extension .mtx) or open file-like object.

a : array like

Sparse or dense 2-D array.

comment : str, optional

Comments to be prepended to the Matrix Market file.

field : None or str, optional

Either 'real', 'complex', 'pattern', or 'integer'.

precision : None or int, optional

Number of digits to display for real or complex values.

symmetry : None or str, optional

Either 'AUTO', 'general', 'symmetric', 'skew-symmetric', or 'hermitian'. If symmetry is None the symmetry type of 'a' is determined by its values. If symmetry is 'AUTO' the symmetry type of 'a' is either determined or set to 'general', at mmwrite's discretion.

Returns

: None

Notes

Examples

from io import BytesIO
import numpy as np
from scipy.sparse import coo_array
from scipy.io import mmwrite
Write a small NumPy array to a matrix market file. The file will be written in the ``'array'`` format.
a = np.array([[1.0, 0, 0, 0], [0, 2.5, 0, 6.25]])
target = BytesIO()
mmwrite(target, a)
print(target.getvalue().decode('latin1'))
Add a comment to the output file, and set the precision to 3.
target = BytesIO()
mmwrite(target, a, comment='\n Some test data.\n', precision=3)
print(target.getvalue().decode('latin1'))
Convert to a sparse matrix before calling ``mmwrite``. This will result in the output format being ``'coordinate'`` rather than ``'array'``.
target = BytesIO()
mmwrite(target, coo_array(a), precision=3)
print(target.getvalue().decode('latin1'))
Write a complex Hermitian array to a matrix market file. Note that only six values are actually written to the file; the other values are implied by the symmetry.
z = np.array([[3, 1+2j, 4-3j], [1-2j, 1, -5j], [4+3j, 5j, 2.5]])
z
target = BytesIO()
mmwrite(target, z, precision=2)
print(target.getvalue().decode('latin1'))
This method is threaded. The default number of threads is equal to the number of CPUs in the system. Use `threadpoolctl <https://github.com/joblib/threadpoolctl>`_ to override:
import threadpoolctl
target = BytesIO()
with threadpoolctl.threadpool_limits(limits=2):
    mmwrite(target, a)

Aliases

  • scipy.io.mmwrite

Referenced by

This package