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

如何獲取numpy的第一個非0元素索引

 更新時間:2021年05月14日 09:55:20   作者:upDiff  
這篇文章主要介紹了如何獲取numpy的第一個非0元素索引,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

我就廢話不多說了,

大家還是直接看代碼吧~

import numpy as np
arr=np.array([0,0,2,3,0,4])
print((arr!=0).argmax(axis=0))
#2

補充:python獲取二維矩陣的每一行的第一個非零元素

直接上代碼~

"""
核心函數:
array_1D!=0 :返回一個True/False序列
array.argmax(axis=0):返回沿axis軸的最大元素的索引,當存在多個相等的最大值時,返回第一個最大值的索引
"""
import numpy as np
 
array_1D = np.array([0,1,0,-1,0])
array_2D = np.array(
    [[0, 1, 0, -1, 0],
     [0, 0, -1, 0, 1],
     [0, 1, -1, 0, 1],
     [4, 0, -1, 0, 1],
     [7, 16, -1, 0, 1]])
 
 
def get_first_non_zero_1D(array_1D):
    first_non_zero = array_1D[(array_1D!=0).argmax(axis=0)]
    return first_non_zero
 
"""
備注:以下三個函數完全等價,個人比較喜歡最后一個 get_first_non_zeros_2D_2,因為看著比較舒服,也可以方便地擴展到更多維度。
"""
 
def get_first_non_zeros_2D(array_2D):
    first_non_zeros = np.array([get_first_non_zero_1D(array_2D[i]) for i in range(array_2D.shape[0])])
    return first_non_zeros
 
def get_first_non_zeros_2D_1(array_2D):
    first_non_zeros = []
    for i in range(array_2D.shape[0]):
        arr = array_2D[i,:]
        first_non_zero = arr[(arr!=0).argmax(axis=0)]
        first_non_zeros.append(first_non_zero)
    return np.array(first_non_zeros)
 
def get_first_non_zeros_2D_2(array_2D):
    none_zero_index = (array_2D!=0).argmax(axis=1)
    # first_non_zeros = np.array([array_2D[i,none_zero_index[i]] for i in range(array_2D.shape[0])])
    first_non_zeros = array_2D[range(array_2D.shape[0]),none_zero_index]
    return first_non_zeros
 
b = get_first_non_zeros_2D(array_2D)
c = get_first_non_zeros_2D_1(array_2D)
d = get_first_non_zeros_2D_2(array_2D)
print(b)
print(c)
print(d)
"""
打印結果:
[ 1 -1  1  4  7]
[ 1 -1  1  4  7]
[ 1 -1  1  4  7]
"""

補充:[Python] np.nonzero(ndarray) 返回數組中不為0的元素的索引

語法:

函數返回值為tuple元組類型,tuple內的元素數目與ndarray維度相同。

np.nonzero(ndarray)

先強調一點,數組的索引是從0開始。

示例:

# 1維數組
a = [0,2,3]
b = np.nonzero(a)
print(b)
# (array([1, 2], dtype=int64),)
# 說明:索引1和索引2的位置上元素的值非零。

# 2維數組
a = np.array([[0,0,3],[0,0,0],[0,0,9]])
b = np.nonzero(a)
print(b)
# (array([0, 2], dtype=int64), array([2, 2], dtype=int64))
# 說明:
# tuple的每一個元素,從一個維度來確定非零元素的位置。所以對于二維數組,tuple就有兩個元素。
# tuple的元素的內容是該維度不為0的元素的位置,排列順序是數組遍歷的順序。
# 比如確定第一個非零元素的位置:先找tuple內的第一個元素  array([0, 2], dtype=int64)的第一個元素,為0,說明第一個非零元素在第一行;
# 之后tuple內的第二個元素 array([2, 2], dtype=int64)的第一個元素,為2,說明第一個非零元素在第三列。

