我正在尝试在x的值之间创建大小相等的样本,其中x的值大于或等于0.45:
x
array([ 0. , 0.05, 0.1 , 0.15, 0.2 , 0.25, 0.3 , 0.35, 0.4 ,
0.45, 0.5 , 0.55, 0.6 , 0.65, 0.7 , 0.75, 0.8 , 0.85,
0.9 , 0.95])
x2=x[x>=0.45]
sample=np.array([np.arange(0,x2[i],x2[i]*0.1) for i in xrange(x2)])
或
sample=[]
for i in xrange(x2):
sample.append(np.arange(0.0,x2[i],x2[i]*0.1))
但我每次都会收到以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: only length-1 arrays can be converted to Python scalars
当我尝试使用x的单个值时,即对于循环的一个实例,它可以工作。似乎Python只期望在&#39; sample&#39;而不是一堆数组。不知道如何解决这个问题。
答案 0 :(得分:1)
首先,我猜你可以使用numpy内置的东西(即np.linspace
或类似的东西)解决任务。
其次,你的实际问题是电话
xrange(x2)
xrange
需要一个整数,因此numpy尝试转换x2
,因为它是一个不起作用的数组。我想你想写
xrange(len(x2))