Я пытаюсь умножить каждый из терминов в 2D-массиве на соответствующие члены в 1D-массиве. Это очень просто, если я хочу умножить каждый столбец на массив 1D, как показано в функции numpy.multiply. Но я хочу сделать наоборот, умножить каждый член в строке. Другими словами я хочу умножать:Умножение в массив numpy
[1,2,3] [0]
[4,5,6] * [1]
[7,8,9] [2]
и получить
[0,0,0]
[4,5,6]
[14,16,18]
, но вместо этого я получаю
[0,2,6]
[0,5,12]
[0,8,18]
Кто-нибудь знает, если есть элегантный способ сделать это с NumPy? Большое спасибо, Alex
Я понял это, как только я представил вопрос. Сначала перенесите квадратную матрицу, умножьте ее, а затем транспонируйте ответ. –
Лучше переносить строку в матрицу столбцов, тогда вам не нужно повторно транспонировать ответ. Если 'A * B', вам нужно будет сделать A * B [..., None]', который переносит 'B', добавляя новую ось (' None'). – askewchan
Спасибо, это правда. Проблема в том, что когда у вас есть 1D-массив, вызывающий .transpose() или .T, он не превращает его в массив столбцов, он оставляет его как строку, так как, насколько я знаю, вы должны определить его как столбец с места в карьер. Как 'x = [[1], [2], [3]]' или что-то. –