Учитывая матрицу A формы (1000000,6)
, я понял, как получить минимальное крайнее правое значение для каждой строки, и реализовал это в этой функции:
def calculate_row_minima_indices(h): # h is the given matrix.
"""Returns the indices of the rightmost minimum per row for matrix h."""
flipped = numpy.fliplr(h) # flip the matrix to get the rightmost minimum.
flipped_indices = numpy.argmin(flipped, axis=1)
indices = numpy.array([2]*dim) - flipped_indices
return indices
indices = calculate_row_minima_indices(h)
for col, row in enumerate(indices):
print col, row, h[col][row] # col_index, row_index and value of minimum which should be removed.
В каждой строке есть минимум. Итак, что мне нужно знать, так это удалить запись с минимумом и сжать матрицу с формой (1000000,6)
до матрицы с формой (1000000,5)
.
Я бы сгенерировал новую матрицу с меньшим размером и заполнил бы ее значениями, которые я хочу, чтобы она содержала, используя цикл for, но я боюсь времени выполнения. Итак, есть ли какой-то встроенный способ или какой-то трюк, чтобы уменьшить матрицу до минимума в строке?
Возможно, эта информация будет полезной: все значения больше или равны 0,0.