您好,登錄后才能下訂單哦!
來(lái)自 《Python數(shù)據(jù)分析基礎(chǔ)教程:Numpy 學(xué)習(xí)指南(第2版)》
Numpy改變數(shù)組維度的方法有:
reshape() ravel() flatten()
用元組設(shè)置維度
transpose() resize()
下面將依次進(jìn)行說(shuō)明
0. 首先,創(chuàng)建一個(gè)多維數(shù)組
from numpy import * a = arange(24)
得到:
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
1.reshape 函數(shù)
b = a.reshape(2,3,4) print(b)
得到一個(gè) 2*3*4 維的數(shù)組:
[[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]]
可以想象成2層小洋樓,每層有 3*4 個(gè)房間
2.ravel函數(shù) 可以將多維數(shù)組展平(也就是變回一維)
c = b.ravel() print(c)
得到一維數(shù)組
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
3.flatten函數(shù) 也是將多維數(shù)組展平,與ravel函數(shù)的功能相同,不過flatten函數(shù)會(huì)請(qǐng)求分配內(nèi)存來(lái)保存結(jié)果,而ravel函數(shù)只是返回?cái)?shù)組的一個(gè)視圖(view)
c = b.flatten() print(c)
得到一維數(shù)組
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
4.用元組設(shè)置維度
直接用一個(gè)正整數(shù)元組來(lái)設(shè)置數(shù)組的維度
b.shape = (6,4) print(b)
這種做法將直接改變所操作的數(shù)組,現(xiàn)在數(shù)組b變成了一個(gè) 6*4 的多維數(shù)組
[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11] [12 13 14 15] [16 17 18 19] [20 21 22 23]]
5.transpose函數(shù) 將矩陣進(jìn)行轉(zhuǎn)置
d = b.transpose() print(d)
得到 4*6 的多維數(shù)組
[[ 0 4 8 12 16 20] [ 1 5 9 13 17 21] [ 2 6 10 14 18 22] [ 3 7 11 15 19 23]]
6.resize函數(shù) 和reshape函數(shù)的功能一樣,但resize會(huì)直接修改所操作的數(shù)組
b.resize((2,12)) print(b)
得到 2*12 的兩維數(shù)組
[[ 0 1 2 3 4 5 6 7 8 9 10 11] [12 13 14 15 16 17 18 19 20 21 22 23]]
并且這一步不可以通過賦值來(lái)實(shí)現(xiàn),如下所示:
e = b.resize((2,12)) print(e)
此時(shí)結(jié)果為:
None
以上這篇Numpy 改變數(shù)組維度的幾種方法小結(jié)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。