gpt4 book ai didi

python - 随机 Numpy 数组的逐元素种子

转载 作者:行者123 更新时间:2023-11-28 22:36:10 25 4
gpt4 key购买 nike

我正在尝试生成可能较大的 float 组 (0.0-1.0),但每个元素都由一个种子数组驱动,由整数组成,表示一个 id。

例如,我有这两个数组:

seedArray1 = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
seedArray2 = np.array([0, 1, 2, 3, 4, 5])

我希望能够将这些数组用作种子,但是两个数组中的元素相同(无论数组长度的形状如何,或者该 id 恰好出现在数组中) ,它应该生成相同的 float ,如下所示:

[ 0.5488135 0.417022 0.4359949 0.5507979 0.96702984 0.22199317 0.89286015 0.07630829 0.8734294 0.01037415]
[ 0.5488135 0.417022 0.4359949 0.5507979 0.96702984 0.22199317]

但是,当我尝试设置 numpy.random 的随机种子时,我得到了不同的结果:

import numpy as np

x1 = np.arange(10)
x2 = np.arange(6)

np.random.seed(x1)
print np.random.rand(x1.shape[0])

np.random.seed(x2)
print np.random.rand(x2.shape[0])

打印:

[ 0.41060638  0.23192123  0.91382737  0.02916066  0.91437242  0.51045425 0.26140116  0.16574922  0.08861477  0.31908955]
[ 0.52500897 0.98236732 0.99371835 0.14121932 0.66945133 0.24223304]

有没有办法生成随机 numpy 数组,使用每个元素作为种子,并且仍然利用 numpy 的速度?

最佳答案

不是真的,不是。 PRNG 旨在从单个种子输出许多数字流,numpy.random 的 API 就是围绕此设计的。如果您出于某种原因需要在 [0, 1) 中从整数到 float 的任意、可重复映射,您当然可以自己执行循环。可能还有其他这样的映射会更容易和更快地使用。

y = [np.random.RandomState(seed).rand() for seed in seed_array]

关于python - 随机 Numpy 数组的逐元素种子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37681954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com