Я пытаюсь найти столбец с максимальной суммой столбцов 2D-матрицы в numpy.
Например:
Пусть A = [[1, 2, 3], [0, 1, 4], [0, 0, 1]]
Суммы каждого столбца: [1, 3, 8]. Таким образом, 3-й столбец имеет максимальную сумму столбца.
При попытке использовать функции numpy.argmax и numpy.sort для выполнения этой задачи, Я ожидал, что argmax будет в идеале быстрее, чем сортировка, но они привели к тому же времени выполнения .
a = np.random.rand(7000, 8000)
start_time = time.time()
for i in range(1000):
np.sort(np.sum(a, axis = 0))
print(time.time() - start_time)
Указанный выше код выполняется за 33,29 секунды, а приведенный ниже - также за 34,33 секунды.
a = np.random.rand(7000, 8000)
start_time = time.time()
for i in range(1000):
np.argmax(np.sum(a, axis=0))
print(time.time() - start_time)
Не могли бы вы сообщить мне возможные причины этого? Это связано с тем, как я решаю проблему?