最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

numpy模塊中axis的理解與使用

 更新時間:2022年03月24日 11:07:54   作者:fangjian1204  
而在numpy中有很多的函數(shù)都涉及到axis,numpy中的軸axis是很重要的,許多numpy的操作根據(jù)axis的取值不同,作出的操作也不相同,這篇文章主要給大家介紹了關(guān)于numpy模塊中axis的理解與使用的相關(guān)資料,需要的朋友可以參考下

首先為什么會有axis這個概念?

因為在numpy模塊中,大多數(shù)處理的是矩陣或者多維數(shù)組,同時,對多維數(shù)組或者矩陣的操作有多種可能,為了幫助實現(xiàn)對數(shù)組或矩陣各種各樣的功能,就有了axis

下面舉個例子,選取不同的axis,對二維數(shù)組進行sum,mean,min,max的操作

>>> import numpy as np
>>> arr=np.arange(16).reshape(2,4,2)
>>> arr
array([[[ 0,  1],
        [ 2,  3],
        [ 4,  5],
        [ 6,  7]],

       [[ 8,  9],
        [10, 11],
        [12, 13],
        [14, 15]]])

axis的作用即如何理解

numpy是python進行科學(xué)計算必不可少的模塊,隨著深度學(xué)習(xí)越來越火,numpy也越來越流行。了解numpy的人知道,在numpy中,有很多的函數(shù)都涉及到axis,很多函數(shù)根據(jù)axis的取值不同,得到的結(jié)果也完全不同。可以說,axis讓numpy的多維數(shù)組變的更加靈活,但也讓numpy變得越發(fā)難以理解。這里通過詳細(xì)的例子來學(xué)習(xí)下,axis到底是什么,它在numpy中的作用到底如何。

為什么會有axis這個東西,原因很簡單:numpy是針對矩陣或者多為數(shù)組進行運算的,而在多維數(shù)組中,對數(shù)據(jù)的操作有太多的可能,我們先來看一個例子。比如我們有一個二維數(shù)組:

>>> import numpy as np
>>> data = np.array([
... [1,2,1],
... [0,3,1],
... [2,1,4],
... [1,3,1]])

這個數(shù)組代表了樣本數(shù)據(jù)的特征,其中每一行代表一個樣本的三個特征,每一列是不同樣本的特征。如果在分析樣本的過程中需要對每個樣本的三個特征求和,該如何處理?簡單:

>>> np.sum(data, axis=1)
array([4, 4, 7, 5])

那如果想求每種特征的最小值,該如何處理?也簡單:

>>> np.min(data, axis=0)
array([0, 1, 1])

又如果想得知所有樣本所有特征的平均值呢?還是很簡單:

>>> np.average(data)
1.6666666666666667

由此可以看出,通過不同的axis,numpy會沿著不同的方向進行操作:如果不設(shè)置,那么對所有的元素操作;如果axis=0,則沿著縱軸進行操作;axis=1,則沿著橫軸進行操作。但這只是簡單的二位數(shù)組,如果是多維的呢?可以總結(jié)為一句話:設(shè)axis=i,則numpy沿著第i個下標(biāo)變化的放下進行操作。例如剛剛的例子,可以將表示為:data =[[a00, a01],[a10,a11]],所以axis=0時,沿著第0個下標(biāo)變化的方向進行操作,也就是a00->a10, a01->a11,也就是縱坐標(biāo)的方向,axis=1時也類似。下面我們舉一個四維的求sum的例子來驗證一下:

>>> data = np.random.randint(0, 5, [4,3,2,3])
>>> data
array([[[[4, 1, 0],
         [4, 3, 0]],
        [[1, 2, 4],
         [2, 2, 3]],
        [[4, 3, 3],
         [4, 2, 3]]],

       [[[4, 0, 1],
         [1, 1, 1]],
        [[0, 1, 0],
         [0, 4, 1]],
        [[1, 3, 0],
         [0, 3, 0]]],

       [[[3, 3, 4],
         [0, 1, 0]],
        [[1, 2, 3],
         [4, 0, 4]],
        [[1, 4, 1],
         [1, 3, 2]]],

       [[[0, 1, 1],
         [2, 4, 3]],
        [[4, 1, 4],
         [1, 4, 1]],
        [[0, 1, 0],
         [2, 4, 3]]]])

