好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 如何獲取numpy的第一個非0元素索引

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

熱門標簽:騰訊外呼線路 唐山智能外呼系統一般多少錢 廣告地圖標注app 陜西金融外呼系統 激戰2地圖標注 哈爾濱ai外呼系統定制 白銀外呼系統 公司電話機器人 海南400電話如何申請

我就廢話不多說了,

大家還是直接看代碼吧~

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個一維數組,分別代表層、行、列。
# 查找原理和二維數組一致,不再贅述。

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

您可能感興趣的文章:
  • numpy 實現返回指定行的指定元素的位置索引
  • python如何獲得list或numpy數組中最大元素對應的索引
  • 淺談python已知元素,獲取元素索引(numpy,pandas)
  • numpy:找到指定元素的索引示例

標簽:黔西 黑龍江 惠州 常德 四川 上海 益陽 鷹潭

巨人網絡通訊聲明:本文標題《如何獲取numpy的第一個非0元素索引》,本文關鍵詞  如何,獲取,numpy,的,第一個,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《如何獲取numpy的第一個非0元素索引》相關的同類信息!
  • 本頁收集關于如何獲取numpy的第一個非0元素索引的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 动漫美女被吸乳漫画软件| 97一区二区三区四区久久| 人獸交GAy Zoo欧美大片男男| 色姑娘色综合| 国产福利网站| 琪琪色影音先锋| 永久黄网站色直播免费app| 孕妇大肚**一级毛片| 和高大的农村妇女做爰| 欧美一级a视频免费放| ffee性护士vihaos中国 | 老师娇呻用丝袜腿夹我在线观看| 国产成人午夜精华液| 韩国19禁gif福利动态图| 免费看一级黄色大片| 色综合99| 777色婷婷AV一区二区三99| 免费看男男Gay啪啪网站3d| 国产成人夜间影院在线观看| 奔跑吧兄弟玩遍女嘉宾杨幂| xart欧美一区在线播放| 菠萝蜜视频一级毛片看看| 印度顶级绝伦推理片| 日韩本免费一级毛片免费| 如果男人太快怎么办| 日本ⅩXX色在线观看软件| 国产三级做爰在线观看男与女| 锵锵锵锵锵锵锵锵锵好大好湿软件| 小荡货你夹得我好紧| 一区二区三区在线观看| 国产精品免费一区二区| 免费看黄30分钟| 一级片特黄| 免费国精产品无码看片| 精品一区二区三区AV天堂,| 日本精品一区二区在线播放| 麻豆传播媒体入口下载免费版| A级毛片久久久久久精品天堂监狱| 成人漫画?H漫画在线| 91福利国产在线观看香蕉 | 9色丨PORNY丨人妻|