Python Numpy:从参数数组生成多个随机样本

Python Numpy:从参数数组生成多个随机样本,python,numpy,random,Python,Numpy,Random,我有三个参数数组,每个数组包含n个参数值。现在我需要使用相同的参数设置绘制m个独立的样本,我想知道是否有一种有效的方法来实现这一点 例如: p1 = [1, 2, 3, 4], p2 = [4,4,4,4], p3 = [6,7,7,5] 将生成一个样本,如下所示: np.random.triangular(left=p1, mode=p2, right=p3) 导致 [3, 6, 3, 4.5] 但我希望在一个单独的数据阵列中获得其中的m 当然,一个解决方案可以是启动一个大小为[n,m]

我有三个参数数组,每个数组包含n个参数值。现在我需要使用相同的参数设置绘制m个独立的样本,我想知道是否有一种有效的方法来实现这一点

例如:

p1 = [1, 2, 3, 4], p2 = [4,4,4,4], p3 = [6,7,7,5]
将生成一个样本,如下所示:

np.random.triangular(left=p1, mode=p2, right=p3)
导致

[3, 6, 3, 4.5]
但我希望在一个单独的数据阵列中获得其中的m

当然,一个解决方案可以是启动一个大小为[n,m]的样本数组,并使用循环填充每个列。然而,同时生成所有随机值通常更快,因此我想知道这是否可行

注:
添加参数'size=(n,m)'对数组值的参数值不起作用

严格来说,添加参数
size=(n,m)
确实不起作用。但是
size=(m,n)
可以

通常,在
numpy
大小中,行数排在第一位

>>> numpy.random.triangular(left=p1, mode=p2, right=p3, size=(10, 4))
array([[2.90526206, 3.90549642, 4.17820463, 4.49103927],
       [4.128539  , 5.64750789, 4.2343925 , 4.14951323],
       [4.55117141, 4.18380231, 4.94283228, 4.17310084],
       [3.7047425 , 6.19969199, 3.9318881 , 4.73317286],
       [5.0613046 , 4.88435654, 4.04345036, 4.41236136],
       [3.6946254 , 2.28868213, 4.29268451, 4.61406735],
       [4.26315216, 3.84219428, 4.79651309, 4.02510467],
       [3.1213574 , 3.87407067, 4.20976142, 4.11963155],
       [2.89005644, 4.43081604, 5.96604977, 4.0194683 ],
       [5.28800737, 3.80200832, 4.45966515, 4.46419704]])
这可以推广到以更复杂方式广播的阵列。下面是一个基于广播参数创建2x2x2数组的四个不同样本的示例。请再次注意,第一个值是样本数,其余值描述每个样本的形状:

>>> numpy.random.triangular(a[:, None, None],
...                         a[None, :, None] + 2,
...                         a[None, None, :] + 4,
...                         size=(4, 2, 2, 2))
array([[[[1.96335621, 1.88351682],
         [2.27347214, 3.23075503]],

        [[2.53612351, 2.33322979],
         [2.73651868, 2.7414705 ]]],


       [[[3.80046148, 3.83468891],
         [3.43258814, 3.33174839]],

        [[3.05200913, 4.47039698],
         [2.89013357, 1.99638614]]],


       [[[1.91325759, 2.64773446],
         [1.73132514, 3.47843725]],

        [[1.88526414, 2.86937885],
         [3.12001437, 1.58742945]]],


       [[[0.58692663, 1.08249125],
         [3.4744866 , 1.95300333]],

        [[1.72887756, 2.68527515],
         [1.95189437, 4.49416249]]]])

哦,天哪。非常感谢。