0

次の配列があるとします。

    complete_matrix = numpy.array([
    [0, 1, 2, 4],
    [1, 0, 3, 5],
    [2, 3, 0, 6]])

対角線のゼロを除いて、平均が最も高い列を特定したいと思います。したがって、この場合、complete_matrix[:,3] が平均が最も高い列であると特定できます。

4

2 に答える 2

2

この質問はここのものとは異なりますか: Finding the row with the maximum average in a numpy array

私が理解している限り、唯一の違いは、この投稿の行列が正方行列ではないことです。これが意図的なものである場合は、重みを使用してみてください。私はあなたの意図を完全には理解していないので、次の解決策ではゼロのエントリに 0 の重みを割り当て、それ以外の場合は 1 を割り当てます。

numpy.argmax(numpy.average(complete_matrix,axis=0, weights=complete_matrix!=0))

対角エントリの重みが 0 で、それ以外の場合は 1 である重み行列をいつでも作成できます。

于 2013-07-01T16:19:24.937 に答える
1

何かのようなもの:

import numpy

complete_matrix = numpy.array([
    [0, 1, 2, 4],
    [1, 0, 3, 5],
    [2, 3, 0, 6]])

print complete_matrix[:,numpy.argmax(numpy.mean(complete_matrix, 0))]
# [4 5 6]
于 2013-07-01T15:59:47.587 に答える