Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 2, 2020 13:46:00

Mutant
Зарегистрирован: 2019-08-18
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Двумерный массив, матрица

Дана матрица размера 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)

Офлайн

#2 Авг. 2, 2020 13:54:27

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Двумерный массив, матрица

Mutant
но не знаю как удалить.
не надо удалять, создайте другую матрицу не содержащую столбца и присвойте её значение той же переменной



Офлайн

#3 Авг. 2, 2020 14:31:00

Mutant
Зарегистрирован: 2019-08-18
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Двумерный массив, матрица

FishHook
А как дать понять программе, что столбец, который я нашел не нужно печатать?

Офлайн

#4 Авг. 2, 2020 15:17:27

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Двумерный массив, матрица

Mutant
Я не посмотрел, что у вас работа с numpy, про numpy я не знаю ничего, сорри



Офлайн

#5 Авг. 2, 2020 15:40:32

rami
Зарегистрирован: 2018-01-08
Сообщения: 281
Репутация: +  72  -
Профиль   Отправить e-mail  

Двумерный массив, матрица

 # Пытался удаление сделать, но работает странно
dela = np.delete(A, A.sum(axis = 0).argmax(), 1)    # <—— пропущен третий параметр: axis
print(dela)

Офлайн

#6 Авг. 2, 2020 17:47:21

Mutant
Зарегистрирован: 2019-08-18
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Двумерный массив, матрица

rami
Спасибо, все работает

Офлайн

#7 Авг. 2, 2020 18:16:20

Mutant
Зарегистрирован: 2019-08-18
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Двумерный массив, матрица

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)

Прикреплённый файлы:
attachment Снимок.PNG (8,1 KБ)

Офлайн

#8 Авг. 2, 2020 18:41:41

rami
Зарегистрирован: 2018-01-08
Сообщения: 281
Репутация: +  72  -
Профиль   Отправить e-mail  

Двумерный массив, матрица

 dela = np.delete(A, A.max(axis = 0).argmax(), 1)

Офлайн

#9 Авг. 2, 2020 18:47:00

Mutant
Зарегистрирован: 2019-08-18
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Двумерный массив, матрица

rami
Спасибо, выручили

Офлайн

#10 Авг. 2, 2020 18:54:20

Mutant
Зарегистрирован: 2019-08-18
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Двумерный массив, матрица

rami
Можете вкратце пояснить строчку, точнее 2 и 3 параметр? “dela = np.delete(A, A.max(axis = 0).argmax(), 1)”. Я так понимаю, что A.max(axis = 0) находит максимальный элемент по столбцам, а что тогда делает argmax() (разве не тоже самое)? И почему 3 параметр = 1, разве 1 это не по строчкам удаление должно быть, а о по столбцам?

Отредактировано Mutant (Авг. 2, 2020 18:54:56)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version