gpt4 book ai didi

python - Numpy- 矩阵的权重和求和行

转载 作者:太空狗 更新时间:2023-10-30 00:25:37 26 4
gpt4 key购买 nike

使用 Python 和 Numpy,我想:

  • 考虑(n 列 xm 行)矩阵作为向量
  • 对每一行加权(标量每个组件的乘法载体)
  • 添加每一行以创建最终向量(向量加法)。

权重在常规 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

最佳答案

即使是“技术上”正确的答案也已经准备好了,我将给出我的直截了当的答案:

from numpy import array, dot
dot(array([0.5, -1]), array([[1, 2, 3], [4, 5, 6]]))
# array([-3.5 -4. -4.5])

这个问题更多地体现了线性代数的精神(以及问题顶部的那三个点状要求)。

更新:这个解决方案确实非常快,速度不慢,但很容易比所有现成的方案快 (10-15) 倍!

关于python - Numpy- 矩阵的权重和求和行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5069385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com