python學習numpy基礎和應用 6

2021-09-30 17:20:05 字數 2257 閱讀 8934

我們定義了陣列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...