Numpy 改變數(shù)組維度的幾種方法小結
來自 《Python數(shù)據(jù)分析基礎教程:Numpy 學習指南(第2版)》
Numpy改變數(shù)組維度的方法有:
reshape() ravel() flatten()
用元組設置維度
transpose() resize()
下面將依次進行說明
0. 首先,創(chuàng)建一個多維數(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)
得到一個 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 個房間
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ù)會請求分配內存來保存結果,而ravel函數(shù)只是返回數(shù)組的一個視圖(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ù)元組來設置數(shù)組的維度
b.shape = (6,4) print(b)
這種做法將直接改變所操作的數(shù)組,現(xiàn)在數(shù)組b變成了一個 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ù) 將矩陣進行轉置
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會直接修改所操作的數(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]]
并且這一步不可以通過賦值來實現(xiàn),如下所示:
e = b.resize((2,12)) print(e)
此時結果為:
None
以上這篇Numpy 改變數(shù)組維度的幾種方法小結就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python正則表達式函數(shù)match()和search()的區(qū)別
match()和search()都是python中的正則匹配函數(shù),那這兩個函數(shù)有何區(qū)別呢?本文詳細介紹了這2個函數(shù)的區(qū)別2021-10-10
使用tensorflow保存和恢復模型saver.restore
這篇文章主要介紹了使用tensorflow保存和恢復模型saver.restore方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02
利用Python實現(xiàn)Shp格式向GeoJSON的轉換方法
JSON(JavaScript Object Nonation)是利用鍵值對+嵌套來表示數(shù)據(jù)的一種格式,以其輕量、易解析的優(yōu)點,這篇文章主要介紹了利用Python實現(xiàn)Shp格式向GeoJSON的轉換,需要的朋友可以參考下2019-07-07

