【发布时间】:2022-01-01 22:38:12
【问题描述】:
在我的循环中,我需要输出三个不同的变量,A,V 和 Alpha 的平均值。在我只为每个值获取一个值之前,但通过使用 append 函数解决了这个问题。
An=np.array([51,101,201,301,501])#No. agents
t=10#time steps
MM=3#agent memory
r=5#repetitions
A=np.array([])
V=np.array([])
Alpha=np.array([])
Vav=np.array([])
for agentcount in np.arange(0,5): #count over agents
N=An[agentcount]
for M in np.arange(1,MM+1):
for crep in np.arange(1,r+1):
win=(np.random.rand(M,1)>0.5).astype(int) #winning record
s1=(np.random.rand(2**M,N)>0.5).astype(int) #random strat
s2=(np.random.rand((2**M),N)>0.5).astype(int) #alternative
payout=np.zeros([2,N])#empty payout record
for tc in np.arange(1,t+1):
cc=np.abs((1+ np.dot((2**(np.arange(0,M))),win)))
nex1=s1[cc-1,:].reshape(501)
nex2=s2[cc-1,:].reshape(501)
nexts=np.stack((nex1,nex2),axis=0)
for cn in np.arange(0,N+1): #better strat
if (payout[0,cn-1]>payout[1,cn-1]):
Next=nex1
else:
Next=nex2
Asum=np.sum(Next)/N
A=np.append(A,Asum)
winning=(A<0.5).astype(int)
winning=np.transpose(winning)
payout=payout+(nexts==winning)#update record
V=np.append(V,np.var(A))
Vav=np.append(Vav,np.mean(V))
Alpha=np.append(Alpha,2**M/N)
使用缩进,我希望 A、Vav 和 Alpha 分别是大小为 t、r 和 MM 的一维数组。但对于 A,我的尺寸为 trMM,Vav 尺寸为 r*MM。如何使尺寸与循环的某些部分相对应? 谢谢
【问题讨论】:
-
缩进有些问题。
for crep in np.arange(1,r+1):后面的行应该缩进 1 级...你能解决这个问题吗?不确定最后三行计划的哪些缩进。
标签: python python-3.x loops for-loop