我有两个系列X和Y,在Python中有一个函数f(X,Y)。我想生成一个矩阵,其中包含X和Y的每个组合的函数的输出。例如,如果函数只是一个简单的乘法,它将如下所示:1 2 3 4 5

-------------------

1 | 1 2 3 4 5

2 | 2 4 6 8 10

3 | 3 6 9 12 15

4 | 4 8 12 16 20

5 | 5 10 15 20 25

X和Y实际上是坐标对,我想应用的函数是到geopy包的vincenty距离。在

X和Y是pandas数据帧的一系列,因为我从excel电子表格中读取数据,我发现pandas read_excel功能非常方便。在

我需要道歉,因为我觉得这个问题已经得到了回答。我的问题是我不知道这个手术叫什么,我应该找什么。我发现的是矩阵和向量乘法的不同例子,但我不想用两个级数来计算标量。在

非常感谢!在

我尝试按建议使用阵列广播,但仍有一个问题:

^{pr2}$

还有另一个问题:即使我只想将vincenty公式应用于数据帧中的序列,也会收到一条错误消息:for i in data.index:

print(vincenty((data['X'], data['Y']), (data['Y'], data['Y'])).meters)

>> ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

问题是我不知道我是怎么得到这些错误的。我可以给出四个单独的值作为vincenty公式的坐标,或者一个列表或一个字符串,这样就可以了。但是我可以将公式应用到多个条目的唯一方法是使用列表。在

好吧,最后一次编辑。。。我不能完全按照你的建议去做。相反,我将pandas系列转换为列表,并使用公式循环查看列表。我想这是最低效的方法,但这是我能用我的编程技巧和性能来做的,对我来说并不重要。但是,我很感谢您的建议(itertools,array broadcasting),对于其他应用,我会记住它们。非常感谢你!在

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