Reemplace el valor mínimo por otro en una matriz numpy

Digamos que tenemos esta matriz y quiero reemplazar el valor mínimo con el número 50

import numpy as np numbers = np.arange(20) numbers[numbers.min()] = 50 

Así que la salida es [50,1,2,3,....20]

Pero ahora tengo problemas con esto:

 numbers = np.arange(20).reshape(5,4) numbers[numbers.min(axis=1)]=50 

para obtener [[50,1,2,3],[50,5,6,7],....]

Sin embargo me sale este error:

    IndexError: el índice 8 está fuera de los límites para el eje 0 con tamaño 5 ….

    ¿Alguna idea para ayudar?

    numpy.argmin usar numpy.argmin lugar de numpy.min :

     In [89]: numbers = np.arange(20).reshape(5,4) In [90]: numbers[np.arange(len(numbers)), numbers.argmin(axis=1)] = 50 In [91]: numbers Out[91]: array([[50, 1, 2, 3], [50, 5, 6, 7], [50, 9, 10, 11], [50, 13, 14, 15], [50, 17, 18, 19]]) In [92]: numbers = np.arange(20).reshape(5,4) In [93]: numbers[1,3] = -5 # Let's make sure that mins are not on same column In [94]: numbers[np.arange(len(numbers)), numbers.argmin(axis=1)] = 50 In [95]: numbers Out[95]: array([[50, 1, 2, 3], [ 4, 5, 6, 50], [50, 9, 10, 11], [50, 13, 14, 15], [50, 17, 18, 19]]) 

    (Creo que mi respuesta original fue incorrecta, confundí filas y columnas, y esto es correcto)