jac*_*cob 2 python numpy scipy
我想找到一些条件的第一次出现的索引,这样它就会返回一个向量.我需要像axis=0条件np.where或pylab find函数一样的东西,但是没有实现.
为了澄清,想象一下我有以下矩阵:
d=np.array([[0, 1, 0, 1], [0, 1, 1, 1], [1, 0, 0, 0], [0,0,0,1]])
Run Code Online (Sandbox Code Playgroud)
我想要第一次出现d==1行.
结果应该是[1, 1, 0, 3],但我没有看到如何np.where有效地使用或任何其他功能.
我认为你在这里寻找的不是where,它将根据条件从两个不同数组中的一个返回一个元素数组,但是argmax,它返回最大值的索引 - 或者,对于2D数组,每行或每列的最大值的索引.
但是你不想要最大值,你想要的值1,对吗?嗯,d==1是一个布尔数组,并且True大于False,所以:
In [43]: np.argmax(d==1, axis=1)
Out[43]: array([1, 1, 0, 3])
Run Code Online (Sandbox Code Playgroud)