numpy.bincount和numpy.argmax函数伪代码

时间:2015-03-10 10:27:22

标签: python arrays matlab numpy

我需要从Python到Matlab进行代码生成,而且我是Python的新手。

虽然有些网站提供了numpy.bincountnumpy.argmax的定义,但它们没有给出一个新初学者可以理解的简单示例。

Python算法中有这样的陈述:

numpy.argmax(numpy.bincount(dlabel))

dlabel是一个矩阵。这个功能究竟做了什么?这个计算对我来说非常重要,我不想因为对这个简单的代码语句的误解而匆忙。

您能否以不同的方式向我展示numpy.bincountnumpy.argmax对矩阵的示例?

1 个答案:

答案 0 :(得分:1)

numpy.argmax(numpy.bincount(dlabel))会返回dlabel中找到的最常见值。

要将其分解,np.bincount()将返回非负整数数组中每个值的计数,并返回一个数组,该数组的计数位于相应的索引处(Python数组从0开始索引)。例如:

>>> np.bincount([1,2,3,2,4,1,1,0])
array([1, 3, 2, 1, 1], dtype=int32)

(因此0出现一次,1出现三次,......)

np.argmax()返回数组中(第一个)最大值的索引。

>>> np.argmax(np.bincount([1,2,3,2,4,1,1,0]))
1

因此,结合这两个函数,我们可以发现1中最常出现[1,2,3,2,4,1,1,0](它出现3次)。