# 3維數組
a = np.array([[[0,1],[1,0]],[[0,1],[1,0]],[[0,0],[1,0]]])
print(a)
# [[[0 1]
#   [1 0]]
# 
#  [[0 1]
#   [1 0]]
# 
#  [[0 0]
#   [1 0]]]
b = np.nonzero(a)
print(b)
# (array([0, 0, 1, 1, 2], dtype=int64), array([0, 1, 0, 1, 1], dtype=int64), array([1, 0, 1, 0, 0], dtype=int64))
# 說明:由于a是3維數組,因此,索引值數組有3個一維數組,分別代表層、行、列。
# 查找原理和二維數組一致,不再贅述。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python遍歷目錄下所有文件的五種實現方法

    python遍歷目錄下所有文件的五種實現方法

    本文主要介紹了python遍歷目錄下所有文件的五種實現方法,包含os.walk(),os.scandir(),os.listdir(),glob模塊和osqp模塊這幾種方法,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • window環(huán)境pip切換國內源(pip安裝異常緩慢的問題)

    window環(huán)境pip切換國內源(pip安裝異常緩慢的問題)

    這篇文章主要介紹了window環(huán)境pip切換國內源(pip安裝異常緩慢的問題),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • Python超詳細分步解析隨機漫步

    Python超詳細分步解析隨機漫步

    隨機游走(random walk)也稱隨機漫步,隨機行走等是指基于過去的表現,無法預測將來的發(fā)展步驟和方向。核心是指任何無規(guī)則行走者所帶的守恒量都各自對應著一個擴散運輸定律,接近布朗運動,現階段主要應用于互聯(lián)網鏈接分析及金融股票市場中
    2022-03-03
  • 利用Python計算質數與完全數的方法實例

    利用Python計算質數與完全數的方法實例

    這篇文章主要介紹了利用Python計算質數與完全數的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 深入理解python虛擬機如何實現閉包

    深入理解python虛擬機如何實現閉包

    當能夠從設計者的層面去理解閉包就再也不用死記硬背一些閉包的概念了,所以本文就來從虛擬機層面和大家一起討論函數閉包是如何實現的
    2023-10-10
  • Pandas時間序列基礎詳解(轉換,索引,切片)

    Pandas時間序列基礎詳解(轉換,索引,切片)

    今天小編就為大家分享一篇Pandas時間序列基礎詳解(轉換,索引,切片),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python?if?else語句對縮進的要求

    Python?if?else語句對縮進的要求

    這篇文章主要介紹了Python?if?else語句對縮進的要求,前面的一篇文章展示了選擇結構的三種基本形式,并給出了實例演示,這篇文章基于上一篇內容繼續(xù)對Python?if?else語句對縮進進行描述,需要的小伙伴可以參考一下
    2022-03-03
  • 淺談Django中的數據庫模型類-models.py(一對一的關系)

    淺談Django中的數據庫模型類-models.py(一對一的關系)

    今天小編就為大家分享一篇淺談Django中的數據庫模型類-models.py(一對一的關系),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python 基礎教程之str和repr的詳解

    Python 基礎教程之str和repr的詳解

    這篇文章主要介紹了Python 基礎教程之str和repr的詳解的相關資料,主要說明他們之家的區(qū)別,通過此文希望能幫助到大家,幫助大家理解這部分內容,需要的可以參考下
    2017-08-08
  • Python深度強化學習之DQN算法原理詳解

    Python深度強化學習之DQN算法原理詳解

    DQN算法是DeepMind團隊提出的一種深度強化學習算法,在許多電動游戲中達到人類玩家甚至超越人類玩家的水準,本文就帶領大家了解一下這個算法,快來跟隨小編學習一下
    2021-12-12

最新評論

外汇| 上蔡县| 缙云县| 铜山县| 保靖县| 中超| 金华市| 望都县| 赤城县| 东明县| 布拖县| 马鞍山市| 弥渡县| 大新县| 克山县| 罗甸县| 渭南市| 闽侯县| 资阳市| 寻甸| 武义县| 炉霍县| 乐业县| 甘谷县| 兰考县| 山阳县| 西和县| 花莲县| 田东县| 东光县| 秦安县| 凌云县| 安吉县| 天津市| 岳普湖县| 金门县| 崇阳县| 锡林浩特市| 蓝田县| 松阳县| 岱山县|