在numpy中,我如何创建复杂的矩阵?

问题描述 投票:0回答:1

在线

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。如何创建一个以零为单位的复杂矩阵?

python numpy matrix complex-numbers
1个回答
1
投票

dtype中的np.zeros参数设置为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],...
© www.soinside.com 2019 - 2024. All rights reserved.