问题标签 [numpy-random]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
65 浏览

python - 在序列开始重复之前,可以使用 numpy.random 生成的最大伪随机数是多少?

我需要为聚类分析生成数亿个随机数。我正在使用 numpy.random 并且想知道是否有人知道在序列开始重复之前可以使用 numpy.random 生成的最大伪随机数?快速浏览一下 numpy 文档并没有帮助。

我知道我可以使用不同的种子生成块中的数字,但我对最大数字感到好奇。

0 投票
2 回答
2788 浏览

python - 如何在多核上使用 RandomState 和 Sklearn RandomizedSearchCV

在多核上运行时,我对使用np.random.RandomStatewith的正确方法感到困惑。sklearn.model_selection.RandomizedSearchCV

RandomState用来生成伪随机数,以便我的结果是可重现的。我给出RandomizedSearchCV一个实例RandomState并设置n_jobs=-1它使用所有六个核心。

在多核上运行引入了异步元素。我预计这将导致来自不同内核的伪随机数请求在不同的运行中以不同的顺序发出。因此,不同的运行应该给出不同的结果,而不是显示再现性。

但实际上结果是可重现的。对于给定的值n_iter(即,从参数空间中抽取的次数),找到的最佳超参数值从一次运行到下一次运行都是相同的。n_jobs如果是小于核心数的正数,我也会得到相同的值。

具体来说,这里是代码:

我有几个问题。

  1. 尽管有异步方面,为什么我得到可重现的结果?

  2. 关于参数的文档RandomizedSearchCVrandom_state:“伪随机数生成器状态用于从可能值列表而不是 scipy.stats 分布中随机均匀抽样。” 这是否意味着它不会影响参数空间中的分布?上面的代码是否足以确保可重复性,或者我需要设置np.random.seed(),或者可能写这样的东西:

    /li>
  3. 总的来说,这是设置RandomizedSearchCV重现性的正确方法吗?

  4. RandomState是使用ok的单个实例,还是应该为train_test_splitGradientBoostingClassifierStratifiedKFold和使用单独的实例RandomizedSearchCV?此外,文档np.random.seed说种子是在RandomState初始化时设置的。这与RandomizedSearchCV设置种子有何相互作用?

  5. n_jobs设置为使用少于所有核心时,我仍然可以看到所有核心上的活动,尽管每个核心的使用水平会随着核心数量的增加而增加并且经过的时间会减少。这只是 sklearn 和/或 macOS 优化机器使用吗?

我正在使用 macOS 10.14.2、Python 3.6.7、Numpy 1.15.4、Scipy 1.1.0 和 Sklearn 0.20.1。

0 投票
2 回答
108 浏览

python - 为什么这段代码在 for 循环中只使用 x 而不是 x 和 y?

为什么他们只在 for 循环中使用 X 而不是 X 和 Y?为什么我们使用 1, -1 的 reshape?

0 投票
0 回答
26 浏览

python - 如何修复错误:mtrand.RandomState.choice 模块的“ValueError:‘a’和‘p’必须具有相同的大小”?

我正在实施一种算法来解决 8 皇后问题:https ://en.wikipedia.org/wiki/Eight_queens_puzzle

我在尝试遍历种群并通过交叉创建新种群时遇到了问题。问题出在 numpy.random 的选择函数内部。

我的意图是分配populationnewPopulation(第 50 行),为空newPopulation(第 53 行),然后下一次迭代将新的 100 个孩子附加到newPopulation.

它抱怨输入到choice() 的列表的大小不同,即使我在循环之前打印每个右侧的len() 并且它显示它们都是100?

完全错误:

这是我的程序:

我认为这可能是因为我将 normalFitness 列表分配给了一个空列表,而不是使用 del。如果我将第 53 行更改为:del normalFitness[:]它具有相同的行为。

如果需要,这是 QueensState 代码:

任何想法都非常感谢!

谢谢你。

0 投票
1 回答
67 浏览

python - 如何在 ufunc 中使用 numpy 的随机数生成器?

基本上我有一个需要一些随机性的 ufunc。为了使 ufunc 尽可能地重现,我想为此使用 numpy 的随机数生成器;基本上是因为这样设置种子会更直观。

但是我找不到 numpy.random C-API 的文档(有吗?)。

我目前的方法是这样的:

0 投票
2 回答
2537 浏览

python - 将列表拆分为 n 个随机大小的块

我正在尝试将一个列表拆分为 n 个子列表,其中每个子列表的大小是随机的(至少有一个条目;假设P>I)。我使用了 numpy.split 函数,它工作正常,但不满足我的随机性条件。您可能会问随机性应该遵循哪种分布。我想,应该没关系。我检查了几篇不等同于我的帖子的帖子,因为它们试图用几乎相同大小的块进行拆分。如果重复,请告诉我。这是我的方法:

P当不能被 整除时,这种方法就失效了I。此外,它创建大小相等的块,而不是概率大小的块。另一个限制:我不想使用这个包random,但我对numpy. 不要问我为什么;我希望我有一个合乎逻辑的回应。

根据疯狂科学家提供的答案,这是我尝试的代码:

输出:

0 投票
0 回答
222 浏览

python - 图像的加性泊松噪声

我编写了一个函数来使用 numpy 向图像添加泊松噪声np.random.poisson(..)。图像已经是 numpy 数组形式,使用灰度(0-255)。如果为 numpy 函数提供像素值作为分布的速率或在所有图像上使用设定值更具有物理意义,我正在徘徊。

在第一种情况下,函数将表示为:

在第二:

在第一种情况下,具有较高灰度值(较亮)的像素将更多地受到噪声的影响,这有什么物理解释吗?

谢谢!

0 投票
2 回答
83 浏览

python - 如果可能,如何将函数参数用作 npy 方法

我正在尝试创建一个函数,它将一个 numpy dstr 名称作为参数并绘制来自该分布的随机数据点的直方图。

如果它仅适用于需要 1 个参数的 npy 发行版,那就可以了。只是真的坚持尝试创建 np.random.distribution()... \

0 投票
1 回答
341 浏览

python-3.x - 如何使用 numpy 有效地执行数十亿次伯努利提取?

我正在写一篇关于流行病学的论文,我必须在时间网络中模拟 SI 流行病。在每个时间步,都有一个概率 ~ Bernoulli(beta) 在受感染节点和易感节点之间执行提取。我正在使用 np.random.binomial(size=whatever, n=1, p=beta) 让计算机做出决定。现在,我必须从每个节点开始,在同一个网络中模拟流行病。这应该重复 K 次以获得每个节点的一些统计相关结果,并且由于时间网络也是随机的,所以一切都应该重复 NET_REALIZATION 次。

因此,在 N = 100 的网络中,如果 K=500 且 NET=REALIZATION=500,则该流行病应该重复 25,000,000 次。如果 T=100,则意味着每组 SI 对有 2,500,000,000 次提取(当然随时间变化)。如果 beta 很小(通常是这种情况),这会导致计算非常耗时。如果你认为,对于我的电脑来说,伯努利提取需要 3.63 µs,这意味着我必须等待几个小时才能得到一些结果,这确实限制了我的论文的发展。问题是超过一半的时间都花在了随机抽取上。我应该使用 numpy,因为提取的结果与其他数据结构交互。我尝试使用 numba,但它似乎并没有提高提取速度。有没有更快的方法来获得相同的结果?我正在考虑永远做一次非常大的提取,比如 0 和 1 的 10 ^ 12 次提取,然后为每个不同的模拟导入其中的一部分(这应该针对几个 beta 值重复),但我想知道如果有更聪明的举动。

感谢帮助

0 投票
2 回答
53 浏览

python - 在 az 大小数组中随机将 x 值更改为 y

python 新手,想知道是否可以使用 python 和 numpy 完成上述操作。我有一个大小为 10 的数组,我想将 6 个随机值从它们的当前值更改为我设置的其他值。有没有办法在 numpy 中做到这一点?