gpt4 book ai didi

python - 从 0 到 99 的 Numpy 随机数组,包括两者

转载 作者:行者123 更新时间:2023-12-04 07:51:33 24 4
gpt4 key购买 nike

我正在尝试创建一个大小为 (80,10) 的 np 数组,因此每行都有范围为 0 到 99 的随机值。
我已经做到了

np.random.randint(99, size=(80, 10))
但我想始终在每一行中都包含 0 和 99 作为值。
所以每行中的两个值已经定义,另外 8 个将是随机的。
我将如何做到这一点?有没有办法生成一个数组大小 (80,8) 并将 [0,99] 连接到每一行以使其最后成为 (80,10)?

最佳答案

正如 Tim 在评论中所建议的,您可以生成一个不包括 0 的随机值矩阵。和 99 .然后用值 0 替换沿第二个轴的两个随机索引和 99 .

rand_arr = np.random.randint(low=1, high=98, size=(80, 10))
rand_indices = np.random.rand(80,10).argsort(axis=1)[:,:2]
np.put_along_axis(rand_arr, rand_indices, [0,99], axis=1)
使用动机 argsort是我们想要沿第二个轴的随机索引而无需替换。只需使用 size=(80,2) 生成值 0-10 的随机整数矩阵不会保证这一点。
在你的场景中,你可以做 np.argpartionkth=2而不是 np.argsort .这应该更有效率。

关于python - 从 0 到 99 的 Numpy 随机数组,包括两者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66946748/

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