gpt4 book ai didi

数组序列的 numpy 外积

转载 作者:行者123 更新时间:2023-12-01 10:42:23 26 4
gpt4 key购买 nike

我有一个矩阵 A (nXm) 。我的最终目标是获得维度的 Z (nXmXm) 目前我正在使用它来完成它但是可以在不使用 for 循环的情况下使用一些 matrix.tensordot 或 matrix.multiply.outer 来完成

 for i in range(0,A.shape[0]):
Z[i,:,:] = np.outer(A[i,:],A[i,:])

最佳答案

你可以使用 numpy's Einstein summation ,像这样:

np.einsum('ij, ik -> ijk', a, a)

为了完整起见,与 unutbu 的同样出色的答案 (+1) 进行时间比较:

In [39]: A = np.random.random((1000,50))

In [40]: %timeit using_einsum(A)
100 loops, best of 3: 11.6 ms per loop

In [41]: %timeit using_broadcasting(A)
100 loops, best of 3: 10.2 ms per loop

In [42]: %timeit orig(A)
10 loops, best of 3: 27.8 ms per loop

这教会了我

  1. unutbu 的机器比我的快
  2. 广播会比 np.einsum 稍快一些

关于数组序列的 numpy 外积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29189592/

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