我正在尝试进行数组比较。但是,当我尝试执行此操作时,出现错误,“数组索引过多”。我做对了。
我尝试更改for循环中的范围,但仍然遇到相同的错误。我想不出任何其他原因导致这种情况发生。
thresholdvalue1=(xpatient-sd_healthy)*10
thresholdvalue2=(((xhealthy+sd_patient))*10)
thresholdlist=[]
TP=[]
FP=[]
TN=[]
FN=[]
Ahealthy=np.random.randint(10,size=(1000,50))
Apatient=np.random.randint(10,size=(1000,50))
def thresholding(A,B):
for i in range(A,B):
thresholdlist.append(i)
i+=1
def newlist():
thresholdarray=np.asarray(thresholdlist)
thedivisor=10
newarray=(thresholdarray/thedivisor)
print(newarray)
for n in range(0,51):
if Apatient[:,n]>=newarray[:,n]:
TP.append(Apatient[:,n])
elif Ahealthy[:,n]>=newarray[:,n]:
FP.append(Ahealthy[:,n])
elif Apatient[:,n]<=newarray[:,n]:
TN.append(Apatient[:,n])
else:
FN.append(Ahealthy[:,n])
thresholding(thresholdvalue1,thresholdvalue2+1)
newlist()
如您所见,我正在尝试将矩阵的每一列与一个阈值进行比较。第二个for循环就是关于这种比较。最后,我希望有4个包含条件值的列表。