我需要从Python到Matlab进行代码生成,而且我是Python的新手。
虽然有些网站提供了numpy.bincount
和numpy.argmax
的定义,但它们没有给出一个新初学者可以理解的简单示例。
Python算法中有这样的陈述:
numpy.argmax(numpy.bincount(dlabel))
dlabel
是一个矩阵。这个功能究竟做了什么?这个计算对我来说非常重要,我不想因为对这个简单的代码语句的误解而匆忙。
您能否以不同的方式向我展示numpy.bincount
和numpy.argmax
对矩阵的示例?
答案 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次)。