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

# rand

scipy.sparse.rand(m, n, density=0.01, format='coo', dtype=None, rng=None)

  Generate a sparse matrix of the given shape and density with uniformly distributed values.

  Warning

  This function returns a sparse matrix – not a sparse array. You are encouraged to use `random_array` to take advantage of the sparse array functionality.

  Parameters:
    m, n int

      shape of the matrix

    density real, optional

      density of the generated matrix: density equal to one means a full matrix, density of 0 means a matrix with no non-zero items.

    format str, optional

      sparse matrix format.

    dtype dtype, optional

      type of the returned matrix values.

    rng{None, int, `numpy.random.Generator`}, optional

      If rng is passed by keyword, types other than `numpy.random.Generator` are passed to `numpy.random.default_rng` to instantiate a `Generator`. If rng is already a `Generator` instance, then the provided instance is used. Specify rng for repeatable function behavior.

      If this argument is passed by position or random_state is passed by keyword, legacy behavior for the argument random_state applies:

      - If random_state is None (or `numpy.random`), the `numpy.random.RandomState` singleton is used.

      - If random_state is an int, a new `RandomState` instance is used, seeded with random_state.

      - If random_state is already a `Generator` or `RandomState` instance then that instance is used.

      Changed in version 1.15.0: As part of the SPEC-007 transition from use of `numpy.random.RandomState` to `numpy.random.Generator`, this keyword was changed from random_state to rng. For an interim period, both keywords will continue to work, although only one may be specified at a time. After the interim period, function calls using the random_state keyword will emit warnings. The behavior of both random_state and rng are outlined above, but only the rng keyword should be used in new code.

  Returns:
    res sparse matrix

  See also

  `random`

    Similar function allowing a custom random data sampler

  `random_array`

    Similar to random() but returns a sparse array

  Notes

  Only float types are supported for now.

  Examples

      >>> from scipy.sparse import rand
      >>> matrix = rand(3, 4, density=0.25, format="csr", rng=42)
      >>> matrix
      <Compressed Sparse Row sparse matrix of dtype 'float64'
          with 3 stored elements and shape (3, 4)>
      >>> matrix.toarray()
      array([[0.05641158, 0.        , 0.        , 0.65088847],  # random
             [0.        , 0.        , 0.        , 0.14286682],
             [0.        , 0.        , 0.        , 0.        ]])