我需要对一个复数进行分区,但似乎在Python 3.x中删除了复数的分区 .
这有什么变通方法吗?任何想法,将不胜感激 .
例如 .
(2 + 3i) // (complex anything) will throw an error.
python 3中的复数用它们的虚部定义为 j ,而不是 i .
j
i
你是对的,在Python 3中你不能再计算复数的分层,但如果你需要一个解决方法,你需要指定你想要它的行为方式 .
在任何情况下,您都需要实现一个继承自 complex 的新类,并重写 __floordiv__ 方法
complex
__floordiv__
我刚刚找到了mpmath库 . 它有大量的工具,包括复杂数字的地板和模块 . 它似乎实际上包含在SymPy中 .
除非 (anything) 是 (2+3j) 的倍数,否则你的答案也会很复杂,因此地板划分没有明确定义 . 您可以通过乘以 (anything).conjugate / (abs(anything)**2) 来实现除法
(anything)
(2+3j)
(anything).conjugate / (abs(anything)**2)
3 回答
python 3中的复数用它们的虚部定义为
j
,而不是i
.你是对的,在Python 3中你不能再计算复数的分层,但如果你需要一个解决方法,你需要指定你想要它的行为方式 .
在任何情况下,您都需要实现一个继承自
complex
的新类,并重写__floordiv__
方法我刚刚找到了mpmath库 . 它有大量的工具,包括复杂数字的地板和模块 . 它似乎实际上包含在SymPy中 .
除非
(anything)
是(2+3j)
的倍数,否则你的答案也会很复杂,因此地板划分没有明确定义 . 您可以通过乘以(anything).conjugate / (abs(anything)**2)
来实现除法