python - 使用条件步骤创建 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))
推荐阅读
- typescript - 无法在 ECS 计划任务 (aws-cdk) 中使用现有日志组
- r - 对使用仅应用于数字列的 mutate 和 rollmean 函数在 R 中有效地创建新列感到困惑
- python - 避免包重新上传到 PyPI
- react-native - 检测 react-router-native 中的路由变化
- python - 应用引用多列的 groupby 的最快最有效方法
- python - 每当我在“基本”环境中启动 Anaconda Prompt 时,有关 VSINSTALLDIR 和 vs2019 的长错误消息
- postgresql - TypeORM - 从现有实体生成迁移
- node.js - NodeJS - 如果请求来自特定的 URL 或主机,则表示接受请求
- apache-spark - 如何在 Spark 中从多个不同格式的文件创建一个 DataFrame?
- powerbi-desktop - POWER BI - 每个图像的不同工具提示