有没有更好的方法从"input_array"和"select_id"中获取"output_array"?
我们能否摆脱range(input_array.shape[0])
?
>>> input_array = numpy.array( [ [3,14], [12, 5], [75, 50] ] )
>>> select_id = [0, 1, 1]
>>> print input_array
[[ 3 14]
[12 5]
[75 50]]
>>> output_array = input_array[ range( input_array.shape[0] ), select_id ]
>>> print output_array
[ 3 5 50]
np.diagonal(input_array[:, select_id])
也可以得到array([ 3, 5, 50])
。 - Jaimearange
替代range
之外,问题中的高级索引解决方案已经是最佳选项了。 - user2357112