

scipy.fftpack.fft(y)を実行したときに、返却値の１つのデータに以下の数値がありました。

> 1.54991569e+03-9.96587885e+03j

「e+03」は、10の3乗という意味なのは解りますが、

> -9.96587885e+03j

の「-」と「j」ってなんでしょうか？


CC BY-SA 4.0
2020-02-09T10:16:33.500
62904
2020-02-09T10:26:43.667
37760
question
python 数学
数値「1.54991569e+03-9.96587885e+03j」の「-9.96587885e+03j」の「-」と「j」ってなんでしょうか？


これは複素数です。a+bj の形をしていて、j が虚数単位です。`1.54991569e+03-9.96587885e+03j` は実部が
`1.54991569e+03`、虚部が `-9.96587885e+03` の複素数です。

日本の高校数学などで使われる虚数単位は i で書かれていることが多いですが、分野によっては j が使われます。Python では標準で a+bj
の形のリテラルが複素数として扱われることになっています。

<https://docs.python.org/ja/3/library/stdtypes.html#typesnumeric>

> 数値リテラルに `'j'` または `'J'` をつけると虚数 (実部がゼロの複素数)
> を与え、それに整数や浮動小数点数を加えて実部と虚部を持つ複素数を得られます。

`scipy.fftpack.fft` のドキュメントにも、この関数が複素数を要素とする ndarray を返すと書かれています。

<https://docs.scipy.org/doc/scipy/reference/generated/scipy.fftpack.fft.html>

> Returns z : complex ndarray


CC BY-SA 4.0
2020-02-09T10:26:43.667
62905
2020-02-09T10:26:43.667
19110
62904
answer