Skip to main content
`Ctrl`+`K`
scipy.io.

# mmread

scipy.io.mmread(source, *, spmatrix=<object object>)

  Reads the contents of a Matrix Market file-like ‘source’ into a matrix.

  Parameters:
    source str or file-like

      Matrix Market filename (extensions .mtx, .mtz.gz) or open file-like object.

    spmatrix bool, optional (default: True)

      If `True`, return sparse matrix. Otherwise return sparse array.

      Deprecated since version 1.18.0: The default value for spmatrix is changing to False in v1.20. That means the default return value will be a sparse array. Unless you use * instead of @, ** for matrix power, or you depend on 2D shapes from e.g. `A.sum(axis=0)` it may not matter to you. See Migration from spmatrix to sparray.

  Returns:
    a ndarray or coo_array

      Dense or sparse array depending on the matrix format in the Matrix Market file.

  Notes

  Changed in version 1.12.0: C++ implementation.

  Examples

      >>> from io import StringIO
      >>> from scipy.io import mmread

      >>> text = '''%%MatrixMarket matrix coordinate real general
      ...  5 5 7
      ...  2 3 1.0
      ...  3 4 2.0
      ...  3 5 3.0
      ...  4 1 4.0
      ...  4 2 5.0
      ...  4 3 6.0
      ...  4 4 7.0
      ... '''

  `mmread(source)` returns the data as sparse array in COO format.

      >>> m = mmread(StringIO(text), spmatrix=False)
      >>> m
      <COOrdinate sparse array of dtype 'float64'
          with 7 stored elements and shape (5, 5)>
      >>> m.toarray()
      array([[0., 0., 0., 0., 0.],
             [0., 0., 1., 0., 0.],
             [0., 0., 0., 2., 3.],
             [4., 5., 6., 7., 0.],
             [0., 0., 0., 0., 0.]])

  This method is threaded. The default number of threads is equal to the number of CPUs in the system. Use threadpoolctl to override:

      >>> import threadpoolctl
      >>>
      >>> with threadpoolctl.threadpool_limits(limits=2):
      ...     m = mmread(StringIO(text), spmatrix=False)