我想用随机数乘以我的数组中的每个值。每次尝试迭代方法时,都会收到错误消息:'IndexError:index out of bounds'。 这里是我的代码:如何乘以随机数的数组
from physics import *
N = 3.0
x = ones(N)
for i in x:
x[i] = i * uniform(10)
numpy的存储在物理进口。
我已经这样做了,所以当我回来时,我可以通过更改N
的值来轻松地更改我阵列中的人数。
我想用随机数乘以我的数组中的每个值。每次尝试迭代方法时,都会收到错误消息:'IndexError:index out of bounds'。 这里是我的代码:如何乘以随机数的数组
from physics import *
N = 3.0
x = ones(N)
for i in x:
x[i] = i * uniform(10)
numpy的存储在物理进口。
我已经这样做了,所以当我回来时,我可以通过更改N
的值来轻松地更改我阵列中的人数。
除非你有使用physics
库,使用此代码:
>>> import random
>>> array = [1]*random.randint(1, 10)
>>> array
[1, 1, 1, 1, 1]
>>> for i, j in enumerate(array):
... array[i] = j*random.randint(1, 10)
...
>>> array
[3, 7, 5, 1, 2]
>>>
您的代码不工作,因为你正在做的for i in x
,这是分配给i
的x
每个值。而应将for i in x
更改为for i in range(0, len(x))
或for i in range(len(x))
。
在for-loop
i
始终为1。治疗i
作为x
指标,它应该range(len(x))
产生[0, 1, ... N-1]
from physics import *
N = 3.0
x = ones(N)
for i in range(len(x)):
x[i]=i*uniform(10)
也将被替换,你可以重写为
import numpy as np
x = np.random.uniform(0, 10, N) * np.arnage(N)
其中0
低,10
是高,N
是大小。
当我将其更改为范围(LEN(X)),它使我的原数组变成数组(0,1,2)当我仍然希望它保持一样。 – user3538196
既然你已经有一个可变长度,它只是
N = 10
x = numpy.ones(N)
x *= numpy.random.uniform(10, size=N)
我的目标是基本上产生一个N项的数组,每个项都有一个随机数。当我使用len(x)函数时,它会将我的阵列恢复到正常范围。 我想避免使用随机直接生成这个数组,因为我对生成的随机数的控制较少 – user3538196