生成 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)