根据Numpy数组值(相同索引)选择列表条目

时间:2018-01-10 14:33:01

标签: python arrays numpy selection

我的方法有效,但它看起来很笨拙。我想知道是否有更好的做事方式。

我有一个带有数据元组(baseDataList)的简单List,这是一个处理该列表(calculate_results)以生成带结果(resultData)的numpy.ndarray的函数。 baseDataList和Numpy resultData的长度和索引匹配。现在,我想返回并根据baseDataList的结果选择resultData的所有条目。如果resultData条目<0,则会将其排除,否则baseDataList的条目会根据resultData中的不同值进行分组。

下面我通过创建一个新列表,添加空值并循环遍历resultData来解决这个问题。这不仅笨拙,我认为它也会产生数据开销,因为我现在有3个变量:baseDataListresultDataresultList - 其中我真的只需要{的分组版本{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

0 个答案:

没有答案