Python itertools.product()的减法等价物

Python itertools.product()的减法等价物,python,loops,matrix,nested-loops,itertools,Python,Loops,Matrix,Nested Loops,Itertools,我是一名大学生,正在做一个项目,分析一些大型数据集 简化我的问题,我有两组点,在矩阵“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循环不是一个选项 当

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

简化我的问题,我有两组点,在矩阵“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),那么我可以很简单地从那里开始

有人知道有什么东西可以提供这种功能吗? 或者,是否有其他方法可以实现所有这些点之间的角度,而无需缓慢的迭代过程

提前感谢,


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

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

为什么for循环不是一个选项?你正在使用Python吗?如果是,请尝试将
range
更改为
xrange
为什么for循环不是选项?你正在使用Python吗?如果是这样,请尝试将
range
更改为
xrange
这是否会返回两个对应点之间的角度,如第一个点从A到第一个点从B?我对每一对或每一个可能的点都需要这个。有没有一个简单的方法来适应它?哦,是的,对不起,我忘了在B上添加广播。这不会返回两个对应点之间的角度吗,就像第一个点从A到第一个点从B一样?我对每一对或每一个可能的点都需要这个。有没有一个简单的方法来适应这个?哦,是的,对不起,我忘了在B上添加广播。