Умножить каждый элемент двумерного массива
есть такая матрица:
import numpy as np
a=np.array ([[0, 2.4, -6, 5, 0.8],
[1.5, 0, 0, -4.3, -3.5],
[0, 1.8, 3.2, -1.2, -1.3],
[0, 0, -2.3, 0, -7.2],
[3.3 -0.8, 0, 3.5, 8]])
нужно сделать новую матрицу каждый элемент умножить на 5.9 и вывести массив на экран
так же нужно найти минимальный элемент каждой строчки матрицы и вывести его значение и индекс
Ответы (1 шт):
У вас на самом деле проблема в другом - в пропущенной запятой вот здесь:
[3.3 -0.8, 0, 3.5, 8]])
^^^
Если поставить там запятую, то массив станет "квадратным" и умножение его на 5.9 уже не будет давать ту ошибку, которую вы получаете сейчас при попытке умножения, и которая вас сбила с толку:
b = a * 5.9
TypeError: can't multiply sequence by non-int of type 'float'
Из-за отсутствия запятой у вас сейчас получается массив из списков разной длины и не получается сделать нормальную numpy матрицу - внутри массива numpy по-прежнему лежат обычные питоновские списки, и вот именно их можно "умножать" только на целые числа. Но это всё-равно не то умножение, которое вы думаете.