- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章如何获取numpy array前N个最大值由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
numpy.argsort(a, axis
=
-
1
, kind
=
'quicksort'
, order
=
None
)
'''
Returns the indices that would sort an array.
Perform an indirect sort along the given axis using the algorithm specified by the kind keyword. It returns an array of indices of the same shape as a that index data along the given axis in sorted order.
'''
Parameters:
a : array_like
Array to sort.
axis :
int
or
None
, optional
Axis along which to sort. The default
is
-
1
(the last axis). If
None
, the flattened array
is
used.
kind : {‘quicksort
', ‘mergesort'
, ‘heapsort
', ‘stable'
}, optional
Sorting algorithm.
order :
str
or
list
of
str
, optional
When a
is
an array with fields defined, this argument specifies which fields to compare first, second, etc. A single field can be specified as a string,
and
not
all
fields need be specified, but unspecified fields will still be used,
in
the order
in
which they come up
in
the dtype, to
break
ties.
Returns:
index_array : ndarray,
int
Array of indices that sort a along the specified axis. If a
is
one
-
dimensional, a[index_array] yields a
sorted
a. More generally, np.take_along_axis(a, index_array, axis
=
a) always yields the
sorted
a, irrespective of dimensionality.
|
1
2
3
4
5
6
|
import
numpy as np
top_k
=
3
arr
=
np.array([
1
,
3
,
2
,
4
,
5
])
top_k_idx
=
arr.argsort()[::
-
1
][
0
:top_k]
print
(top_k_idx)
#[4 3 1]
|
补充:python topN / topK 取 最大的N个数 或 最小的N个数 。
1
2
3
4
|
import
numpy as np
a
=
np.array([
1
,
4
,
3
,
5
,
2
])
b
=
np.argsort(a)
print
(b)
|
print结果[0 4 2 1 3] 。
说明a[0]最小,a[3]最大 。
a[0]<a[4]<a[2]<a[1]<a[3] 。
补充:利用Python获取数组或列表中最大的N个数及其索引 。
1
2
3
4
5
6
7
|
import
heapq
a
=
[
43
,
5
,
65
,
4
,
5
,
8
,
87
]
re1
=
heapq.nlargest(
3
, a)
#求最大的三个元素,并排序
re2
=
map
(a.index, heapq.nlargest(
3
, a))
#求最大的三个索引 nsmallest与nlargest相反,求最小
print
(re1)
print
(
list
(re2))
#因为re2由map()生成的不是list,直接print不出来,添加list()就行了
|
结果:
re1:[87, 65, 43] 。
re2:[6, 2, 0] 。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/dlhlSC/article/details/88072268 。
最后此篇关于如何获取numpy array前N个最大值的文章就讲到这里了,如果你想了解更多关于如何获取numpy array前N个最大值的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
作为脚本的输出,我有 numpy masked array和标准numpy array .如何在运行脚本时轻松检查数组是否为掩码(具有 data 、 mask 属性)? 最佳答案 您可以通过 isin
我的问题 假设我有 a = np.array([ np.array([1,2]), np.array([3,4]), np.array([5,6]), np.array([7,8]), np.arra
numpy 是否有用于矩阵模幂运算的内置实现? (正如 user2357112 所指出的,我实际上是在寻找元素明智的模块化减少) 对常规数字进行模幂运算的一种方法是使用平方求幂 (https://en
我已经在 Numpy 中实现了这个梯度下降: def gradientDescent(X, y, theta, alpha, iterations): m = len(y) for i
我有一个使用 Numpy 在 CentOS7 上运行的项目。 问题是安装此依赖项需要花费大量时间。 因此,我尝试 yum install pip install 之前的 numpy 库它。 所以我跑:
处理我想要旋转的数据。请注意,我仅限于 numpy,无法使用 pandas。原始数据如下所示: data = [ [ 1, a, [, ] ], [ 1, b, [, ] ], [ 2,
numpy.random.seed(7) 在不同的机器学习和数据分析教程中,我看到这个种子集有不同的数字。选择特定的种子编号真的有区别吗?或者任何数字都可以吗?选择种子数的目标是相同实验的可重复性。
我需要读取存储在内存映射文件中的巨大 numpy 数组的部分内容,处理数据并对数组的另一部分重复。整个 numpy 数组占用大约 50 GB,我的机器有 8 GB RAM。 我最初使用 numpy.m
处理我想要旋转的数据。请注意,我仅限于 numpy,无法使用 pandas。原始数据如下所示: data = [ [ 1, a, [, ] ], [ 1, b, [, ] ], [ 2,
似乎 numpy.empty() 可以做的任何事情都可以使用 numpy.ndarray() 轻松完成,例如: >>> np.empty(shape=(2, 2), dtype=np.dtype('d
我在大型 numpy 数组中有许多不同的形式,我想使用 numpy 和 scipy 计算它们之间的边到边欧氏距离。 注意:我进行了搜索,这与堆栈中之前的其他问题不同,因为我想获得数组中标记 block
我有一个大小为 (2x3) 的 numpy 对象数组。我们称之为M1。在M1中有6个numpy数组。M1 给定行中的数组形状相同,但与 M1 任何其他行中的数组形状不同。 也就是说, M1 = [ [
如何使用爱因斯坦表示法编写以下点积? import numpy as np LHS = np.ones((5,20,2)) RHS = np.ones((20,2)) np.sum([ np.
假设我有 np.array of a = [0, 1, 1, 0, 0, 1] 和 b = [1, 1, 0, 0, 0, 1] 我想要一个新矩阵 c 使得如果 a[i] = 0 和 b[i] = 0
我有一个形状为 (32,5) 的 numpy 数组 batch。批处理的每个元素都包含一个 numpy 数组 batch_elem = [s,_,_,_,_] 其中 s = [img,val1,val
尝试为基于文本的多标签分类问题训练单层神经网络。 model= Sequential() model.add(Dense(20, input_dim=400, kernel_initializer='
首先是一个简单的例子 import numpy as np a = np.ones((2,2)) b = 2*np.ones((2,2)) c = 3*np.ones((2,2)) d = 4*np.
我正在尝试平均二维 numpy 数组。所以,我使用了 numpy.mean 但结果是空数组。 import numpy as np ws1 = np.array(ws1) ws1_I8 = np.ar
import numpy as np x = np.array([[1,2 ,3], [9,8,7]]) y = np.array([[2,1 ,0], [1,0,2]]) x[y] 预期输出: ar
我有两个数组 A (4000,4000),其中只有对角线填充了数据,而 B (4000,5) 填充了数据。有没有比 numpy.dot(a,b) 函数更快的方法来乘(点)这些数组? 到目前为止,我发现
我是一名优秀的程序员,十分优秀!