随机矩阵的Numpy数组

7

我是一名新手,想要使用Python/Numpy创建一个包含随机矩阵的数组。

目前为止,我的代码如下:

for i in xrange(samples):
    SPN[] = np.random.random((6,5)) * np.random.randint(0,100)

这对于我作为PHP开发人员是有意义的,但对于Python来说并不适用。那么我该如何创建一个包含这些矩阵/数组的三维数组呢?


这个循环怎么会在PHP中创建一个三维数组?什么是 SPN?一个空列表吗?如果是的话,尝试使用 SPN.append(np.random....) - tobias_k
在 PHP 中,不带索引的 SPN[]。我尚未定义 SPN,但它应该是一个数组。 - Jorge Zapata
1个回答

18

像大多数np.random函数一样,np.random.randintnp.random.uniform都接受一个size参数,因此在numpy中我们可以一步完成:

>>> SPN = np.random.randint(0, 100, (3, 6, 5))
>>> SPN
array([[[45, 95, 56, 78, 90],
        [87, 68, 24, 62, 12],
        [11, 26, 75, 57, 12],
        [95, 87, 47, 69, 90],
        [58, 24, 49, 62, 85],
        [38,  5, 57, 63, 16]],

       [[61, 67, 73, 23, 34],
        [41,  3, 69, 79, 48],
        [22, 40, 22, 18, 41],
        [86, 23, 58, 38, 69],
        [98, 60, 70, 71,  3],
        [44,  8, 33, 86, 66]],

       [[62, 45, 56, 80, 22],
        [27, 95, 55, 87, 22],
        [42, 17, 48, 96, 65],
        [36, 64,  1, 85, 31],
        [10, 13, 15,  7, 92],
        [27, 74, 31, 91, 60]]])
>>> SPN.shape
(3, 6, 5)
>>> SPN[0].shape
(6, 5)

实际上,看起来你可能想要使用 np.random.uniform(0, 100, (samples, 6, 5)),因为你想要的元素是浮点数,而不是整数。好吧,它的工作方式是一样的。 :^)


请注意,你所做的事情并不等同于np.random.uniform,因为你选择的是介于0和1之间的值数组,然后将它们全部乘以一个固定整数。我假设这实际上并不是你想要做的,因为这有点不寻常;如果这就是你想要的,请评论说明。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接