random(m, n, density=0.01, format='coo', dtype=None, random_state=None, data_rvs=None)
Only float types are supported for now.
shape of the matrix
density of the generated matrix: density equal to one means a full matrix, density of 0 means a matrix with no non-zero items.
sparse matrix format.
type of the returned matrix values.
numpy.random.RandomState
}, optional
If seed
is None (or :None:None:`np.random`
), the numpy.random.RandomState
singleton is used. If seed
is an int, a new RandomState
instance is used, seeded with seed
. If seed
is already a Generator
or RandomState
instance then that instance is used. This random state will be used for sampling the sparsity structure, but not necessarily for sampling the values of the structurally nonzero entries of the matrix.
Samples a requested number of random values. This function should take a single argument specifying the length of the ndarray that it will return. The structurally nonzero entries of the sparse random matrix will be taken from the array sampled by this function. By default, uniform [0, 1) random values will be sampled using the same random state as is used for sampling the sparsity structure.
Generate a sparse matrix of the given shape and density with randomly distributed values.
>>> from scipy.sparse import random
... from scipy import stats
... from numpy.random import default_rng
... rng = default_rng()
... rvs = stats.poisson(25, loc=10).rvs
... S = random(3, 4, density=0.25, random_state=rng, data_rvs=rvs)
... S.A array([[ 36., 0., 33., 0.], # random [ 0., 0., 0., 0.], [ 0., 0., 36., 0.]])
>>> from scipy.sparse import randomSee :
... from scipy.stats import rv_continuous
... class CustomDistribution(rv_continuous):
... def _rvs(self, size=None, random_state=None):
... return random_state.standard_normal(size)
... X = CustomDistribution(seed=rng)
... Y = X() # get a frozen version of the distribution
... S = random(3, 4, density=0.25, random_state=rng, data_rvs=Y.rvs)
... S.A array([[ 0. , 0. , 0. , 0. ], # random [ 0.13569738, 1.9467163 , -0.81205367, 0. ], [ 0. , 0. , 0. , 0. ]])
The following pages refer to to this document either explicitly or contain code examples using this.
scipy.sparse._construct.random
scipy.sparse.csgraph._matching.min_weight_full_bipartite_matching
Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.
Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)
SVG is more flexible but power hungry; and does not scale well to 50 + nodes.
All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them