[英]Create numpy array with conditional step
Im trying to convert this code into one-liner function using lambda and numpy, the function should return numpy array, but i dont know how to save the step value for each iteration我试图使用 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.cumsum(np.random.choice([1, -1], size=10))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.