numpy.argmin дает мне максимальный индекс элемента - PullRequest
0 голосов
/ 12 ноября 2018

У меня проблемы с numpy и argmin. Кажется, что argmin возвращает индекс максимального элемента. Этот пример кода может прояснить ситуацию:

for i in range(20):                
            indmin = np.argmin(M[n-1, 1:-1])
            print("M[n-1, indmin] = ", M[n-1, indmin])

            print("indmin = ", indmin)

            M[n-1, indmin] = inf

Вывод этого фрагмента кода:

M[n-1, indmin] =  5.806069439930625
indmin =  1150
M[n-1, indmin] =  100000000.0
indmin =  1150
M[n-1, indmin] =  100000000.0
indmin =  1150
M[n-1, indmin] =  100000000.0
indmin =  1150
...

M [n-1, -1: 1] содержит значения в диапазоне приблизительно от 0 до 15. Что здесь происходит?

Edit: n = 813; inf = 100000000

Ссылка на дамп M: [http://www.mediafire.com/file/wjbk11tiafjo3do/probarray/file][1]

1 Ответ

0 голосов
/ 13 ноября 2018

Попробуйте:

for i in range(20):                
            indmin = np.argmin(M[n-1, 1:-1])
            print("M[n-1, indmin] = ", M[n-1, indmin])

            print("indmin = ", indmin)

            M[n-1, indmin+1] = inf # correction, the argmin was taken with an offset of 1

Аргументом для argmin является M[n-1, 1:-1], поэтому полученный вами индекс равен , а не , который соответствует индексации M. Сдвиг 1.

...