This is a pre-release version (2.0.0.dev0+git20260907.41eeb59).Go to latest (1.18.0)
{ } Raw JSON

bundles / scipy 2.0.0.dev0+git20260907.41eeb59 / scipy / io / _mmio / mmwrite

function

scipy.io._mmio:mmwrite

source: build-install/usr/lib/python3.14/site-packages/scipy/io/_mmio.py:149

Signature

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

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 'general', 'symmetric', 'skew-symmetric', or 'hermitian'. If symmetry is None the symmetry type of 'a' is determined by its values.

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'))
✗
%%MatrixMarket matrix array real general
%
2 4
1
0
0
2.5
0
0
0
6.25

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'))
✗
%%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

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'))
✗
%%MatrixMarket matrix coordinate real general
%
2 4 3
1 1 1.00e+00
2 2 2.50e+00
2 4 6.25e+00

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
✓
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

Aliases

  • scipy.io._mmio.mmwrite