當(dāng)axis=0時,numpy驗證第0維的方向來求和,也就是第一個元素值=a0000+a1000+a2000+a3000=11,第二個元素=a0001+a1001+a2001+a3001=5,同理可得最后的結(jié)果如下:

>>> data.sum(axis=0)
array([[[11,  5,  6],
        [ 7,  9,  4]],

       [[ 6,  6, 11],
        [ 7, 10,  9]],

       [[ 6, 11,  4],
        [ 7, 12,  8]]])

當(dāng)axis=3時,numpy驗證第3維的方向來求和,也就是第一個元素值=a0000+a0001+a0002=5,第二個元素=a0010+a0011+a0012=7,同理可得最后的結(jié)果如下:

>>> data.sum(axis=3)
array([[[ 5,  7],
        [ 7,  7],
        [10,  9]],

       [[ 5,  3],
        [ 1,  5],
        [ 4,  3]],

       [[10,  1],
        [ 6,  8],
        [ 6,  6]],

       [[ 2,  9],
        [ 9,  6],
        [ 1,  9]]])

使用axis的相關(guān)函數(shù)

在numpy中,使用的axis的地方非常多,處理上文已經(jīng)提到的average、max、min、sum,比較常見的還有sort和prod,下面分別舉幾個例子看一下:

sort

>>> data = np.random.randint(0, 5, [3,2,3])
>>> data
array([[[4, 2, 0],
        [0, 0, 4]],

       [[2, 1, 1],
        [1, 0, 2]],

       [[3, 0, 4],
        [0, 1, 3]]])
>>> np.sort(data)  ## 默認(rèn)對最大的axis進行排序,這里即是axis=2
array([[[0, 2, 4],
        [0, 0, 4]],

       [[1, 1, 2],
        [0, 1, 2]],

       [[0, 3, 4],
        [0, 1, 3]]])
>>> np.sort(data, axis=0)  # 沿著第0維進行排序,原先的a000->a100->a200轉(zhuǎn)變?yōu)閍100->a200->a000
array([[[2, 0, 0],
        [0, 0, 2]],

       [[3, 1, 1],
        [0, 0, 3]],

       [[4, 2, 4],
        [1, 1, 4]]])
>>> np.sort(data, axis=1)  # 沿著第1維進行排序
array([[[0, 0, 0],
        [4, 2, 4]],

       [[1, 0, 1],
        [2, 1, 2]],

       [[0, 0, 3],
        [3, 1, 4]]])
>>> np.sort(data, axis=2)  # 沿著第2維進行排序
array([[[0, 2, 4],
        [0, 0, 4]],

       [[1, 1, 2],
        [0, 1, 2]],

       [[0, 3, 4],
        [0, 1, 3]]])
>>> np.sort(data, axis=None)  # 對全部數(shù)據(jù)進行排序
array([0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 4])

prod(即product,乘積)

 >>> np.prod([[1.,2.],[3.,4.]])
 24.0

 >>> np.prod([[1.,2.],[3.,4.]], axis=1)
 array([  2.,  12.])

 >>> np.prod([[1.,2.],[3.,4.]], axis=0)
 array([ 3.,  8.])

相信通過上面的講解與例子,你應(yīng)該對axis有了比較清楚的了解。個人認(rèn)為,如果沒有理解axis的真正含義,很難熟悉的運用numpy進行數(shù)據(jù)處理

總結(jié)

