python代码片段的说明>> numpy.nonzero(row == max(row))[0] [0]<<从使用numpy的脚本

时间:2011-05-20 10:24:48

标签: python numpy

这个和平的python代码是什么

row = R[i,]
j = numpy.nonzero(row == max(row))[0][0]

做,假设这个输出:

command   # output of python
----------------------------------
R.shape   # (224, 24)
type(R)   # <type 'numpy.ndarray'>
type(row) # <type 'numpy.ndarray'>
type(j)   # <type 'numpy.int64'>

(如果需要,我会提供更多信息,以回答我的问题。)

更新

抱歉,我使用了两次变量i。我在问题中改变了这一点!

2 个答案:

答案 0 :(得分:8)

这两行似乎是说j = np.argmax(R[i])的迂回方式,即查找i Rj中最大元素的列索引,并存储结果在{{1}}。

答案 1 :(得分:2)

也许一个例子会有所帮助:

In []: R= arange(12).reshape(4, 3)
In []: R
Out[]: 
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11]])
In []: i= 1
In []: row= R[i, ]
In []: row
Out[]: array([3, 4, 5])
In []: j= nonzero(row== max(row))[0][0]
In []: j
Out[]: 2

因此ji RIn []: R[i, j] Out[]: 5 中最大元素的索引。所以

{{1}}