В numpy, как я могу создать сложную матрицу? - PullRequest
0 голосов
/ 14 февраля 2019

В строке

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]])

Я думаю, что я должен создать е как комплекс.Как создать сложную матрицу с нулями в качестве элементов?

1 Ответ

0 голосов
/ 14 февраля 2019

Установите аргумент 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],...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...