溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Numpy 改變數(shù)組維度的幾種方法小結(jié)

發(fā)布時(shí)間:2020-09-13 05:25:03 來(lái)源:腳本之家 閱讀:483 作者:m0_37586991 欄目:開發(fā)技術(shù)

來(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è)參考,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(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)容。

AI