scipy.sparse.random

scipy.sparse.random(m, n, density=0.01, format='coo', dtype=None, random_state=None, data_rvs=None)[源代码]

生成具有随机分布值的给定形状和密度的稀疏矩阵。

参数
m, n集成

矩阵的形状

density真实,可选

生成矩阵的密度:密度等于1表示全矩阵,密度为0表示没有非零项的矩阵。

format字符串,可选

稀疏矩阵格式。

dtype数据类型,可选

返回的矩阵值的类型。

random_state :{无,整型, numpy.random.Generator{无,整型,

如果 seed 为无(或 np.random )、 numpy.random.RandomState 使用的是Singleton。如果 seed 是一个整型、一个新的 RandomState 实例,其种子设定为 seed 。如果 seed 已经是一个 GeneratorRandomState 实例,则使用该实例。该随机状态将用于采样稀疏结构,但不一定用于采样矩阵的结构非零条目的值。

data_rvs可调用,可选

对请求数量的随机值进行采样。此函数应该接受单个参数,指定它将返回的ndarray的长度。稀疏随机矩阵的结构非零项将取自由该函数采样的数组。默认情况下,均匀的[0,1]随机值将使用与采样稀疏结构相同的随机状态进行采样。

退货
res稀疏矩阵

注意事项

目前仅支持浮点类型。

示例

>>> 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 random
>>> 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.        ]])