Пусть ваша матрица будет массивом NumPy.
import mumpy as np
a = np.array([[1,2], [3,4]])
b = np.array([[1,2,3],[4,5,6],[7,8,9]])
c = np.random.random_integers(100, size=8).reshape(2, -1)
#array([[41, 61, 47, 51],
# [40, 81, 23, 66]])
Проверьте размеры, извлеките «центр», найдите максимальное значение и его координаты, настройте их:
def find_center(a):
x = (a.shape[0] // 2 if a.shape[0] % 2 else a.shape[0] // 2 - 1,
a.shape[0] // 2 + 1)
y = (a.shape[1] // 2 if a.shape[1] % 2 else a.shape[1] // 2 - 1,
a.shape[1] // 2 + 1)
center = a[x[0]:x[1], y[0]:y[1]]
argmax = np.unravel_index(center.argmax(), center.shape)
return argmax[0] + x[0], argmax[1] + y[0] # Adjust
Тестирование:
find_center(a)
#(1, 1)
find_center(b)
#(1, 1)
find_center(c)
#(1, 1) - 81!