到此這篇關(guān)于numpy模塊中axis的理解與使用的文章就介紹到這了,更多相關(guān)numpy模塊axis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python正則表達式(更長的正則表達式示例)示例代碼

    Python正則表達式(更長的正則表達式示例)示例代碼

    正則表達式是一種強大的文本模式匹配工具,被廣泛應(yīng)用于字符串的搜索、替換、驗證等場景,這篇文章主要介紹了Python正則表達式(更長的正則表達式示例)的相關(guān)資料,需要的朋友可以參考下
    2025-12-12
  • pycharm 快速解決python代碼沖突的問題

    pycharm 快速解決python代碼沖突的問題

    這篇文章主要介紹了pycharm 快速解決python代碼沖突的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Pydantic中BaseConfig的具體使用

    Pydantic中BaseConfig的具體使用

    本文主要介紹了Pydantic中BaseConfig的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Python多線程與多進程相關(guān)知識總結(jié)

    Python多線程與多進程相關(guān)知識總結(jié)

    進程(process)和線程(thread)是操作系統(tǒng)的基本概念,是操作系統(tǒng)程序運行的基本單元,本文簡要介紹進程和線程的概念以及Python中的多進程和多線程.需要的朋友可以參考下
    2021-05-05
  • OpenCV圖像修復(fù)cv2.inpaint()的使用

    OpenCV圖像修復(fù)cv2.inpaint()的使用

    這篇博客將介紹如何通過OpenCV中圖像修復(fù)的技術(shù)——cv2.inpaint() 去除舊照片中的小噪音、筆劃等。并提供一個可交互式的程序,感興趣的可以了解一下
    2021-08-08
  • Python字符串不可不知的6個小技巧分享

    Python字符串不可不知的6個小技巧分享

    字符串可以理解為一段普通的文本內(nèi)容,在python里,使用引號來表示一個字符串,不同的引號表示的效果會有區(qū)別,本文將給介紹Python字符串不可不知的6個小技巧分享,并有詳細(xì)的代碼供大家參考,感興趣的小伙伴可以參考一下
    2024-03-03
  • Python自動化辦公技巧分享

    Python自動化辦公技巧分享

    Python自動化辦公是指用Python程序來完成某些需要重復(fù)性操作的工作,例如大批量的文件處理等,本篇文章將介紹Python自動化辦公的基本概念和常用技術(shù),希望能對Python初學(xué)者提供一些幫助
    2023-06-06
  • Python讀取一個目錄下所有目錄和文件的方法

    Python讀取一個目錄下所有目錄和文件的方法

    這篇文章主要介紹了Python讀取一個目錄下所有目錄和文件的方法,涉及Python針對目錄和文件的遍歷與運算操作相關(guān)技巧,需要的朋友可以參考下
    2016-07-07
  • Python OpenCV實現(xiàn)識別信用卡號教程詳解

    Python OpenCV實現(xiàn)識別信用卡號教程詳解

    本文將介紹如何通過 OpenCV 和 Python 使用模板匹配來執(zhí)行光學(xué)字符識別 (OCR),再應(yīng)用我們的模板匹配 OCR 方法來識別信用卡類型以及 16 位信用卡數(shù)字。代碼具有一定價值,感興趣的童鞋可以了解一下
    2021-11-11
  • Python爬蟲實例之2021貓眼票房字體加密反爬策略(粗略版)

    Python爬蟲實例之2021貓眼票房字體加密反爬策略(粗略版)

    這篇文章主要介紹了Python爬蟲實例之2021貓眼票房字體加密反爬策略(粗略版),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02

最新評論

资源县| 元朗区| 建德市| 逊克县| 古田县| 信丰县| 昔阳县| 拜泉县| 金昌市| 专栏| 姜堰市| 淮滨县| 鄂州市| 资源县| 武川县| 吉林市| 南开区| 缙云县| 昌吉市| 饶阳县| 武功县| 银川市| 和政县| 淮滨县| 都江堰市| 哈尔滨市| 渝中区| 水富县| 大冶市| 哈尔滨市| 中牟县| 南阳市| 峨边| 陆河县| 镶黄旗| 保亭| 漯河市| 肇东市| 洞头县| 将乐县| 阜新市|