当前位置: 首页 > 面试题库 >

将Numpy数组乘以矩阵(外积)

郭永安
2023-03-14
问题内容

我有2个形状(5,1)的numpy数组,说:a = [1,2,3,4,5] b = [2,4,2,3,6]

我如何制作一个矩阵,将每个第i个元素与每个第j个元素相乘?喜欢:

..a = [1,2,3,4,5]
b 
2    2, 4, 6, 8,10
4    4, 8,12,16,20
2    2, 4, 6, 8,10
3    3, 6, 9,12,15
6    6,12,18,24,30

不使用forloops?我可以使用重塑,缩小或乘法的任何组合吗?

现在,我沿着行和列创建每个数组的aa * b拼接,然后将元素明智地相乘,但是在我看来,肯定有一种更简单的方法。


问题答案:

使用numpy.outer()和numpy.transpose()例程:

import numpy as np

a = [1,2,3,4,5]
b = [2,4,2,3,6]
c = np.outer(a,b).transpose()

print(c)

或者只是交换阵列顺序:

c = np.outer(b, a)

输出;

[[ 2  4  6  8 10]
 [ 4  8 12 16 20]
 [ 2  4  6  8 10]
 [ 3  6  9 12 15]
 [ 6 12 18 24 30]]


 类似资料:
  • 主要内容:逐元素矩阵乘法,矩阵乘积运算,矩阵点积矩阵乘法是将两个矩阵作为输入值,并将 A 矩阵的行与 B 矩阵的列对应位置相乘再相加,从而生成一个新矩阵,如下图所示: 注意:必须确保第一个矩阵中的行数等于第二个矩阵中的列数,否则不能进行矩阵乘法运算。 图1:矩阵乘法 矩阵乘法运算被称为向量化操作,向量化的主要目的是减少使用的 for 循环次数或者根本不使用。这样做的目的是为了加速程序的计算。 下面介绍 NumPy 提供的三种矩阵乘法,从而进一步

  • 在使用numpy的python中,假设我有两个矩阵: 稀疏矩阵 密集的x*y矩阵 现在我想做,它将返回一个密集的矩阵。 但是,我只关心中非零的单元格,这意味着如果我这样做了,对我的应用程序不会有任何影响 <代码>S\u=S*S\u 显然,这将是对操作的浪费,因为我想把在

  • 问题内容: 我有一个矩阵与形状和三维张量与形状。我想与中的每个矩阵相乘,得到3d张量。 给出期望的结果。对于这个问题是否有 更好的 解决方案(即摆脱)?这必须是相当常见的操作,因此我认为其他人已经找到了不同的方法,例如使用(我尝试过但未能获得期望的结果)。意见/观点将不胜感激! 问题答案:

  • 本文向大家介绍在Python中使用Numpy将两个矩阵相乘,包括了在Python中使用Numpy将两个矩阵相乘的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将学习如何使用Python中的NumPy库将两个矩阵相乘。使用NumPy库很简单。 它有一个称为点的矩阵乘法方法。您可以使用以下命令安装NumPy库。 让我们看看程序中涉及的步骤。 导入NumPy库。 初始化矩阵。 将矩阵与nump

  • 本文向大家介绍对numpy 数组和矩阵的乘法的进一步理解,包括了对numpy 数组和矩阵的乘法的进一步理解的使用技巧和注意事项,需要的朋友参考一下 1、当为array的时候,默认d*f就是对应元素的乘积,multiply也是对应元素的乘积,dot(d,f)会转化为矩阵的乘积, dot点乘意味着相加,而multiply只是对应元素相乘,不相加 2、当为mat的时候,默认d*f就是矩阵的乘积,mult

  • 在R中,我可以在矩阵和(共形)向量之间进行分段乘法,例如: 矩阵的每一行都与相应的向量元素相乘。我也可以对维度大于2的数组做同样的事情: 同样,每一行都与相应的向量元素相乘。我能为3d阵列和2d矩阵做类似的事情吗?我只想让数组中的每个子矩阵都按元素乘以一个矩阵。