Skip to content
  • Home
  • Python教學
  • 科技新聞資訊
  • 網站開發教學
Copyright 網絡設計教學 2025
Theme by ThemeinProgress
Proudly powered by WordPress
  • Home
  • Python教學
  • 科技新聞資訊
  • 網站開發教學
網絡設計教學網絡設計教學,網站網頁教學,軟體使用教學
  • You are here :
  • Home
  • python網頁教學
  • Python中的np.argmin()和np.argmax()函數用法 python 程式碼
python網頁教學

Python中的np.argmin()和np.argmax()函數用法 python 程式碼

Jiking 2022-10-17 Article

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

# 此時自動展平瞭
np.argmin(a)
0
np.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] = 0
a

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

np.argmin(a)
0

Python基礎——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)->value
np.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

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支援。

You may also like

Shopify 直營店 | Tapswap 程式碼 |如何快速輕鬆地建立 Shopify 直銷商店

Shopify 直銷業務藍圖 | Tapswap 程式碼 | Shopify Dropshipping 藍圖:完整教學

這是 eBay 和 Shopify 上的「商店」Prismatic Evolutions 預購詐騙嗎?特雷科TCG

Shopify 上的直銷業務 | Tapswap 程式碼 |立即開始在 Shopify 上進行代發貨:完整設定教學

Shopify 上的直銷業務 | Tapswap 程式碼 |立即開始在 Shopify 上進行代發貨:完整設定教學

Shopify 直營店 | Tapswap 程式碼 |如何快速輕鬆地建立 Shopify 直銷商店

相关贴文:

  1. python析構函數用法及註意事項 python 程式碼
  2. pytorch自定義不可導激活函數的操作 python 程式碼
  3. python之np.argmax()及對axis=0或者1的理解 python 程式碼
  4. Python函數裝飾器的使用教程 python 程式碼
  5. Python函數式編程之面向過程面向對象及函數式簡析 python 程式碼
  6. Python常見的函數及格式化輸出 python 程式碼
  7. 解析pandas apply() 函數用法(推薦) python 程式碼
  8. Python學習之函數 def python 程式碼
Tags: np, python, 函數, 程式碼

近期文章

  • 如何在WooCommerce(分步)中恢復廢棄的購物車
  • WooCommerce擴展開發 – 使產品價格可編輯
  • WooCommerce vs Thrivecart-它將最適合您的業務
  • 相撲會員資格| WooCommerce會員插件教程
  • 使用Elementor&WooCommerce建立功能齊全的在線商店|沒有付費插件
  • 如何使用設置嚮導安裝WooCommerce插件| WordPress電子商務教程
  • 誰在使用WooCommerce?
  • WooCommerce會收取交易費用嗎?
  • 通過自動WooCommerce產品提高效率

標籤雲

Dropshipping ecommerce JavaScript Joomla OSCHINA博客 python REBELLION Shopify Shopify 商店設置 Shopify 直銷 Woocommerce WordPress 代發貨 刀塔2 和 商店 商業 喬姆拉 在 如何創建 Shopify 商店 如何在 如何建立 Shopify 商店 如何開始代出貨 年 店舖教學 店鋪化 店鋪培訓 教學 獲獎產品 直銷 Shopify 直銷教程 科技資訊 程式碼 網路業務 網路賺錢 臉書廣告 與 行銷 詳解 購物 跨平台 運輸船 適合初學者的 Shopify 教學課程 適合初學者的直銷 電子商務

Copyright 網絡設計教學 2025