使用Numpy生成N维矩阵

时间:2019-11-24 15:31:19

标签: python numpy multidimensional-array random probability

对于某些分配,我必须在N个随机变量上创建一个多元离散概率质量函数。我想通过创建一个填充有随机数的数组A来做到这一点,其中每个元素表示随机变量的联合概率。对于2个随机变量,分别具有ij个可能的值,可以通过创建一个(i*j) Numpy数组来填充随机数,总和= 1。 >

但是,当引入具有k个可能值的附加随机变量时,将变得更加困难。在这种情况下,我需要有一个i*j*k的Numpy数组,再次用总和等于1的随机数填充。

假设我得到的结构(每个随机变量的可能值数量)为列表[n1,n2,...,nN],从这里如何创建这样的N维Numpy数组?

2 个答案:

答案 0 :(得分:2)

如果l是尺寸列表,则可以

a = np.random.random(size=l)
a = a/a.sum()

答案 1 :(得分:1)

我找到了以下解决方案:

def randomArray(structure):
    rand_array = np.random.randint(0, 100, size=(structure))
    my_sum = np.sum(rand_array)
    return rand_array/my_sum

其中structure是上述问题中定义的列表。