濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > Python中的np.argmin()和np.argmax()函數(shù)用法

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

熱門標(biāo)簽:佛山400電話辦理 小蘇云呼電話機(jī)器人 北瀚ai電銷機(jī)器人官網(wǎng)手機(jī)版 北京電銷外呼系統(tǒng)加盟 市場(chǎng)上的電銷機(jī)器人 地圖標(biāo)注面積 所得系統(tǒng)電梯怎樣主板設(shè)置外呼 朝陽手機(jī)外呼系統(tǒng) 儋州電話機(jī)器人

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 np
a = np.arange(6).reshape(2, 3)
a
array([[0, 1, 2],
       [3, 4, 5]])

# 此時(shí)自動(dòng)展平了
np.argmin(a)
0
np.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] = 0
a

array([0, 1, 2, 3, 0, 5])

np.argmin(a)
0

Python基礎(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)作比較,只不過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庫中的成員函數(shù)

接口不同

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

常見的接口如上所示,前者除了一個(gè)可迭代對(duì)象外,還接收一個(gè)函數(shù)對(duì)象(keyword argument),用于指定比較的對(duì)象(也即最值比較的內(nèi)容是,將迭代對(duì)象中的元素逐個(gè)賦予func函數(shù)對(duì)象所得到返回值),可見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類型)的第二位進(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類型(有時(shí)也無法轉(zhuǎn)換,當(dāng)異質(zhì)容器時(shí))不通過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è)精簡版的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è)參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Python函數(shù)參數(shù)和注解的使用
  • python基礎(chǔ)學(xué)習(xí)之遞歸函數(shù)知識(shí)總結(jié)
  • python中os.path.join()函數(shù)實(shí)例用法
  • 淺談Python中的函數(shù)(def)及參數(shù)傳遞操作
  • python 定義函數(shù) 返回值只取其中一個(gè)的實(shí)現(xiàn)
  • python print()函數(shù)的end參數(shù)和sep參數(shù)的用法說明
  • python處理emoji表情(兩個(gè)函數(shù)解決兩者之間的聯(lián)系)
  • Python基礎(chǔ)學(xué)習(xí)之簡單理解函數(shù)

標(biāo)簽:云南 龍巖 商丘 酒泉 寧夏 定西 江蘇 金融催收

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python中的np.argmin()和np.argmax()函數(shù)用法》,本文關(guān)鍵詞  Python,中的,np.argmin,和,np.argmax,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python中的np.argmin()和np.argmax()函數(shù)用法》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python中的np.argmin()和np.argmax()函數(shù)用法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    新蔡县| 梧州市| 铁力市| 莱西市| 肃宁县| 巴里| 隆子县| 大方县| 佛冈县| 通榆县| 饶平县| 鄂托克旗| 澜沧| 昌邑市| 蓝田县| 平泉县| 中阳县| 房山区| 正蓝旗| 婺源县| 新田县| 宝丰县| 耒阳市| 大新县| 林周县| 宁明县| 义马市| 西乌珠穆沁旗| 台山市| 许昌县| 通道| 大埔县| 凉城县| 新津县| 阿坝县| 苏尼特左旗| 墨竹工卡县| 许昌市| 瓮安县| 荔浦县| 合川市|