[英]What does the 'axis' parameter in numpy.fft.fft mean?
快速傅立葉變換( fft
; 文檔)將“a”轉換為其傅立葉光譜等效值:
numpy.fft.fft(a, n=None, axis=-1, norm=None)
據我所知,參數n
表示 output 中有多少樣本,如果n
小於a
中的樣本數,則 output 要么被裁剪,要么如果n
更大,則用零填充。
axis
是做什么的? 究竟是什么意思? 我還沒有找到任何明確的使用例子。
np.fft.fft
計算一維離散傅里葉變換。 如果您給出一維輸入(向量),它只會計算該輸入的變換。 但是,如果您的輸入具有多個維度,例如 2D 矩陣或更高維度,NumPy 假定您提供了許多向量並且您想要計算每個向量的變換。 axis
參數表示與這些向量對應的維度,默認情況下它是最后一個( -1
)。 因此,例如,對於 2D 矩陣m
,如果axis=0
則每列m[:, 0]
、 m[:, 1]
等將是計算變換的向量,同時傳遞axis=1
(相當於默認的axis=-1
),每行m[0, :]
, m[1, :]
等都將被視為變換的向量。 如果要計算輸入中所有值的變換,無論尺寸如何,都必須展平輸入,例如使用np.ravel
。
順便說一句,這是 NumPy(和許多其他代數包)中非常常見的約定,其中一維運算可以通過接收指示執行操作的維度的axis
參數來處理多維輸入。
numpy.fft.fft()
返回數組的一維傅里葉變換。 這意味着如果您有一個形狀(N,M)
的數組,它不會給您一個二維 fft( np.fft.fft2()
會),而是沿最后一個軸返回 fft。 如果您希望計算 fft 而不是沿列而不是沿行,則應傳遞axis=0
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.