在 numpy 中,我怎样才能创建一个复杂的矩阵?
In numpy, how can I create a complex matrix?
第
行
e[i][j][k]=np.divide(ftf[i][j][k],ftg[i][j][k])
而 运行 下面的代码,
'''
Online Python Compiler.
Code, Compile, Run and Debug python program online.
Write your code in this editor and press "Run" button to execute it.
'''
import numpy as np
f=np.zeros((2,2,2))
g=np.zeros((2,2,2))
f=np.add(f,1)
g=np.add(g,2)
for i in range(0,2):
for j in range(0,2):
for k in range(0,2):
f[i][j][k] = (i+1)*(j+1)+(k+1)
g[i][j][k] = (i+2)*(j+3)+(k+4)
ftf = np.fft.fftn(f)
ftg = np.fft.fftn(g)
print(f)
print(g)
print(ftf)
print(ftg)
print("------")
e =np.zeros((2,2,2))
for i in range(0,2):
for j in range(0,2):
for k in range(0,2):
if np.isnan(ftg[i][j][k]):
e[i][j][k]=0
else:
e[i][j][k]=np.divide(ftf[i][j][k],ftg[i][j][k])
print(e)
print("------")
h= np.fft.ifftn(e)
print(h)
返回错误:
/home/main.py:36: ComplexWarning: Casting complex values to real
discards the imaginary part
e[i][j][k]=np.divide(ftf[i][j][k],ftg[i][j][k])
我认为我必须将 e 创建为复数。如何创建一个以零为元素的复数矩阵?
将 np.zeros
中的 dtype
参数设置为 complex
:
np.zeros((10,10), dtype=complex)
array([[0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j,
0.+0.j, 0.+0.j],
[0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j,
0.+0.j, 0.+0.j],
[0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j,
0.+0.j, 0.+0.j],...
第
行e[i][j][k]=np.divide(ftf[i][j][k],ftg[i][j][k])
而 运行 下面的代码,
'''
Online Python Compiler.
Code, Compile, Run and Debug python program online.
Write your code in this editor and press "Run" button to execute it.
'''
import numpy as np
f=np.zeros((2,2,2))
g=np.zeros((2,2,2))
f=np.add(f,1)
g=np.add(g,2)
for i in range(0,2):
for j in range(0,2):
for k in range(0,2):
f[i][j][k] = (i+1)*(j+1)+(k+1)
g[i][j][k] = (i+2)*(j+3)+(k+4)
ftf = np.fft.fftn(f)
ftg = np.fft.fftn(g)
print(f)
print(g)
print(ftf)
print(ftg)
print("------")
e =np.zeros((2,2,2))
for i in range(0,2):
for j in range(0,2):
for k in range(0,2):
if np.isnan(ftg[i][j][k]):
e[i][j][k]=0
else:
e[i][j][k]=np.divide(ftf[i][j][k],ftg[i][j][k])
print(e)
print("------")
h= np.fft.ifftn(e)
print(h)
返回错误:
/home/main.py:36: ComplexWarning: Casting complex values to real discards the imaginary part
e[i][j][k]=np.divide(ftf[i][j][k],ftg[i][j][k])
我认为我必须将 e 创建为复数。如何创建一个以零为元素的复数矩阵?
将 np.zeros
中的 dtype
参数设置为 complex
:
np.zeros((10,10), dtype=complex)
array([[0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j,
0.+0.j, 0.+0.j],
[0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j,
0.+0.j, 0.+0.j],
[0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j,
0.+0.j, 0.+0.j],...