【发布时间】:2011-02-03 13:27:30
【问题描述】:
我正在将一个 C++ 科学应用程序移植到 python,由于我是 python 新手,我想到了一些问题:
1) 我正在定义一个包含坐标 (x,y) 的类。这些值将被访问多次,但它们只会在类实例化之后被读取。在内存和访问时间方面,使用元组还是 numpy 数组更好?
2) 在某些情况下,这些坐标将用于构建复数,在复数函数上求值,并且将使用该函数的实部。假设没有办法将这个函数的实部和复数分开,并且最后必须使用实部,也许直接使用复数来存储(x,y)更好?在 python 中从复杂到真实的转换的开销有多严重? c++ 中的代码做了很多这样的转换,这在代码中是一个很大的减速。
3) 还必须执行一些坐标变换,对于坐标,x 和 y 值将分别访问,完成变换并返回结果。坐标变换是在复平面上定义的,所以直接使用 x 和 y 分量还是比依赖复变量更快?
谢谢
【问题讨论】:
-
为什么不直接使用 numpy 复数数组?
-
这是算法意义上的最佳方法,但据我的测试显示,这是可能的最慢组合。
标签: python arrays numpy tuples complex-numbers