numpy.fft.irfftn#
- fft.irfftn(a, s=None, axes=None, norm=None, out=None)[source]#
計算
rfftn
的反轉換。此函數計算 M 維陣列中任意數量的軸上實數輸入的 N 維離散傅立葉轉換的反轉換,方法是使用快速傅立葉轉換 (FFT)。換句話說,在數值精度範圍內,
irfftn(rfftn(a), a.shape) == a
。(a.shape
是必要的,就像irfft
需要len(a)
一樣,原因相同。)輸入的排序方式應與
rfftn
返回的方式相同,即對於最後一個轉換軸,與irfft
相同,而沿所有其他軸,與ifftn
相同。- 參數:
- aarray_like (類陣列)
輸入陣列。
- s整數序列,選用
輸出的形狀 (每個轉換軸的長度) (
s[0]
指的是軸 0,s[1]
指的是軸 1,依此類推)。s 也是沿此軸使用的輸入點數,但最後一個軸除外,其中使用s[-1]//2+1
個輸入點。沿任何軸,如果 s 指示的形狀小於輸入的形狀,則會裁剪輸入。如果較大,則會用零填充輸入。在 2.0 版本中變更:如果為
-1
,則會使用整個輸入 (不填充/修剪)。如果未給定 s,則使用沿 axes 指定軸的輸入形狀。最後一個軸除外,該軸被視為
2*(m-1)
,其中m
是輸入沿該軸的長度。自 2.0 版本起已棄用:如果 s 不是
None
,則 axes 也不能是None
。自 2.0 版本起已棄用:s 必須僅包含
int
,而不是None
值。None
值目前表示在相應的 1 維轉換中使用n
的預設值,但此行為已棄用。- axes整數序列,選用
計算反 FFT 的軸。如果未給定,則使用最後 len(s) 個軸,如果也未指定 s,則使用所有軸。axes 中重複的索引表示在該軸上執行多次反轉換。
自 2.0 版本起已棄用:如果指定了 s,則也必須明確指定要轉換的相應 axes。
- norm{“backward”, “ortho”, “forward”},選用
正規化模式 (請參閱
numpy.fft
)。預設值為 “backward”。指示前向/後向轉換對中的哪個方向被縮放以及使用哪個正規化因子。在 1.20.0 版本中新增:新增了 “backward”、“forward” 值。
- outndarray,選用
如果提供,結果將放置在此陣列中。它應該具有適合最後一次轉換的形狀和 dtype。
在 2.0.0 版本中新增。
- 傳回:
- outndarray
截斷或零填充的輸入,沿 axes 指示的軸轉換,或通過 s 或 a 的組合轉換,如上述參數部分所述。每個轉換軸的長度由 s 的相應元素給出,或者如果未給定 s,則為每個軸 (最後一個軸除外) 的輸入長度。在最後一個轉換軸中,如果未給定 s,則輸出的長度為
2*(m-1)
,其中m
是輸入的最後一個轉換軸的長度。若要在最後一個軸中獲得奇數個輸出點,則必須指定 s。
- 引發:
- ValueError
如果 s 和 axes 的長度不同。
- IndexError
如果 axes 的元素大於 a 的軸數。
另請參閱
註解
請參閱
fft
以了解使用的定義和慣例。請參閱
rfft
以了解用於實數輸入的定義和慣例。hermitian 輸入的正確解釋取決於原始資料的形狀,如 s 給定。這是因為每個輸入形狀都可能對應於奇數或偶數長度的訊號。預設情況下,
irfftn
假設輸出長度為偶數,這會將最後一個條目放在奈奎斯特頻率;與其對稱對應物混疊。當執行最終的複數到實數轉換時,最後一個值因此被視為純實數。為了避免遺失資訊,必須給定實數輸入的正確形狀。範例
>>> import numpy as np >>> a = np.zeros((3, 2, 2)) >>> a[0, 0, 0] = 3 * 2 * 2 >>> np.fft.irfftn(a) array([[[1., 1.], [1., 1.]], [[1., 1.], [1., 1.]], [[1., 1.], [1., 1.]]])