這個(gè)方法是在不改變數(shù)據(jù)內(nèi)容的情況下苔咪,改變一個(gè)數(shù)組的格式岔激,參數(shù)及返回值窘俺,官網(wǎng)介紹:
a:數(shù)組--需要處理的數(shù)據(jù)
newshape:新的格式--整數(shù)或整數(shù)數(shù)組,如(2,3)表示2行3列敞恋,新的形狀應(yīng)該與原來的形狀兼容丽啡,即行數(shù)和列數(shù)相乘后等于a中元素的數(shù)量
order:
?首先做出翻譯:order?: 可選范圍為{‘C’, ‘F’, ‘A’}。使用索引順序讀取a的元素硬猫,并按照索引順序?qū)⒃胤诺阶儞Q后的的數(shù)組中碌上。如果不進(jìn)行order參數(shù)的設(shè)置倚评,默認(rèn)參數(shù)為C。
(1)“C”指的是用類C寫的讀/索引順序的元素馏予,最后一個(gè)維度變化最快天梧,第一個(gè)維度變化最慢。以二維數(shù)組為例霞丧,簡(jiǎn)單來講就是橫著讀呢岗,橫著寫,優(yōu)先讀/寫一行蛹尝。
(2)“F”是指用FORTRAN類索引順序讀/寫元素后豫,最后一個(gè)維度變化最慢,第一個(gè)維度變化最快突那。豎著讀挫酿,豎著寫,優(yōu)先讀/寫一列愕难。注意早龟,“C”和“F”選項(xiàng)不考慮底層數(shù)組的內(nèi)存布局,只引用索引的順序猫缭。
(3)“A”選項(xiàng)所生成的數(shù)組的效果與原數(shù)組a的數(shù)據(jù)存儲(chǔ)方式有關(guān)葱弟,如果數(shù)據(jù)是按照FORTRAN存儲(chǔ)的話,它的生成效果與”F“相同猜丹,否則與“C”相同芝加。這里可能聽起來有點(diǎn)模糊,下面會(huì)給出示例射窒。
二藏杖、示例解釋
1、首先隨機(jī)生成一個(gè)4行3列的數(shù)組
2脉顿、使用reshape蝌麸,這里有兩種使用方法,可以使用np.reshape(r,(-1,1),order='F')弊予,也可以使用r1=r.reshape((-1,1),order='F'),這里我選擇使用第二種方法开财。通過示例可以觀察不同的order參數(shù)效果汉柒。
通過例子可以看出來,F(xiàn)是優(yōu)先對(duì)列信息進(jìn)行操作责鳍,而C是優(yōu)先行信息操作碾褂。如果未對(duì)r的格式進(jìn)行設(shè)置,那么我們r(jià)ashape的時(shí)候以“A”的順序進(jìn)行order的話历葛,它的效果和“C”相同正塌。
3嘀略、我們將r的存儲(chǔ)方式進(jìn)行修改,修改為類Fortan的方式進(jìn)行存儲(chǔ)乓诽。并做與第2步類似的操作帜羊。
基礎(chǔ)操作樣例:
1.引入numpy,名稱為np?
2.接下來創(chuàng)建一個(gè)數(shù)組a鸠天,可以看到這是一個(gè)一維的數(shù)組?
3.使用reshape()方法來更改數(shù)組的形狀讼育,可以看到看數(shù)組d成為了一個(gè)二維數(shù)組
4.通過reshape生成的新數(shù)組和原始數(shù)組公用一個(gè)內(nèi)存,也就是說稠集,假如更改一個(gè)數(shù)組的元素奶段,另一個(gè)數(shù)組也將發(fā)生改變?
5.同理還可以得到一個(gè)三維數(shù)組?
reshape(-1,1)什么意思:
大意是說,數(shù)組新的shape屬性應(yīng)該要與原來的配套剥纷,如果等于-1的話痹籍,那么Numpy會(huì)根據(jù)剩下的維度計(jì)算出數(shù)組的另外一個(gè)shape屬性值。
舉例:
同理,只給定行數(shù)撑帖,newshape等于-1蓉坎,Numpy也可以自動(dòng)計(jì)算出新數(shù)組的列數(shù)。