生成 Numpy 复数数组
Generating Numpy Arrays of Complex Numbers
如何快速生成 计算的 复数的 numpy
数组?我的意思是,虚部是根据值数组计算的。
我曾尝试使用 python 的文字 j
,但没有成功。它似乎只接受 float 和 int 案例。 cmath
拒绝处理数组。以下是我目前的尝试。
import numpy as np
import cmath
E0, k, z, w = np.ones(4)
def Ex(t):
exp = complex(0,k*z-w*t)
return E0*np.exp(exp)
t = np.arange(0,10,0.01)
E = Ex(t)
这会导致以下错误:
~\AppData\Local\Temp/ipykernel_8444/3633149291.py in Ex(t)
7
8 def Ex(t):
----> 9 exp = complex(0,k*z-w*t)
10 return E0*np.exp(exp)
11
TypeError: only size-1 arrays can be converted to Python scalars
我也对不利用cmath
的解决方案持开放态度,但如果没有以下解决方法,我就无法形成复数数组:
times = np.arange(0,10,0.01)
E = [Ex(t) for t in times]
执行此操作的标准方法是 exp = 1j*(k*z-w*t)
。
如何快速生成 计算的 复数的 numpy
数组?我的意思是,虚部是根据值数组计算的。
我曾尝试使用 python 的文字 j
,但没有成功。它似乎只接受 float 和 int 案例。 cmath
拒绝处理数组。以下是我目前的尝试。
import numpy as np
import cmath
E0, k, z, w = np.ones(4)
def Ex(t):
exp = complex(0,k*z-w*t)
return E0*np.exp(exp)
t = np.arange(0,10,0.01)
E = Ex(t)
这会导致以下错误:
~\AppData\Local\Temp/ipykernel_8444/3633149291.py in Ex(t)
7
8 def Ex(t):
----> 9 exp = complex(0,k*z-w*t)
10 return E0*np.exp(exp)
11
TypeError: only size-1 arrays can be converted to Python scalars
我也对不利用cmath
的解决方案持开放态度,但如果没有以下解决方法,我就无法形成复数数组:
times = np.arange(0,10,0.01)
E = [Ex(t) for t in times]
执行此操作的标准方法是 exp = 1j*(k*z-w*t)
。