我試圖運行下面的代碼。對於那些瞭解它的人來說,這是Ehrenfest Urn模擬的嘗試。陣列/矩陣操作出錯
import numpy as np
import random
C=5
L=2
# Here I create a matrix to be filled with zeros and after with numbers I want
b=np.zeros((L,C)) # line x column
A=[] # here I creat 2 lists to put random integer numbers on it
B=[]
i=1
while i<=10: # here I am filling list A (only) with 10 numbers
A.append(i)
i=i+1
for j in range(2):
for i in range(5): #here I want to choose random numbers between 1 and 10,
Sort=random.randint(1,10)
if i==0: # since there is no number on B, the first step, the number goes to B
B.append(Sort)
A.remove(Sort)
print(len(A))
if i>0: # now each list A and B have numbers on it, so I will choose one number and see in which list it is
if Sort in A:
B.append(Sort)
A.remove(Sort)
else:
A.append(Sort)
B.remove(Sort)
i=i+1
b[j,i]=len(A) # here I want to add the lenght of the list A in a matrix, but then I get the error.
j=j+1
print(b)
,但我得到了以下錯誤:
Traceback (most recent call last):
File "<ipython-input-26-4884a3da9648>", line 1, in <module>
runfile('C:/Users/Public/Documents/Python Scripts/33.py', wdir='C:/Users/Public/Documents/Python Scripts')
File "C:\Program Files\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
execfile(filename, namespace)
File "C:\Program Files\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/Public/Documents/Python Scripts/33.py", line 42, in <module>
b[j,i]=len(A) # here I want to add the lenght of the list A in a matrix
IndexError: index 5 is out of bounds for axis 1 with size 5
我在做什麼錯的陣列? 與矩陣中的數字標識有什麼關係?
一個明顯的問題是您的名單A []將有11個插槽,而不是10個(包括零);你對此有過解釋嗎? –
是的,我確實檢查了=)但我不知道問題出在哪裏 –
我相信Hpauji的答案應該可以工作 –