我有一个要分析的熊猫系列列表,以确定每个索引处是否有一个数字比其他列表中该索引处的每个其他数字大5倍。如果为真,我希望函数返回的值是5倍大。我写过:
import numpy as np
def check(samples_avg):
count = 0
results = []
filtered = []
for num in range(len(samples_avg)):
for i in range(len(samples_avg[num])):
for j in range(i + 1, len(samples_avg[num])):
if (np.any(samples_avg[i]) >= (np.all(samples_avg[j] * 5))):
count = count + 1
results.append((count == len(samples_avg) - 1))
filtered = [x for x, y in zip(samples_avg, results) if y == True]
print (filtered)
我希望将filtered
的输出作为列表的列表,每个列表仅包含samples_avg
中相应系列的真实值。
现在,该函数先打印一系列的空列表,然后打印在索引0处具有真值的整个系列,并在此之后停止迭代。它还返回:
line 86, in check
if (np.any(samples_avg[i]) >= (np.all(samples_avg[j] * 5))):
IndexError: list index out of range
我该如何纠正该索引错误并修复输出以使其正常工作?关于这个问题的任何建议也将不胜感激。谢谢