numpy.random.rand没有给我正确的形状

时间:2017-09-05 22:59:43

标签: python arrays numpy

我正在尝试获得一个看起来像这样的3 x 3数组:

[
    [ 0.76720544  0.1254068   0.08350556],
    [-0.265288   -0.28945529 -0.57703701],
    [ 0.12194653 -0.3044894   0.46754351]
]

使用numpy.random.rand(3 * 3) - 0.5,但我获得了一个如下所示的1 x 9数组:

[ 0.2221102, -0.25766852, -0.04060757, 0.23138759, 0.4081494, -0.1911101, 0.1737616, 0.19768079, 0.28941601]

2 个答案:

答案 0 :(得分:1)

您需要numpy.random.rand(3, 3),而不是numpy.random.rand(3 * 3)rand将输出的维度作为单独的位置参数。

请记住,Python会评估进入函数的参数,因此对numpy.random.rand(3 * 3)唯一可能的解释是它与numpy.random.rand(9)相同,这就是你得到的:一个 - 长度为9的维数组。

答案 1 :(得分:0)

正确用法是:

numpy.random.rand(3,3) - 0.5  # , as seperator between dimension-sizes!

查看rand的文档。

签名上写着:

  

numpy.random.rand(d0,d1,...,dn)