减法等于itertools.product()

时间:2018-11-17 14:00:07

标签: python loops matrix nested-loops itertools

我是一名大学生,正在研究一个分析一些大型数据集的项目。

为简化我的问题,我有2组点,在矩阵“ A”和“ B”中 这样:

A = [[x1, y1], [x2, y2],...] and B = [[x'1, y'1], [x'2, y'2],...] 

我想创建一个输出带有元素的Matrix C的函数:

Cij  = atan((y'i - yj)/(x'i - xj))

从本质上讲,连接任意两个点的线(每个列表中的一个点)对着对角线(wrt x.axis)。 数据集足够大,以至于嵌套的FOR循环不是一个选择。

当前的尝试使我开始使用itertools产品功能。 如果有一个等效项在元素之间减去(即y'i-yj),那么我可以很简单地从那里开始。

有人知道可以提供此功能的东西吗? 还是有其他任何方法可以在不缓慢的迭代过程中实现所有这些点之间的角度?

预先感谢

亚历克斯

1 个答案:

答案 0 :(得分:2)

使用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]))