Dada la siguiente matriz NumPy,gama barajado NumPy lo largo de un eje dado
> a = array([[1, 2, 3, 4, 5], [1, 2, 3, 4, 5],[1, 2, 3, 4, 5]])
es lo suficientemente simple para mezclar una sola fila,
> shuffle(a[0])
> a
array([[4, 2, 1, 3, 5],[1, 2, 3, 4, 5],[1, 2, 3, 4, 5]])
¿Es posible el uso de la notación de indexación para mezclar cada uno de las filas de forma independiente? O tienes que iterar sobre la matriz. Tenía en mente algo así como,
> numpy.shuffle(a[:])
> a
array([[4, 2, 3, 5, 1],[3, 1, 4, 5, 2],[4, 2, 1, 3, 5]]) # Not the real output
aunque esto claramente no funciona.
Gracias, solución simple y limpia. – lafras
al menos para python 3.5, numpy 1.10.2, esto no funciona, a permanece sin cambios. – drevicko
@drevicko: ¿Qué dimensión tiene tu matriz? Esta respuesta es para mezclar todas las filas de una matriz bidimensional (y estoy seguro de que también funciona con tu combinación de versiones de Python y Numpy). –