「每天3分鐘學Python」多維數組ravel成一維

01

昨天介紹到 多維數組 如何利用 flatten() 降為 1 維,今天討論實現的另一個技術,通過 ravel(a) . Python 之所以強大,其中原因之一,它提供了方便的API供大家使用,並且API的種類多元化,可以通過多種技術方法實現。

02

numpy.ravel(a)

ravel是 numpy模塊的方法,類比 Java 語言就是類的靜態方法。而 flatten() 是 ndarray 來調用的,自然它相當於 Java 的實例方法。

意識到這點後,接下來,ravel 的使用就輕鬆自如了。

舉例:

x = np.arange(0, 16).reshape(2, 2, 4)

array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7]], [[ 8, 9, 10, 11], [12, 13, 14, 15]]])

x3 = np.ravel(x)

x3 結果:

array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])

同時注意到,x 是不變的,返回的結果是1-D 數組。

同樣,ravel 也是默認按照 row-style 降為1維的,這是 c語言風格。

如果我想按照 column-style 降為1維呢? 這是 Fortran 語言風格。 設置 參數 order = 'F' ,也就是 Fortran 語言的首字符。

x4 = np.ravel(x, order='F')

x4

array([ 0, 8, 4, 12, 1, 9, 5, 13, 2, 10, 6, 14, 3, 11, 7, 15])


分享到:


相關文章: