numpy.fft.rfftn#

fft.rfftn(a, s=None, axes=None, norm=None, out=None)[源代码]#

计算实数输入的 N 维离散傅里叶变换.

此函数通过快速傅里叶变换 (FFT) 计算 M 维实数数组中任意数量轴上的 N 维离散傅里叶变换. 默认情况下,所有轴都经过变换,实数变换在最后一个轴上执行,而其余变换是复数.

参数:
aarray_like

输入数组,被认为是实数.

ssequence of ints, optional

从输入中使用的形状(每个变换轴的长度).( s[0] 指轴 0, s[1] 指轴 1,依此类推). s 的最后一个元素对应于 rfft(x, n)n ,而对于其余轴,它对应于 fft(x, n)n . 沿着任何轴,如果给定的形状小于输入的形状,则输入将被裁剪. 如果它更大,则输入将用零填充.

在 2.0 版本发生变更: 如果它是 -1 ,则使用整个输入(不填充/修剪).

如果未给出 s ,则使用输入沿 axes 指定的轴的形状.

自 2.0 版本弃用: 如果 s 不是 None ,则 axes 也不能是 None .

自 2.0 版本弃用: s 必须仅包含 int s,而不是 None 值. None 值当前表示在相应的 1-D 变换中使用 n 的默认值,但是此行为已被弃用.

axessequence of ints, optional

计算 FFT 的轴.如果未给出,则使用最后 len(s) 个轴,如果 s 也未指定,则使用所有轴.

自 2.0 版本弃用: 如果指定了 s ,则还必须显式指定要变换的相应 axes .

norm{“backward”, “ortho”, “forward”}, optional

归一化模式(参见 numpy.fft ).默认值为"backward".指示前向/后向变换对的哪个方向被缩放以及使用什么归一化因子.

在 1.20.0 版本加入: 添加了"backward","forward"值.

outcomplex ndarray, optional

如果提供,结果将放置在此数组中.对于所有轴,它应具有适当的形状和 dtype(因此与传入除了琐碎的 s 之外的所有内容都不兼容).

在 2.0.0 版本加入.

返回:
outcomplex ndarray

沿 axes 指示的轴,或通过 sa 的组合转换的截断或零填充输入,如上面的参数部分所述. 最后一个变换轴的长度将为 s[-1]//2+1 ,而其余变换轴的长度将根据 s ,或与输入保持不变.

Raises:
ValueError

如果 saxes 具有不同的长度.

IndexError

如果 axes 的元素大于 a 的轴数.

参见

irfftn

rfftn 的逆,即实数输入的 n 维 FFT 的逆.

fft

一维 FFT,包括所使用的定义和约定.

rfft

实数输入的一维 FFT.

fftn

n 维 FFT.

rfft2

实数输入的二维 FFT.

注释

实数输入的变换通过最后一个变换轴执行,如 rfft 一样,然后通过其余轴执行变换,如 fftn 一样. 输出的顺序对于最后一个变换轴与 rfft 相同,对于其余变换轴与 fftn 相同.

有关详细信息,定义和使用的约定,请参见 fft .

示例

>>> import numpy as np
>>> a = np.ones((2, 2, 2))
>>> np.fft.rfftn(a)
array([[[8.+0.j,  0.+0.j], # may vary
        [0.+0.j,  0.+0.j]],
       [[0.+0.j,  0.+0.j],
        [0.+0.j,  0.+0.j]]])
>>> np.fft.rfftn(a, axes=(2, 0))
array([[[4.+0.j,  0.+0.j], # may vary
        [4.+0.j,  0.+0.j]],
       [[0.+0.j,  0.+0.j],
        [0.+0.j,  0.+0.j]]])