Используя Python & Numpy, я бы хотел:
- Рассмотрим каждую строку (n столбцов х
м строк) матрица как вектор
- Вес каждого ряда (скаляр
умножение на каждый компонент
вектор)
- Добавьте каждую строку, чтобы создать окончательный вектор
(сложение векторов).
Веса даны в регулярном массиве numpy, n x 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