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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

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

按照axis的要求返回最小的數(shù)/最大的數(shù)的下標(biāo)

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

a:傳入一個(gè)數(shù)組,

axis:默認(rèn)將輸入數(shù)組展平,否則,按照axis方向

out:可選

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

當(dāng)有多個(gè)最小值的時(shí)候只顯示第一個(gè)

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

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

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

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

處理的對(duì)象不同

前者跟適合處理list等可迭代對(duì)象,而后者自然是numpy里的核心數(shù)據(jù)結(jié)構(gòu)ndarray(多維數(shù)組)

min/max是python內(nèi)置的函數(shù)

np.argmin/np.argmax是numpy庫(kù)中的成員函數(shù)

接口不同

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

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

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

>>> l = [’1’, ’100’, ’111’, ’2’]>>> max(l)’2’# 下面我們指定比較內(nèi)容>>> 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(這里不對(duì)tuple和list作區(qū)分):

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

例如根據(jù)列表中的每一個(gè)元素(tuple或者list類(lèi)型)的第二位進(jìn)行求最大值:

>>> 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

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

稍作修改,我們便可實(shí)現(xiàn)對(duì)v的比較:

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

有時(shí)可能最值所在的下標(biāo)對(duì)我們更重要,我們據(jù)此下標(biāo)索引更為豐富的信息。如何不顯式轉(zhuǎn)化為numpy.ndarray類(lèi)型(有時(shí)也無(wú)法轉(zhuǎn)換,當(dāng)異質(zhì)容器時(shí))不通過(guò)np.argmax這樣的函數(shù)獲得最值(任何值都可以)所在的下標(biāo)呢?使用list(tuple)的index()成員函數(shù)。

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

根據(jù)以上用法,我們也可推測(cè)并實(shí)現(xiàn)一個(gè)精簡(jiǎn)版的max函數(shù):

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

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 九九亚洲精品 | 在线播放国产视频 | 欧美性生活视频播放 | 可以免费看黄的网站 | 亚洲欧美激情综合首页 | 亚洲欧美日韩综合一区 | 色牛网| 亚洲一级毛片 | 精品视频在线观看视频免费视频 | 亚洲一区二区三区高清视频 | 调教~奴●メイドの馆 | 欧美在线一区视频 | 无毒不卡在线观看 | 亚洲国产97在线精品一区 | 伊人婷婷色 | 亚洲精品久久99久久一 | 日韩午夜| 国产欧美性综合视频性刺激 | 亚洲成人av | 一区二区在线视频免费观看 | 海天翼精品一区二区三区 | 亚洲成人黄色网址 | 久久综合久久久久 | 国产福利视频在线观看 | 午夜久久久久久久 | 96免费精品视频在线 | 99久久精品国产麻豆 | 久久草在线视频 | 女同志freelesvoices | 农村一级黄色片 | 国产精品99久久久 | 亚洲欧美另类在线 | 亚洲国产精品一区二区第四页 | 特黄特色大片免费视频大全 | 国产1024在线永久免费观看 | 香蕉大片 | 久久精品视频一区二区三区 | 国产tv在线 | 黄毛片免费 | 黄色福利小视频 | 国产香港特级一级毛片 |