python - 如何在嵌套列表中做多个向量点积?
问题描述
我试图在嵌套列表中获取矢量点积例如:
A = np.array([[1,2,1,3],[2,1,2,3],[3,1,2,4]])
我试图得到:
B = [[15], [19, 23]]
其中 15 = np.dot(A[0],A[1]),
19 = np.dot(A[0],A[2]),
23 = np.dot(A[1],A[2])
B中的第一个inner_list是A[0]和A[1]的点积,
B 中的第二个 inner_list 是 A[0] 和 A[2] 的点积,A[1] 和 A[2] 的点积 我试图在 python 中编写一些循环但失败了如何在 Python 中获得 B?
解决方案
这是一个与列表理解解决方案相结合的显式 for 循环:
In [1]: import numpy as np
In [2]: A = np.array([[1,2,1,3],[2,1,2,3],[3,1,2,4]])
In [5]: def get_dp(A):
...: out = []
...: for i, a in enumerate(A[1:]):
...: out.append([np.dot(a, b) for b in A[:i+1]])
...: return out
In [6]: get_dp(A)
Out[6]: [[15], [19, 23]]
说明:for 循环从第二个元素开始运行,列表推导从开始运行到当前迭代元素。
推荐阅读
- java - 多个进程访问磁盘上的大数据 - 最佳实践是什么?
- c++ - 具有一个默认参数和一个可变参数的 C++ 构造函数
- c++ - cin,cin.get 和一个我无法理解的东西
- r - 平滑曲线并在 R 中得到它的方程
- react-native - 如何在 ReactNative Web 视图中发送表单数据?
- python - 条件语句在 false 时添加值
- php - Laravel - 在验证和更新请求值之前检查值导致数据库默认值被忽略
- java - 如何将创建的 ArrayList 存储在内存中,以免每次应用启动时都创建它?
- javascript - 使用 React 将值 iso 语言代码转换为语言
- c# - 来自 C# 的 Coffeescript 语法