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还是比较陌生,所以请不要介意这是否很基础。
答案 0 :(得分:0)
根据numpy.Random.randn的文档
返回数组的维度应为正数。如果未指定任何参数,则返回单个Python浮点数。
您将控制数组尺寸的参数误认为随机数的上限和下限。由于数组不能具有负索引,因此不允许对数组的维数使用负数。
您不清楚您要完成的问题是什么,但似乎您想在上下边界之间使用随机数数组。相反,您当前的实现方式是创建一个2x2、4x4等的二维数组。