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

Python:将向量列表与矩阵列表相乘作为单个矩阵运算

段干靖
2023-03-14
问题内容

我有一个100个N-dimensional向量的列表和一个100 MxN矩阵列表。因此,您可以将两个数据结构视为一个100xN列表(或numpy数组)和一个100xMxN列表(或numpy数组)。

我想做的是获取每个向量与其对应矩阵的点积,这样输出应该是100 M-dimensional矩阵(即100xM列表或numpy数组)。

但是,我不确定如何执行此操作。由于效率的明显原因,我不想重复进行此操作。我也知道这不是基本的矩阵乘法。我想我可能想使用np.einsum,但我对此不太熟悉。

有人愿意帮助吗?


问题答案:

您可以np.einsum像这样使用-

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

样品运行-

In [42]: M,N = 3,4

In [43]: a = np.random.rand(100,N)

In [44]: b = np.random.rand(100,M,N)

In [45]: np.einsum('ij,ikj->ik',a,b).shape
Out[45]: (100, 3)

您也可以使用np.matmul@运算符(Python 3.x),尽管它似乎比einsum-慢一点-

np.matmul(a[:,None],b.swapaxes(1,2))[:,0]


 类似资料:
  • 我想在不同的列表中加入多个向量,并输出一个矩阵列表。其思想是,列表中具有相同名称的所有项目,例如所有项目,通过行作为矩阵连接起来。增加的复杂性是,这些向量可以具有不同的长度,因此实现起来并不简单;矩阵中缺少的值可以附加s。 输入列表: 我希望获得的理想输出是一个列表,其中矩阵的数量与唯一列表项的数量相同,其中每个矩阵由行绑定的不同长度的向量组成: 我将如何编写一个函数,它也可以扩展到合并具有不同长

  • 本文向大家介绍如何在R中将矩阵列转换为向量列表?,包括了如何在R中将矩阵列转换为向量列表?的使用技巧和注意事项,需要的朋友参考一下 如果要使用矩阵的列作为向量,则可以将它们转换为向量列表。要将矩阵列转换为向量列表,我们首先需要将矩阵转换为数据框,然后才能将其读取为列表。这可以作为as.list(as.data.frame(matrix_name))完成。 示例 考虑下面的矩阵- 将矩阵M列转换为向

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

  • 问题内容: 假设我有一个由列表列表组成的矩阵,如下所示: 同样,假设我有一个具有相同结构的numpy矩阵,称为: 使用numpy,我可以得到这个矩阵的子矩阵,如下所示: 我可以像这样在纯Python中复制numpy矩阵切片: 这不是世界上最容易阅读的东西,也不是最有效的:-) 问题:是否有更简单的方法(在纯Python中)将任意矩阵切片为子矩阵? 问题答案: 您还可以通过定义以下子类来模仿NumP

  • 我喜欢将具有相同行的两个矩阵的列的所有可能组合相乘。这意味着两个矩阵,例如和将生成包含元素的3x4矩阵。(和表示从1到3的行,表示从1到4的列) 我已经创建了一个例子,可以完成这项工作,但正在寻找没有for循环的优雅解决方案。 这里a是3x3矩阵,b是3x4矩阵,comb通过乘以各个列给出3x12矩阵的输出。我正在寻找优雅的解决方案,可以推广到这样的乘法到两个以上的矩阵。

  • 我有许多scipy稀疏矩阵(目前为CSR格式),需要与密集的numpy 1D向量相乘。该向量称为G: 每个稀疏矩阵都具有形状(163842097152),并且非常稀疏。密度约为4.0e-6。我有一个包含100个稀疏矩阵的列表,称为spmats。 我可以轻松地将每个矩阵与G相乘,如下所示: 这将产生一个形状密集向量列表(16384,)。 我的应用程序对性能相当关键,所以我尝试了另一种方法,即首先将所

  • 我有两个列表,每个列表中有两个矩阵。。是否有一种方法可以对它们进行矩阵计算,即相加,其中matrix1中的蓝色矩阵与matrix2中的蓝色矩阵相加,matrix1中的红色矩阵与matrix2中的红色矩阵相加。我能想到的唯一方法是在循环中进行计算 请注意,我将有大约10个,以及不止一组(即蓝色、红色、绿色、紫色)

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