我有下面的np.array
列表:
dataset = [np.random.normal(r_mean/(p*t), r_vol/t/np.sqrt(p), n) \
for t in rule]
我想把它转换成一个2Dnp.array
(即矩阵)。我可以使用np.asarray
,但是(我相信)它效率很低。你知道吗
而且,每个np.random.normal(r_mean/(p*t), r_vol/t/np.sqrt(p), n)
都是结果矩阵的一列,而不是一行(即,我必须转置np.asarray(dataset)
)。你知道吗
实现结果的最佳方法是什么?你知道吗
但是只有在您必须首先预计算
dataset
列表时才可以这样做。你知道吗否则使用发电机:
您可以使用广播创建
dataset
,只需调用numpy.random.normal
。不要使用列表理解,而是将rule
设为numpy数组,在表达式中有t
的地方使用它,并请求大小为(n, len(rule))
的示例:如果您不确定列是否与参数正确匹配,我们可以测试一个大样本:
创建
mu
和std
,这样我们就可以看到请求的平均值和标准偏差:生成数据:
这是我们要求的
mu
:下面是我们在样本中得到的:
以下是所需的标准偏差:
我们得到的是:
相关问题 更多 >
编程相关推荐