np.random.randn拒绝接受负面论点

时间:2018-08-25 22:09:55

标签: python numpy random valueerror

import numpy as np
a=[2,4,6,-1,4]
#b=[np.random.randn(0,2) for i in a[1:]]
#print(b)
b=[np.random.randn(x,y) for x, y in zip(a[1:], a[1:])]
print(b)

输出

ValueError                                Traceback (most recent call 
last)
<ipython-input-34-b2077da31d55> in <module>()
      3 #b=[np.random.randn(0,2) for i in a[1:]]
      4 #print(b)
----> 5 b=[np.random.randn(x,y) for x, y in zip(a[1:], a[1:])]
      6 b

<ipython-input-34-b2077da31d55> in <listcomp>(.0)
      3 #b=[np.random.randn(0,2) for i in a[1:]]
      4 #print(b)
----> 5 b=[np.random.randn(x,y) for x, y in zip(a[1:], a[1:])]
      6 b

mtrand.pyx in mtrand.RandomState.randn()

mtrand.pyx in mtrand.RandomState.standard_normal()

mtrand.pyx in mtrand.cont0_array()

ValueError: negative dimensions are not allowed

无论我给什么[[x1:x2]],错误都会不断抛出。

我想念的最明显的东西是什么?

我对numpy还是比较陌生,所以请不要介意这是否很基础。

1 个答案:

答案 0 :(得分:0)

根据numpy.Random.randn的文档

  

返回数组的维度应为正数。如果未指定任何参数,则返回单个Python浮点数。

您将控制数组尺寸的参数误认为随机数的上限和下限。由于数组不能具有负索引,因此不允许对数组的维数使用负数。

您不清楚您要完成的问题是什么,但似乎您想在上下边界之间使用随机数数组。相反,您当前的实现方式是创建一个2x2、4x4等的二维数组。