Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Numpy生成N维矩阵_Python_Numpy_Multidimensional Array_Random_Probability - Fatal编程技术网

Python 使用Numpy生成N维矩阵

Python 使用Numpy生成N维矩阵,python,numpy,multidimensional-array,random,probability,Python,Numpy,Multidimensional Array,Random,Probability,对于某个赋值,我必须在N随机变量上创建一个多元离散概率质量函数。我想通过创建一个数组A来实现这一点,其中每个元素表示随机变量的联合概率。如果有两个随机变量,分别具有i和j可能的值,可以通过创建一个(i*j)Numpy数组来完成,该数组中填充了随机数,其中总和=1 然而,当引入具有k可能值的额外随机变量时,这变得更加困难。在这种情况下,我需要一个I*j*kNumpy数组,再次填充随机数,其中总和等于1 假设我被赋予结构(每个随机变量的可能值的数量)作为一个列表[n1,n2,…,nN],我如何从这里

对于某个赋值,我必须在
N
随机变量上创建一个多元离散概率质量函数。我想通过创建一个数组
A
来实现这一点,其中每个元素表示随机变量的联合概率。如果有两个随机变量,分别具有
i
j
可能的值,可以通过创建一个
(i*j)
Numpy数组来完成,该数组中填充了随机数,其中总和=1

然而,当引入具有
k
可能值的额外随机变量时,这变得更加困难。在这种情况下,我需要一个
I*j*k
Numpy数组,再次填充随机数,其中总和等于1


假设我被赋予结构(每个随机变量的可能值的数量)作为一个列表
[n1,n2,…,nN]
,我如何从这里创建这样一个
N
维Numpy数组

我找到了以下解决方案:

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

其中,
结构
是上述问题中定义的列表

我找到了以下解决方案:

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

其中,
结构
是上述问题中定义的列表

如果
l
是您的维度列表,您可以让

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

如果
l
是您的维度列表,您可以让

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

你做了什么?给我们看看密码你做了什么?给我们看看代码