gpt4 book ai didi

python - 用随机数填充的 Numpy 数组,这样您只能沿 x/y 轴将值更改 1

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

我知道如何创建一个充满随机数的 numpy 数组,例如:np.random.randint(0, 100, (5, 5))

但是如何创建一个充满随机数的 numpy 数组,使两个相邻单元格之间的差异小于或等于 1?

谢谢

最佳答案

每一行都可以相差 1。因此生成一个差值数组:

In [83]: H, W = 5, 5

In [84]: np.random.randint(-1, 2, size=(H,1))
Out[84]:
array([[ 1],
[-1],
[-1],
[-1],
[ 0]])

现在求累计和:

In [85]: np.add.accumulate([[ 1], [-1], [-1], [-1], [ 0]])
Out[85]:
array([[ 1],
[ 0],
[-1],
[-2],
[-2]])

同样,每列可以相差 1。因此再次生成一个差值数组,并找到累计和:

In [86]: np.add.accumulate(np.random.randint(-1, 2, size=(1,W)), axis=1)
Out[86]: array([[1, 1, 2, 1, 1]])

现在将这两个累加和相加。广播创建一个二维数组:

import numpy as np

H, W = 5, 5
x = np.add.accumulate(np.random.randint(-1, 2, size=(H,1)), axis=0)
y = np.add.accumulate(np.random.randint(-1, 2, size=(1,W)), axis=1)
out = x + y
print(out)

打印一个随机数组,例如

[[ 1  0 -1  0 -1]
[ 2 1 0 1 0]
[ 3 2 1 2 1]
[ 3 2 1 2 1]
[ 2 1 0 1 0]]

您可以向该数组添加常量以生成具有相同属性的其他随机数组。

关于python - 用随机数填充的 Numpy 数组,这样您只能沿 x/y 轴将值更改 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31675603/

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