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