Извлечение индекса минимальной точки в 2D массиве - PullRequest
0 голосов
/ 10 апреля 2019

Я проверяю значения A и B в функции, и мне нужно найти максимальное значение этой функции и какие значения A и B дают этот минимум. Я изо всех сил пытаюсь найти способ получить эти значения из массива, который я сделал.

Я начинаю с определения некоторых массивов

ones = np.ones((3456,5184))
array = np.zeros([5,5])
real = threshold
test = testsunthree

Где real и test - это массивы, определенные в начале кода.

for A in range(-2,2):
  for B in range(-2,2):
    array[A,B]=((np.mean((real-(test*(A*0.1)+((B*0.1)*ones))**2))))

Здесь я проверяю значения A и B в диапазоне от -2 до 2 и для каждого значения вставляю их в функцию. Значение этой функции затем сохраняется в пустом массиве, определенном выше.

array_min = array[array != 0].min()
print (array_min)
print zip(*np.where(array == array.min()))

Затем я пытаюсь определить минимальное значение этого массива и хочу выяснить, для каких значений A и B эта функция является минимальной. Это часть, с которой я борюсь, так как последние две строки дают неверные значения.

1 Ответ

0 голосов
/ 10 апреля 2019

Это дает вам минимальное значение массива с именем array.Я поставил случайные значения для threshold и testsunthree, чтобы код работал и изменил использование функции min()

import numpy as np

threshold = 4
testsunthree = 2
ones = np.ones((3456,5184))
array = np.zeros([5,5])
real = threshold
test = testsunthree

for A in range(-2,2):
  for B in range(-2,2):
     array[A,B]=((np.mean((real-(test*(A*0.1)+((B*0.1)*ones))**2))))

array_min = np.min(array)
print (array_min)

Я быстро сделал грязное решение, чтобы получить различные значения A, Bдля которого у вас есть минимальное значение вашего массива, его можно легко улучшить, так как это всего лишь быстрое решение, показывающее вам путь

index = np.where(array == array_min)
A_B_value = []

for i in range(0, len(index[0])):
    min_index = []
    min_index.append(index[0][i])
    min_index.append(index[1][i])
    A_B_value.append(min_index)

print(A_B_value)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...