Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在多维numpy数组中沿给定轴(例如2)获得N个最大值?_Python_Arrays_Numpy - Fatal编程技术网

Python 如何在多维numpy数组中沿给定轴(例如2)获得N个最大值?

Python 如何在多维numpy数组中沿给定轴(例如2)获得N个最大值?,python,arrays,numpy,Python,Arrays,Numpy,由于argmax只给出一个最大值,我们如何找到至少2或3个元素而不是一个 目前,我的输入格式为np.argmax(array,axis=2),它只提供一个最大值,我必须从N维数组中至少提取2或3个我将尝试使用名为argpartition()的函数。要获得两个最大元素的索引,请执行以下操作: import numpy as np a = np.array([9, 4, 4, 3, 3, 9, 0, 4, 6, 0]) ind = np.argpartition(a, -2)[-2:] in

由于argmax只给出一个最大值,我们如何找到至少2或3个元素而不是一个


目前,我的输入格式为np.argmax(array,axis=2),它只提供一个最大值,我必须从N维数组中至少提取2或3个我将尝试使用名为
argpartition()
的函数。要获得两个最大元素的索引,请执行以下操作:

import numpy as np

a = np.array([9, 4, 4, 3, 3, 9, 0, 4, 6, 0])

ind = np.argpartition(a, -2)[-2:] 

ind
Out[13]: array([5, 0], dtype=int64)

a[ind]
Out[14]: array([9, 9])

我将尝试使用名为
argpartition()
的函数。要获得两个最大元素的索引,请执行以下操作:

import numpy as np

a = np.array([9, 4, 4, 3, 3, 9, 0, 4, 6, 0])

ind = np.argpartition(a, -2)[-2:] 

ind
Out[13]: array([5, 0], dtype=int64)

a[ind]
Out[14]: array([9, 9])
使用。数据来自@CarlesSansFuentes

import numpy as np

a = np.array([9, 4, 4, 3, 3, 9, 0, 4, 6, 0])

args = np.argsort(-a)[:2]

array([0, 5], dtype=int64)
使用。数据来自@CarlesSansFuentes

import numpy as np

a = np.array([9, 4, 4, 3, 3, 9, 0, 4, 6, 0])

args = np.argsort(-a)[:2]

array([0, 5], dtype=int64)

你说的“2或3个元素”是什么意思?np.argmax提取一维中所有数组的argmax。你在寻找最高、第二高和第三高吗?这个问题与机器学习无关-请不要滥发标签(删除)可能重复的第二高、第三高等等,你说的“2或3个元素”是什么意思?np.argmax提取一维中所有数组的argmax。你在寻找最高、第二和第三高吗?这个问题与机器学习无关-请不要垃圾邮件标签(删除)可能重复的第二高、第三高等等