我的方法有效,但它看起来很笨拙。我想知道是否有更好的做事方式。
我有一个带有数据元组(baseDataList
)的简单List,这是一个处理该列表(calculate_results
)以生成带结果(resultData
)的numpy.ndarray的函数。 baseDataList
和Numpy resultData
的长度和索引匹配。现在,我想返回并根据baseDataList
的结果选择resultData
的所有条目。如果resultData
条目<0,则会将其排除,否则baseDataList
的条目会根据resultData
中的不同值进行分组。
下面我通过创建一个新列表,添加空值并循环遍历resultData
来解决这个问题。这不仅笨拙,我认为它也会产生数据开销,因为我现在有3个变量:baseDataList
,resultData
和resultList
- 其中我真的只需要{的分组版本{1}}。关于如何改进这个的任何想法?
baseDataList
这是三个元素的示例输出:
resultData, baseDataList = calculate_results(selection_value)
number_of_validResults = len(np.unique(resultData>=0))
idx = 0
resultList = [[] for x in range(number_of_validResults)]
for x in resultData:
if x >= 0: # no resultData: x = -1
resultList[x].append(baseDataList[idx])
idx+=1