亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Python中的np.argmin()和np.argmax()函數用法

瀏覽:7日期:2022-06-17 16:19:27
Python np.argmin()和np.argmax()函數

按照axis的要求返回最小的數/最大的數的下標

numpy.argmin(a, axis=None, out=None)numpy.argmax(a, axis=None, out=None)

a:傳入一個數組,

axis:默認將輸入數組展平,否則,按照axis方向

out:可選

import numpy as npa = np.arange(6).reshape(2, 3)aarray([[0, 1, 2], [3, 4, 5]])# 此時自動展平了np.argmin(a)0np.argmax(a)5# 在axis方向上找最小的值并返回坐標np.argmin(a, axis=1)array([0, 0], dtype=int64)# 在axis方向上找最大的值并返回坐標np.argmax(a, axis=1)array([2, 2], dtype=int64)

當有多個最小值的時候只顯示第一個

a = np.arange(6)a[4] = 0aarray([0, 1, 2, 3, 0, 5])np.argmin(a)0Python基礎——min/max與np.argmin/np.argmax

這里應該是拿min/max(更適合處理可迭代對象,可選的參數是key=func)與np.min/np.max(可適合處理numpy.ndarray對象,可選的參數是axis=0或者1)作比較,只不過np.argmin/np.argmax的用法與np.min/np.max相似,這里就不進行更正了。

首先min/max與np.argmin/np.argmax函數的功能不同

前者返回值,后者返回最值所在的索引(下標)

處理的對象不同

前者跟適合處理list等可迭代對象,而后者自然是numpy里的核心數據結構ndarray(多維數組)

min/max是python內置的函數

np.argmin/np.argmax是numpy庫中的成員函數

接口不同

min(iterable, key=func)->valuenp.argmin(a, axis=None)

常見的接口如上所示,前者除了一個可迭代對象外,還接收一個函數對象(keyword argument),用于指定比較的對象(也即最值比較的內容是,將迭代對象中的元素逐個賦予func函數對象所得到返回值),可見func只可接受一個參數,如min(dict, key=dict.get)。

而np.argmax更多的是進行軸上的比較(axis=0,也是默認的軸,是列向)

>>> l = [’1’, ’100’, ’111’, ’2’]>>> max(l)’2’# 下面我們指定比較內容>>> max(l, key=lambda x: int(x)’111’>>> max(l, key=lambda x: len(x))’100’>>> max(l, key=lambda x: len(x) and int(x))’111’

我們也可將min/max作用于list of lists(這里不對tuple和list作區分):

>>> ll = [(1, ’a’), (3, ’c’), (4, ’e’), (-1, ’z’)]>>> max(ll)

例如根據列表中的每一個元素(tuple或者list類型)的第二位進行求最大值:

>>> l = [(1, 2, 5), (2, 3, 5), (3, 2, 5), (4, 4, 5), (5, 1, 5)]>>> max(l, key=lambda x: x[1])(4, 4, 5)>>> l.index(max(l, key=lambda x: x[1]))3

默認情況下,max首先進行比較的是items(k,v)中的第一個內容(也即是k),相等的情況下,再進行v的比較。

稍作修改,我們便可實現對v的比較:

>>> max(ll, key=lambda x: x[1])(-1, ’z’)

有時可能最值所在的下標對我們更重要,我們據此下標索引更為豐富的信息。如何不顯式轉化為numpy.ndarray類型(有時也無法轉換,當異質容器時)不通過np.argmax這樣的函數獲得最值(任何值都可以)所在的下標呢?使用list(tuple)的index()成員函數。

>>> ll = [(1, ’a’), (3, ’c’), (4, ’e’), (-1, ’z’)]>>> val = max(ll, lambda x: x[1])>>> ll.index(val)3

根據以上用法,我們也可推測并實現一個精簡版的max函數:

def max(items, key=lambda x: x): current = items[0] for item in items:if key(item) > key(current): current = item return current

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 全免费午夜一级毛片一级毛 | 日韩色影视 | 国产综合欧美 | chinese国产hdfree中文 | 国产精品高清久久久久久久 | 黄色免费网站在线 | 欧美日韩aa一级视频 | 2020天堂中文字幕一区在线观 | 欧美ol丝袜高跟秘书在线观看 | 丁香婷婷色综合 | 精品中文字幕不卡在线视频 | 激情综合色五月丁香六月亚洲 | 99pao在线视频成精品 | 亚洲第五页 | 国产精品视频公开费视频 | 91精品欧美一区二区综合在线 | 日韩一区三区 | 大学生一级毛片高清版 | 久久午夜鲁丝片午夜精品 | 国产精品原创永久在线观看 | 国产三级在线免费 | 午夜羞羞视频在线观看 | 成人午夜影视全部免费看 | 91网址在线观看 | 久草国产精品视频 | 色九九视频 | 中国女警察一级毛片视频 | 国产在线日韩 | 香蕉综合视频 | xxxx鞠婧祎xxxx网站视频观看 | 中文字幕一区婷婷久久 | 欧美日韩亚洲二区在线 | 免费观看h片 | 国产在线观看91 | 视频成人永久免费视频 | 美国毛片一级视频在线aa | 国产原创91| 又爽又黄又无遮挡的视频在线观看 | 日本老年人精品久久中文字幕 | 国产精品夜色视频一级区 | 欧美人成人亚洲专区中文字幕 |