首页 > 解决方案 > 将两个 np.random.normal 分布数组与 for 循环相乘

问题描述

这是我上一个问题的扩展:我正在尝试为列表中的每个值创建一个正态分布,并使用 for 循环作为其 6,000 个数字。我的代码如下所示:

for x in data:
   r[x]=np.random.normal(data['value'],data['Standard Deviation'],100000)

我收到以下错误:

ValueError:形状不匹配:无法将对象广播到单个形状

我将代码更改为 StackOverflow 建议:

r = np.random.normal(data['value'], data['Standard Deviation'], (100000, len(data))).T

哪个运行成功。我现在正在尝试对这个分布数组和数据框中的其他列进行一些算术运算:

for y in data:
    y=(100000,len(data['value2']))

z= y*((1+r)**10)

并收到以下错误:操作数无法与形状(12,)(12,100000)一起广播

如果我获取每个数组的第一个值,代码运行良好:

z=y[0]*((1+r[0])**10)

但是如果我尝试在整个数组中运行它就不起作用。我的目标是获取 data['value2'] 并通过增长率 r 的正态分布数组来增长它。

感谢您的任何帮助!

标签: pythonarraysnumpyloopsnormal-distribution

解决方案


推荐阅读