Numpy- весовые и суммирующие строки матрицы

Используя Python & Numpy, я хотел бы:

  • Рассмотреть каждую строку (n столбцов x m строк) матрица как вектор
  • Вес каждой строки (скалярная умножение на каждый компонент вектор)
  • Добавьте каждую строку, чтобы создать окончательный вектор (сложение векторов).

Веса даны в обычном массиве numpy, nx 1, так что каждый вектор m в матрице должен быть умножен на вес n.

Вот что у меня есть (с тестовыми данными; фактическая матрица огромна), что, возможно, очень не-Numpy и не-Pythonic. Кто-нибудь может сделать лучше? Спасибо!

import numpy

# test data
mvec1 = numpy.array([1,2,3])
mvec2 = numpy.array([4,5,6])
start_matrix = numpy.matrix([mvec1,mvec2])
weights = numpy.array([0.5,-1])

#computation
wmatrix = [ weights[n]*start_matrix[n] for n in range(len(weights)) ]

vector_answer = [0,0,0]
for x in wmatrix: vector_answer+=x
5
задан Pete SupportMonica 21 February 2011 в 17:52
поделиться