itertools.product() 的减法
Subtraction equivalent of itertools.product()
我是一名大学生,正在从事一个分析大型数据集的项目。
简化我的问题,我有 2 组点,在矩阵 "A" 和 "B" 中
这样:
A = [[x1, y1], [x2, y2],...] and B = [[x'1, y'1], [x'2, y'2],...]
我想创建一个输出矩阵 C 的函数,其元素为:
Cij = atan((y'i - yj)/(x'i - xj))
本质上,角度 (wrt x.axis) 由连接任意两点的线所对,每个列表中的一个。
数据集足够大,嵌套的 FOR 循环不是一个选项。
目前的尝试让我找到了 itertools 产品功能。
如果有一个等价物在元素之间提供减法(即 y'i-yj ),那么我就可以很简单地从那里开始。
有人知道可以提供此功能的东西吗?
或者也许有任何其他方法可以在没有缓慢迭代过程的情况下实现所有这些点之间的角度?
提前致谢,
亚历克斯
使用 numpy 进行这些计算
import numpy as np
A = np.array(A)
B = np.array(B)
C = np.arctan((B[:, None, 1] - A[:, 1]) / (B[:, None, 0] - A[:, 0]))
我是一名大学生,正在从事一个分析大型数据集的项目。
简化我的问题,我有 2 组点,在矩阵 "A" 和 "B" 中 这样:
A = [[x1, y1], [x2, y2],...] and B = [[x'1, y'1], [x'2, y'2],...]
我想创建一个输出矩阵 C 的函数,其元素为:
Cij = atan((y'i - yj)/(x'i - xj))
本质上,角度 (wrt x.axis) 由连接任意两点的线所对,每个列表中的一个。 数据集足够大,嵌套的 FOR 循环不是一个选项。
目前的尝试让我找到了 itertools 产品功能。 如果有一个等价物在元素之间提供减法(即 y'i-yj ),那么我就可以很简单地从那里开始。
有人知道可以提供此功能的东西吗? 或者也许有任何其他方法可以在没有缓慢迭代过程的情况下实现所有这些点之间的角度?
提前致谢,
亚历克斯
使用 numpy 进行这些计算
import numpy as np
A = np.array(A)
B = np.array(B)
C = np.arctan((B[:, None, 1] - A[:, 1]) / (B[:, None, 0] - A[:, 0]))