Найти - Пользователи
Полная версия: Двумерный массив, матрица
Начало » Python для новичков » Двумерный массив, матрица
1 2
Mutant
Дана матрица размера M × N. Удалить столбец, содержащий максимальный элемент
матрицы.
Почти доделал, в конце прога находит номер столбца с максимальным элементом, но не знаю как удалить.
 # Задание - дана матрица размера M × N. Найти номер ее строки с наибольшей суммой элементов
# И вывести данный номер, а также значение наибольшей суммы.
# Импорт библиотеки для работы с двумерными массивами
import numpy as np
# Пользовательский ввод строк и столбцов
M = int(input("Введите количество строк: "))
N = int(input("Введите количество столбцов: "))
# Создание двумерного массива со случайными числами в пределах от 0 до 50
A = np.random.randint(50, size = (M,N))
# Создание словаря из количества строк и столбцов
Matrix = {M, N}
print("\nМатрица {M} x {N}:\n".format(M = M, N = N),A)
# С помощью функций sum(axis = 1), вычисляется сумма в каждом столбце (1 - по строкам, 0 - по колонкам) и argmax, которая вычисляет номер строки с максимальной суммой
print("\nНомер столбца с максимальной суммой:",A.sum(axis = 0).argmax())
# Пытался удаление сделать, но работает странно
dela = np.delete(A,A.sum(axis = 0).argmax())
print(dela)
FishHook
Mutant
но не знаю как удалить.
не надо удалять, создайте другую матрицу не содержащую столбца и присвойте её значение той же переменной
Mutant
FishHook
А как дать понять программе, что столбец, который я нашел не нужно печатать?
FishHook
Mutant
Я не посмотрел, что у вас работа с numpy, про numpy я не знаю ничего, сорри
rami
 # Пытался удаление сделать, но работает странно
dela = np.delete(A, A.sum(axis = 0).argmax(), 1)    # <—— пропущен третий параметр: axis
print(dela)
Mutant
rami
Спасибо, все работает
Mutant
rami
Дико извиняюсь, задание немного не дочитал, нужно найти максимальный элемент и удалить колонку с ним. Я немного изменил код, но почему-то удаляет 2 колонки.
 # Задание - дана матрица размера M × N. Найти номер ее строки с наибольшей суммой элементов
# И вывести данный номер, а также значение наибольшей суммы.
# Импорт библиотеки для работы с двумерными массивами
import numpy as np
# Пользовательский ввод строк и столбцов
M = int(input("Введите количество строк: "))
N = int(input("Введите количество столбцов: "))
# Создание двумерного массива со случайными числами в пределах от 0 до 50
A = np.random.randint(50, size = (M,N))
# Создание словаря из количества строк и столбцов
Matrix = {M, N}
print("\nМатрица {M} x {N}:\n".format(M = M, N = N),A)
# С помощью функций sum(axis = 1), вычисляется сумма в каждой строке (1 - по строкам, 0 - по колонкам) и argmax, которая вычисляет номер строки с максимальной суммой
print("\nНомер максимального элемента матрицы:",np.argmax(A))
dela = np.delete(A,A.argmax(axis = 0), 1)
print(dela)
rami
 dela = np.delete(A, A.max(axis = 0).argmax(), 1)
Mutant
rami
Спасибо, выручили
Mutant
rami
Можете вкратце пояснить строчку, точнее 2 и 3 параметр? “dela = np.delete(A, A.max(axis = 0).argmax(), 1)”. Я так понимаю, что A.max(axis = 0) находит максимальный элемент по столбцам, а что тогда делает argmax() (разве не тоже самое)? И почему 3 параметр = 1, разве 1 это не по строчкам удаление должно быть, а о по столбцам?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB