索引每行的最高分

时间:2018-03-10 02:48:30

标签: python python-3.x numpy variable-assignment

我有一个矩阵NxN。我需要取每行的最大值。但问题在于它是分配问题的一部分,因为你不能在列中采用相同的元素。我需要分配"任务"在x轴上表示,在y轴上表示的工人。矩阵的每个坐标是表示该选择有多好的分数。例如,它可能是一个优化问题,分数代表每项任务的效率。

所以我有下一个案例分数: SCORES_MATRIX是形状为2,3的np.array,其值如下:

    ----------task1 task2 task3
    worker1    [[ 3 5 1 ]
    worker2     [ 2 4 8 ]]

我使用以下代码制作:

    NOT_REPEATED_INDEX = []
    for SCORES_VECTOR in SCORES_MATRIX:
        SORTED_VECTOR_INDEXES = np.flipud(np.argsort(SCORES_VECTOR,axis=0))
        for i in range(NUM):
            if SORTED_VECTOR_INDEXES[i] not in NOT_REPEATED_INDEX:
                NOT_REPEATED_INDEX.append(SORTED_VECTOR_INDEXES[i])
                break

会让我回头:         [1,2]

所以我需要为第一个工作人员分配第二个任务,并为工人分配两个工作。我已经做到了这一点,但我认为它并不高效。

0 个答案:

没有答案