我們定義了陣列data,
我們發現c從一維變成了二維,從以前的切片知識可知,操作本質是對data進行切片,逗號前面部分,表示data0軸上的所有元素,
也就是data的全部元素,而逗號後面的元素表示1軸上的元素,在設定元素取值範圍的時候,使用了np.newaxis,檢視文件,
我們會發現np.newaxis是none。如果我們用none代替np.newaxis會是一樣的效果嗎?
結果顯而易見,是一樣的。我們剛才考慮到它是切片操作,那麼它是不是與原陣列共用乙個檢視那?
結果是,共用同乙個檢視。
我們把data變為二維陣列的時候,將1軸設為none,將0軸設為none將會是什麼樣的操作呢?
符合我們的預期。
針對這種在切片中使用newaxis的方法,numpy提供了乙個替代函式--np.expand_dims()。
函式是根據軸來調整陣列的形狀。
我們在numpy中,實現陣列與陣列的結合,以及針對乙個陣列進行分割,有幾個非常好用的方法。
這些方法豐富了針對陣列的操作方式。
水平組合
實現水平組合的函式形式是np.hstack(tup),其中tup是乙個元組,包含幾個即將被組合在一起的幾個陣列。
下面就演示一項:
假設例項為二維陣列,要求其0軸方向的形狀一樣,而1軸的方向的形狀可以不同。
此外,還有實現水平組合另外兩種方法,乙個是np.stack,另乙個是np.concatenate()。
垂直組合
實現垂直組合的專有函式為np.vstack()函式。
既然是垂直方向,就要求其1軸上形狀相同。
學習的過程中發現,有轉置操作:
但是元素的排列方法明顯不同。
np.concatenate()在傳入軸的引數後,也能實現垂直組合,與之前的操作等效。
除了以上兩種的組合方式外,還有深度組合,行組合,列組合方式。
舉例說明:
我們可以想象,a,b為兩個平面,而b為a平面上元素乘以3而得到的陣列。
進行結合的話,將有關係的元素組隊,就會得到新的陣列。
實現的是將兩個一維陣列結合,當操作的是二維陣列,則效果等於垂直組合。
與組合相對的是切割操作。
np.split()的通用的函式形式為np.split(ary,indices_or_sections,axis=0)。
這裡axis=1代表從1軸進行切割,分為2部分
這裡我們將其切割為三部分。
同樣我們可以改變切割的軸,當我們將切割軸設為0時:
當然,我們那也有專門的切割函式來進行分割:
np.hsplit(陣列,分割數),np.vsplit(陣列,分割數)。
我們不僅能組合切割元素,還能「改編」。
意思是不僅能修改陣列中已有的元素,還能進行增加,刪除等操作。
我們將b中的元素新增到a中。這裡我們新建了乙個陣列r用來存放原來的陣列。
如果不宣告軸的話,將意味著知識用原來兩個陣列的元素組建乙個新的一維陣列。
除了追加外,我們還能插入,即某些元素插入到指定位置。
我們這裡看到,不共用同乙個檢視。
我們還有乙個刪除的操作:
numpy學習(一) numpy基礎
此文為學習 理解numpy,numpy簡單入門教程整理的學習筆記 numpy是乙個功能強大的python庫,主要用於對多維陣列執行計算。numpy這個詞 於兩個單詞 numerical和python。a np.array 0,1,2,3,4 a np.array 0,1,2,3,4 1,2,3,4,...
Python學習之Numpy基礎(一)
一 先安裝所需要的python庫numpy import numpy 二 讀乙個檔案 numpy.genfromtxt 絕對路徑或相對路徑 delimer 分隔符 dtype 以 str float 方式讀取資料 通常先以str方式讀入資料,再轉為其他型別的資料 world alcohol nump...
NumPy基礎入門學習
對於習慣使用了matlab的使用者而言,學習numpy這個python工具包付出的成本應該是不大的。numpy的基本的object是多維陣列,是乙個有同樣型別的數字等構成的一張 能夠通過元組進行索引。本篇主要列出numpy中最經常使用的一些操作。1,ndarray 型別的一些屬性 from nump...