numpy之reshape注意事項

2021-08-19 13:31:08 字數 1061 閱讀 4929

看一下這個陣列(66,65,9),乙個元素帶了9個變數,溫度、濕度、風速等等,常見的地理資料集

需要帶入模型裡計算,但是模型只認2d,需要重新reshape一下。然後就發現一些小細節,畢竟菜雞tat…

看一下reshape的介紹

這裡有個order引數

order=』c』,是行優先讀取(預設)

order=』f』,是列優先讀取

order=』a』,是按照輸入的array自動進行選擇

那麼,如果我想把上面那個(66,65,9)的陣列整理成2d的也就是(4290,9),那麼我應該這麼寫x_img = new_img.reshape(-1,9,order='c')

這樣的話就是按照一行一行的讀,第一行讀完,此時讀到的資料的維數應該是(65,9),讀第二行的時候,原來第二行的第乙個元素的新位置應該是66…依次類推…那麼原來的3d陣列第40行第二個元素,在2d中的位置:40*65+2=2602,

輸出看一下

>>>print new_img[40][2]

[3.6000000e+01 4.1136532e+01 6.0634727e+01 1.1384450e+00 2.7991520e+01

2.5606097e+02 6.3569881e+01 4.9082675e+00 9.5885789e+04

>>>x_img = new_img.reshape(-1,9,order='c')

>>>print x_img[2602]

[3.6000000e+01 4.1136532e+01 6.0634727e+01 1.1384450e+00 2.7991520e+01

2.5606097e+02 6.3569881e+01 4.9082675e+00 9.5885789e+04]

numpy庫reshape用法詳解

numpy.reshape 重塑 給陣列乙個新的形狀而不改變其資料 numpy.reshape a,newshape,order c 引數 a array like 要重新形成的陣列。newshape int或tuple的整數 新的形狀應該與原始形狀相容。如果是整數,則結果將是該長度的1 d陣列。乙...

numpy中shape和reshape的用法

1 shape 在python中匯入numpy庫之後,我們可以通過矩陣的屬性shape獲取矩陣的維度。如圖所示 import numpy as np b np.array 1,2,3,4 5,6,7,8 print b print b.shape 輸出行數和列數 print b.shape 0 輸出...

numpy中的reshape函式詳解

python中的numpy陣列有乙個reshape方法,我們時常使用,但是目前為止沒有對他進行深入的研究。在多維矩陣的情況下,reshape出來的,到底是什麼樣子的矩陣?所以嘗試構造乙個3維矩陣,剖析一下reshape的原理。首先構造乙個 5,4,3 的三維矩陣a,具體數值如下圖所示 然後將其res...