Python?ndarray?數(shù)組的變形詳情
一、維數(shù)的變形

1. 一維數(shù)組轉(zhuǎn)二維數(shù)組以及同維變換
import numpy as np arr_1d = np.arange(12) # 使用 numpy 的 arr1 = np.reshape(arr_1d,(3,4)) # 使用 ndarray 的 arr2 = arr_1d.reshape((3, 4))
函數(shù)resize()的作用跟reshape()類似,但是會改變所作用的數(shù)組,相當(dāng)于有inplace=True的效果
2. 二維數(shù)組轉(zhuǎn)化維度也可以用這兩個函數(shù)
import numpy as np arr_2d = np.array([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]]) arr_2d.reshape((2,6)) # -1 表示不確定有多少列 arr_2d.reshape((4,-1))
3. 二維數(shù)組轉(zhuǎn)一維數(shù)組
ravel() 和flatten()
兩者的區(qū)別在于返回拷貝(copy)還是返回視圖(view),flatten()返回一份拷貝,需要分配新的內(nèi)存空間,對拷貝所做的修改不會影響原始矩陣,而ravel()返回的是視圖(view),會影響原始矩陣。因此在使用ravel時候要格外小心,以免數(shù)據(jù)修改造成原始數(shù)據(jù)的改變。
import numpy as np arr_2d = np.array([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]]) a = arr_2d.flatten() a[0] = -999 a, arr_2d b = arr_2d.ravel() b b[0] = -999 b, arr_2d
二、數(shù)組的拼接
1. 橫向拼接
hstack() ——水平拼接,沿著行的方向,對列進行拼接。concatenate() 也可以完成相應(yīng)的功能,axis=1 時,沿水平方向疊加。
import numpy as np a = np.array([1,2,3,4]).reshape((2,2), order='F') b = np.array([0,0,1,1]).reshape((2,2)) a, b harr = np.hstack((a, b)) harr harr = np.concatenate((a, b), axis=1) harr
2. 縱向拼接
vstack() ——垂直拼接,沿著列的方向,對行進行拼接。concatenate() 也可以完成相應(yīng)的功能,axis=0 時,沿垂直方向疊加
import numpy as np a = np.array([1,1,0,0]).reshape((2,2)) b = np.array([0,1,0,1]).reshape((2,2)) a, b varr = np.vstack((a, b)) varr varr = np.concatenate((a, b), axis=0) varr
三、數(shù)組的分割
1. 橫向分割
hsplit() ——水平拆分,沿著行的方向,對列進行拼接。split() 也可以完成相應(yīng)的功能,axis=1 時,沿水平方向拆分。
import numpy as np a = np.array([1,1,0,0]).reshape((2,2)) b = np.array([0,1,0,1]).reshape((2,2)) harr = np.hstack((a, b)) np.hsplit(harr, 2) np.split(harr, 2, axis=1)
2. 縱向分割
hvplit() ——垂直拆分,沿著列的方向,對行進行拼接。split() 也可以完成相應(yīng)的功能,axis=0 時,沿垂直方向拆分。
import numpy as np a = np.array([1,1,0,0]).reshape((2,2)) b = np.array([0,1,0,1]).reshape((2,2)) varr = np.vstack((a, b)) np.vsplit(varr, 2) np.split(varr, 2, axis=0)

到此這篇關(guān)于Python ndarray 數(shù)組的變形詳情的文章就介紹到這了,更多相關(guān)Python ndarray 數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
OpenCV實現(xiàn)手勢虛擬拖拽的使用示例(附demo)
本文主要介紹了OpenCV實現(xiàn)手勢虛擬拖拽的使用示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11
Pytorch 神經(jīng)網(wǎng)絡(luò)—自定義數(shù)據(jù)集上實現(xiàn)教程
今天小編就為大家分享一篇Pytorch 神經(jīng)網(wǎng)絡(luò)—自定義數(shù)據(jù)集上實現(xiàn)教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
Python3.0中普通方法、類方法和靜態(tài)方法的比較
本文主要講解了Python3中普通方法、類方法和靜態(tài)方法的區(qū)別與比較,費了作者可大的勁整理了,希望對大家有用2019-05-05

