【问题标题】:How to do dot product of a vector with a set of vectors in an array using numpy?如何使用numpy对数组中的一组向量进行向量的点积?
【发布时间】:2019-03-10 19:37:08
【问题描述】:

给定一个 N×M 数组 W 和一个大小为 N 的向量 V,我如何对 W 的每一列取点积 V,从而得到一个大小为 M 的一维数组 D,其中 D 的每个元素组成V 和 W[:,i] 的点积。

类似

V = np.random.int(N)
W = np.random.int((N,M))
D = np.zeros(M)
for i in np.arange(M):
    D[i] = dotproduct(V,W[:,i])

有没有办法只使用 numpy 数组和 numpy 函数来做到这一点?我想避免使用 for 循环。

【问题讨论】:

    标签: python numpy numpy-ndarray array-broadcasting


    【解决方案1】:

    使用np.dot()

    v = np.random.randint(3,size = 3)
    w =np.random.randint(9, size = (3,3))
    np.dot(v,w)
    

    【讨论】:

      【解决方案2】:

      使用 numpy 广播,您可以简单地将向量 V 和矩阵 W 相乘

      V = np.random.randint(N)
      W = np.random.randint((N,M))
      D = np.sum(V.T*W,axis=0)
      

      【讨论】:

        猜你喜欢
        • 2016-02-24
        • 2020-11-27
        • 2016-05-15
        • 2021-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-02
        相关资源
        最近更新 更多