代码之家  ›  专栏  ›  技术社区  ›  alliedtoasters

批量点产品与纽比?

  •  0
  • alliedtoasters  · 技术社区  · 5 年前

    我需要用一个向量得到多个向量的点积。示例代码:

    a = np.array([0, 1, 2])
    
    b = np.array([
        [0, 1, 2],
        [4, 5, 6],
        [-1, 0, 1],
        [-3, -2, 1]
    ])
    

    我想得到每行的点积 b 反对 a .我可以迭代:

    result = []
    for row in b:
        result.append(np.dot(row, a))
    
    print(result)
    

    它给出:

    [5, 17, 2, 0]

    我怎么能不用迭代就得到这个呢?谢谢!

    2 回复  |  直到 5 年前
        1
  •  1
  •   Chris    5 年前

    使用 numpy.dot numpy.matmul 没有 for 循环:

    import numpy as np
    
    np.matmul(b, a)
    # or
    np.dot(b, a)
    

    输出:

    array([ 5, 17,  2,  0])
    
        2
  •  1
  •   BENY    5 年前

    我会的 @

    b@a
    Out[108]: array([ 5, 17,  2,  0])
    
    推荐文章