numpy.fft.ifft2#
- fft.ifft2(a, s=None, axes=(-2, -1), norm=None, out=None)[原始碼]#
計算 2 維反離散傅立葉轉換。
此函數藉由快速傅立葉轉換 (FFT) 計算 M 維陣列中任意數量的軸之 2 維離散傅立葉轉換的反轉換。換句話說,在數值精度範圍內,
ifft2(fft2(a)) == a
。預設情況下,反轉換是針對輸入陣列的最後兩個軸計算。與
ifft
類似,輸入的順序應與fft2
傳回的順序相同,也就是說,它在兩個軸的低階角應具有零頻率項,在這些軸的前半部分應具有正頻率項,在軸的中間應具有奈奎斯特頻率項,在兩個軸的後半部分應具有負頻率項,並依負頻率遞減的順序排列。- 參數:
- aarray_like
輸入陣列,可以是複數。
- ssequence of ints, optional
輸出的形狀(每個軸的長度)(
s[0]
指的是軸 0,s[1]
指的是軸 1,依此類推)。這對應於ifft(x, n)
的 n。沿著每個軸,如果給定的形狀小於輸入的形狀,則會裁剪輸入。如果給定的形狀較大,則會用零填充輸入。版本 2.0 中變更:如果為
-1
,則會使用整個輸入(不進行填充/修剪)。如果未給定 s,則會使用輸入沿著 axes 指定的軸的形狀。請參閱關於
ifft
零填充問題的注意事項。版本 2.0 中已棄用:如果 s 不是
None
,則 axes 也不能是None
。版本 2.0 中已棄用:s 必須僅包含
int
s,而不是None
值。None
值目前表示在對應的 1-D 轉換中使用n
的預設值,但此行為已被棄用。- axessequence of ints, optional
要計算 FFT 的軸。如果未給定,則使用最後兩個軸。axes 中的重複索引表示在該軸上執行多次轉換。單元素序列表示執行一維 FFT。預設值:
(-2, -1)
。版本 2.0 中已棄用:如果指定了 s,則要轉換的對應 axes 不得為
None
。- norm{“backward”, “ortho”, “forward”}, optional
正規化模式(請參閱
numpy.fft
)。預設值為 "backward"。表示正向/反向轉換對的哪個方向進行縮放以及使用哪個正規化因子。版本 1.20.0 中新增:新增了 "backward"、"forward" 值。
- outcomplex ndarray, optional
如果提供,結果將放置在此陣列中。它應具有適用於所有軸的適當形狀和 dtype(因此與傳入除微不足道的
s
以外的所有內容不相容)。版本 2.0.0 中新增。
- 傳回值:
- outcomplex ndarray
沿著 axes 指示的軸轉換的截斷或零填充輸入,如果未給定 axes,則為最後兩個軸。
- 引發:
- ValueError
如果 s 和 axes 的長度不同,或者未給定 axes 且
len(s) != 2
。- IndexError
如果 axes 的元素大於 a 的軸數。
另請參閱
註解
請參閱
ifftn
以取得詳細資訊和繪圖範例,並參閱numpy.fft
以取得使用的定義和慣例。與
ifft
類似,零填充是透過將零附加到沿指定維度的輸入來執行。雖然這是常見的方法,但可能會導致令人驚訝的結果。如果需要另一種形式的零填充,則必須在呼叫ifft2
之前執行。範例
>>> import numpy as np >>> a = 4 * np.eye(4) >>> np.fft.ifft2(a) array([[1.+0.j, 0.+0.j, 0.+0.j, 0.+0.j], # may vary [0.+0.j, 0.+0.j, 0.+0.j, 1.+0.j], [0.+0.j, 0.+0.j, 1.+0.j, 0.+0.j], [0.+0.j, 1.+0.j, 0.+0.j, 0.+0.j]])