创建有条件步长numpy数组



我试图将此代码转换为使用lambda和numpy的单行函数,该函数应该返回numpy数组,但我不知道如何保存每次迭代的步长值

import random
def generate_array(n: int):
step = 1
arr = []

for i in range(n):
step = step + 1 if random.choice([True, False]) else step - 1 
arr .append(step)
return arr
generate_array(10)

您可以首先使用np.random.choice创建差值数组,然后使用np.cumsum()累计求和每个项目:

np.cumsum(np.random.choice([1, -1], size=10))

最新更新