Python中找出陣列中第二大的數

2021-09-02 22:56:00 字數 841 閱讀 8690

已知numpy函式庫中max和argmax函式可以得出乙個陣列中最大的成員以及所在位置:

import numpy as np

arr = [2, 3, 4, 1, 7, 6, 5]

print("# arr中最大的數為{},位於第{}位".format(np.max(arr), np.argmax(arr)+1))

那麼如何得到乙個陣列中第二大的成員呢?

我的思想是:將原陣列中最大的成員換為最小的成員,然後再用max和argmax。

arr_ = arr

arr_[np.argmax(arr_)] = np.min(arr)

print(arr_)

print("# arr中最大的數為{},位於第{}位".format(np.max(arr_), np.argmax(arr_)+1))

def find_sub_max(arr, n):

for i in range(n-1):

arr_ = arr

arr_[np.argmax(arr_)] = np.min(arr)

arr = arr_

print("# arr中最大的數為{},位於第{}位".format(np.max(arr_), np.argmax(arr_)+1))

find_sub_max(arr, 4)

找出陣列中第二大的數

給你乙個陣列,求出其中第二大的數 比如陣列a 1,2,3,4,5,6,7,8,9 其中第二大的數為8,返回8即可 分析 一般情況下都是求最大值,呵呵,這道題很有趣。想想也不難,可以在掃瞄最大值的同時,求出第二大的值,就是比當前最大值大的數賦給最大值,然後用第二大的值與先前的最大值比較,如果小,則用先...

找出陣列中第二大的數

include include includeusing namespace std 初始化最大值為a 0 次大值為a 1 遍歷一次,每次比較並更新最大值和次大值,最後就可以得到次大值。這種方法時間複雜度為o n bool invalidinput false int findsecondmax i...

找出陣列中第二大的數

題目 寫乙個函式找出乙個整數陣列中,第二大的數。cpp view plain copy print?include 初始化最大值為a 0 次大值為a 1 遍歷一次,每次比較並更新最大值和次大值,最後就可以得到次大值。intfindsecondmaxvalue int a,intsize else i...