繁体   English   中英

在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:将复数值转换为实数会丢弃虚部
E [i] [j] [k]的= np.divide(FTF [i] [j] [k]的,FTG [i] [j] [k]的)

我想我必须将e创建为复杂的。 如何创建一个以零为元素的复杂矩阵?

设置dtype的参数np.zeroscomplex

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],...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM