代码之家  ›  专栏  ›  技术社区  ›  Mario Ishac

如何对二维数组和另一矢量之间的操作进行矢量化?

  •  0
  • Mario Ishac  · 技术社区  · 6 年前

    我有一个像这样的二维阵列:

    [[1, 2], [3, 4]]
    

    [5, 6] .

    这种情况下的操作是 np.inner

    我的预期产出是 [np.inner([1, 2], [5, 6]), np.inner([3, 4], [5, 6]] . 我可以用 apply_along_axis 应用轴 ?

    关于如何在两个2D数组的行对之间对这些类型的操作进行矢量化,有很多问题可以回答,但是在这种情况下,我需要对一个2D数组和另一个向量之间的操作进行矢量化。我可以转身 [5,6] [[5, 6], [5, 6]] 然后以这种方式进行矢量化,但在大范围内,我需要一个解决方案,在操作中我可以使用另一个矢量本身,而不是将它转换成一个带有一堆行副本的二维数组。

    1 回复  |  直到 6 年前
        1
  •  3
  •   lincr    6 年前

    听起来你需要“np.dot”

    In [3]: a = np.array([[1, 2], [3, 4]])
    
    In [4]: b = np.array([5, 6])
    
    In [5]: a.dot(b)
    Out[5]: array([17, 39])
    
    In [6]: np.inner(a[0], b)
    Out[6]: 17
    
    In [7]: np.inner(a[1], b)
    Out[7]: 39