我想用隨機數乘以我的數組中的每個值。每次嘗試迭代方法時,都會收到錯誤消息:'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