li...@onemanifest.net wrote: > I've got a 2D array with values: > > values = np.array( > [[ 20, 38, 4, 45, 65], > [ 81, 44, 38, 57, 92], > [ 92, 41, 16, 77, 44], > [ 53, 62, 9, 75, 12], > [ 58, 2, 60, 100, 29], > [ 63, 15, 48, 43, 71], > [ 80, 97, 87, 64, 60], > [ 16, 16, 70, 88, 80], > [ 19, 1, 73, 39, 97], > [ 48, 3, 27, 81, 14]]) > > And an array of indexes that for shows which row to keep for each column > of values: > > keep = np.array([2, 3, 1, 9, 2]) > > So, the result should be an array like array([ values[2,0], values[3,1], > values[1,2], values[9,3], values[2,4] ]) == np.array([92, 62, 38, 81, 44]) > > Can this be accomplished in a vectorized manner?
How about values[keep].diagonal() -- https://mail.python.org/mailman/listinfo/python-list