我有两个形状为(N,2,2)的3d数组A和B,我想根据N轴在每个2x2矩阵上分别乘以矩阵乘积。通过循环实现,它看起来像
C[i] = dot(A[i], B[i])
有没有办法不用循环就可以做到这一点?我研究过Tensordot,但无法使其正常工作。我想我可能想要类似的东西,tensordot(a, b, axes=([1,2], [2,1]))
但这给了我一个NxN矩阵。
似乎您正在沿第一个轴对每个切片进行矩阵乘法。同样,您可以这样使用np.einsum
-
np.einsum('ijk,ikl->ijl',A,B)
我们还可以使用np.matmul
-
np.matmul(A,B)
在Python
3.x上,此matmul
操作可简化为@
运算符-
A @ B
方法-
def einsum_based(A,B):
return np.einsum('ijk,ikl->ijl',A,B)
def matmul_based(A,B):
return np.matmul(A,B)
def forloop(A,B):
N = A.shape[0]
C = np.zeros((N,2,2))
for i in range(N):
C[i] = np.dot(A[i], B[i])
return C
时间-
In [44]: N = 10000
...: A = np.random.rand(N,2,2)
...: B = np.random.rand(N,2,2)
In [45]: %timeit einsum_based(A,B)
...: %timeit matmul_based(A,B)
...: %timeit forloop(A,B)
100 loops, best of 3: 3.08 ms per loop
100 loops, best of 3: 3.04 ms per loop
100 loops, best of 3: 10.9 ms per loop
本文向大家介绍Java程序的数组元素相乘,包括了Java程序的数组元素相乘的使用技巧和注意事项,需要的朋友参考一下 查找数组元素的乘积。 创建一个空变量(product)。 用1初始化它。 在循环中遍历每个元素(或从用户那里获取每个元素)将每个元素乘以乘积。 打印乘积(product)。 示例 输出结果
在R中,我可以在矩阵和(共形)向量之间进行分段乘法,例如: 矩阵的每一行都与相应的向量元素相乘。我也可以对维度大于2的数组做同样的事情: 同样,每一行都与相应的向量元素相乘。我能为3d阵列和2d矩阵做类似的事情吗?我只想让数组中的每个子矩阵都按元素乘以一个矩阵。
问题内容: 我有两个数组,一个是形状,另一个是shape ,所以实际上是两个以矩阵为元素的数组。现在,我想计算并获得在两个数组中都重叠的所有元素(以形式)。使用普通的for循环,这是减慢速度的方法,因此我尝试使用numpys intersect1d方法进行尝试,但我不知道如何将其应用于此类数组。 问题答案: 使用关于唯一行的此问题中的方法) 请注意,使用浮点数是不安全的,因为它将导致不等于
问题内容: 给出了长度为 n 的数组。查找子数组元素的乘积之和。 说明 数组 A* = 长度 3的 [2,3,4] 。 * 长度为 2的 子数组= [2,3],[3,4],[2,4] [2,3] 中元素的乘积= 6 [3,4] 中元素的乘积= 12 [2,4] 中元素的乘积= 8 长度 2 = 6 + 12 + 8 = 26的子数组的总和 同样,对于长度 3 ,Sum = 24 因此,乘积以模 1
问题内容: 我知道如何在两个熊猫数据帧之间进行逐元素乘法。但是,当两个数据框的尺寸不兼容时,事情就变得更加复杂。例如,下面是简单明了的问题,但是: 在上述情况下, 如何将df的每一列与df3.col1相乘 ? 我的尝试: 我尝试复制 时间以获得与以下维度相同的数据框: 但这会创建一个尺寸为3 * 5的数据框,而我在5 * 3之后。我知道我可以随心所欲地获取所需的东西,但是我认为这不是最快的方法。
问题内容: 是否可以通过 对SVG元素 进行 3D转换 来实现透视? 我说的是与《星球大战》首部作品的3d透视图相似的事物。这是一个使用 CSS3 3d转换达到预期效果的jsfiddle: __ 问题答案: 2018年11月更新: 在最新的chrome和Firefox中可以测试该问题的片段。尽管对svg元素的3d转换的支持不是很广泛,但是浏览器正在越来越多地实现它。 来源答案: SVG元素不支持3
块元素是和para同级的元素,它们比较复杂,后面会分别介绍 类别 元素 说明 列表 calloutlist bibliolist 书目列表 glosslist 词汇列表 itemizedlist 无序列表 orderedlist 有序列表 segmentedlist 成分列表 simplelist 简单列表 variablelist 定义列表 告示 caution 小心 important 重
问题内容: 我试图找到在组件状态下从数组中删除元素的最佳方法。由于我不应该直接修改变量,是否有比我在这里有更好的方法(更简洁)从数组中删除元素?: 谢谢。 更新 这已更新为在setState中使用回调。在更新当前状态时,应执行此操作。 问题答案: 我见过的最干净的方法是: