Python中的axis參數(shù)的具體使用
在我們使用Python中的Numpy和Pandas進(jìn)行數(shù)據(jù)分析的時候,經(jīng)常會遇到一個讓人感到頭痛的參數(shù)——axis,本文讓我們換一個角度來重新認(rèn)識一下axis。
一、axis簡介
通常情況下我們都會賦予axis參數(shù)“軸”的概念,對于常見的二維數(shù)據(jù)來說,我們有如下的表示形式:
對于這種常見的結(jié)構(gòu)來說,看上去很清晰,但是涉及到實際操作的時候就會變的難以理解,下面讓我們用色橫貨中的例子來學(xué)習(xí)一下。
二、不一樣的axis
對于axis=0
當(dāng)axis=0的時候,我們可以將數(shù)據(jù)和軸組成的整體看作是一串豎著擺放的糖葫蘆(棍垂直于水平面)示例如下圖所示:
此時圖中的[1,2,3]、[4,5,6]可以分別看作是糖葫蘆的兩個果子,而紅色的軸則表示穿著果子的棍(axis=0),對于此時的狀態(tài),每個果子是一個整體,當(dāng)進(jìn)行sum()加和操作時,我們需要將兩個果子對應(yīng)位置的數(shù)據(jù)進(jìn)行相加而不是將每個果子進(jìn)行加和,最終可以得到結(jié)果[5,7,9]
import numpy as np a = np.array([[1, 2, 3], [4, 5, 6]]) np.sum(a, axis=0) # 結(jié)果 # array([5, 7, 9])
當(dāng)進(jìn)行元素添加操作的時候,我們所做的事情就是在原有的糖葫蘆基礎(chǔ)上添加一個果子,果子的結(jié)構(gòu)也要像前兩個果子的結(jié)構(gòu)一樣,示例圖如下所示:
此時操作的示例代碼如下所示:
import numpy as np a = np.array([[1, 2, 3], [4, 5, 6]]) np.append(a, [[7, 8, 9]], axis=0) # 結(jié)果 # array([[1, 2, 3], # [4, 5, 6], # [7, 8, 9]])
對于帶有參數(shù)axis=0刪除等操作也同添加的思想一樣,只要我們將其想象成在操作糖葫蘆的果子即可。
三、總結(jié)
當(dāng)axis=1的時候不難想到,我們要做的操作就是在一根水平擺放的糖葫蘆上進(jìn)行,所有操作的基本原理都和axis=0時相同。
補充:python中某些函數(shù)axis參數(shù)的理解
總結(jié)為一句話:設(shè)axis=i,則numpy沿著第i個下標(biāo)變化的方向進(jìn)行操作。
當(dāng)然,這個i是從0開始數(shù)的,作為程序員的你一定不會搞錯。
axis意為“軸”,它指定了函數(shù)在張量(矩陣、等等)上進(jìn)行操作的方向。
例如有一個ndarray,名叫A,A.shape=(3,8,5,7)。
那么np.sum(A, axis=2)計算的結(jié)果的shape就是(3,8,7)。
假設(shè)這個shape是(3,8,7)的ndarray變量名為B,那么實際上:
B[i][j][k]=A[i][j][0][k]+A[i][j][1][k]+A[i][j][2][k]+A[i][j][3][k]+A[i][j][4][k]
以下代碼你可以自己跑一下試試:
import numpy as np A=np.random.randn(3,8,5,7) print("A.shape=",A.shape) B=np.sum(A,axis=2) print("B.shape=",B.shape)
預(yù)期輸出為:
A.shape= (3, 8, 5, 7)
B.shape= (3, 8, 7)
到此這篇關(guān)于Python中的axis參數(shù)的具體使用的文章就介紹到這了,更多相關(guān)Python axis參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python3實現(xiàn)語音轉(zhuǎn)文字(語音識別)和文字轉(zhuǎn)語音(語音合成)
這篇文章主要介紹了python3實現(xiàn)語音轉(zhuǎn)文字(語音識別)和文字轉(zhuǎn)語音(語音合成),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10如何使用matplotlib讓你的數(shù)據(jù)更加生動
數(shù)據(jù)可視化用于以更直接的表示方式顯示數(shù)據(jù),并且更易于理解,下面這篇文章主要給大家介紹了關(guān)于如何使用matplotlib讓你的數(shù)據(jù)更加生動的相關(guān)資料,需要的朋友可以參考下2021-11-11使用keras內(nèi)置的模型進(jìn)行圖片預(yù)測實例
這篇文章主要介紹了使用keras內(nèi)置的模型進(jìn)行圖片預(yù)測實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06基于Python實現(xiàn)圖片瀏覽器的應(yīng)用程序
圖像瀏覽器應(yīng)用程序是一種非常常見和實用的工具,這篇文章就來為大家介紹一下如何使用Python編程語言和wxPython庫創(chuàng)建一個簡單的圖像瀏覽器應(yīng)用程序,感興趣的可以了解下2023-10-10python通過Matplotlib繪制常見的幾種圖形(推薦)
這篇文章主要介紹了使用matplotlib對幾種常見的圖形進(jìn)行繪制方法的相關(guān)資料,需要的朋友可以參考下2021-08-08