花式索引(Fancy indexing)是NumPy中的一個概念,它允許用戶通過傳遞一個或多個索引數組來選擇數組中的元素。這些索引數組可以是整數、布爾值或其他數組,它們的形狀可以與被索引數組不同。花式索引的主要優點是可以選擇任意形狀的子集,包括不連續的、重複的、任意形狀的子集。
花式索引可以分為一維索引和多維索引。在一維索引中,可以使用一個一維數組來索引另一個數組,結果將是一個新的數組,其形狀與索引數組相同,其中每個元素是被索引數組中對應下標的值。在多維索引中,可以使用多個索引數組來選擇多維數組中的元素。
例如,假設有一個一維數組a = np.array(),可以使用另一個一維數組idx = np.array()作為索引來選擇對應的元素,即a[idx],這將輸出。
花式索引的一個典型套用場景是,當需要從數組中提取不連續或特定的元素時,而不是使用切片(slice)操作獲取連續的元素子集。