当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy sparse.random用法及代码示例


本文简要介绍 python 语言中 scipy.sparse.random 的用法。

用法:

scipy.sparse.random(m, n, density=0.01, format='coo', dtype=None, random_state=None, data_rvs=None)#

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

警告

从 numpy 1.17 开始,为 random_state 传递 np.random.Generator (例如 np.random.default_rng )将导致执行时间更快。

为了向后兼容,默认使用慢得多的实现。

参数

m, n int

矩阵的形状

density 真实的,可选的

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

format str,可选

稀疏矩阵格式。

dtype dtype,可选

返回矩阵值的类型。

random_state {无,整数, numpy.random.Generator
  • 如果种子是无(或np.random), 这numpy.random.RandomState使用单例。

  • 如果种子是一个 int,一个新的RandomState使用实例,播种种子.

  • 如果种子已经是一个Generator或者RandomState实例然后使用该实例。

该随机状态将用于对稀疏结构进行采样,但不一定用于对矩阵的结构非零条目的值进行采样。

data_rvs 可调用的,可选的

对请求数量的随机值进行采样。这个函数应该接受一个参数,指定它将返回的 ndarray 的长度。稀疏随机矩阵的结构非零条目将从该函数采样的数组中获取。默认情况下,统一的 [0, 1) 随机值将使用与采样稀疏结构相同的随机状态进行采样。

返回

res 稀疏矩阵

例子

传递 np.random.Generator 实例以获得更好的性能:

>>> from scipy.sparse import random
>>> from scipy import stats
>>> from numpy.random import default_rng
>>> rng = default_rng()
>>> S = random(3, 4, density=0.25, random_state=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.]])

使用自定义发行版:

>>> class CustomDistribution(stats.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.        ]])

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.sparse.random。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。