Saltar al contenido

¿Qué hace np.r_ (numpy)?

Simón, miembro de nuestro staff, nos ha hecho el favor de crear este enunciado porque domina a la perfección el tema.

Solución:

Lo que hace es fusionar por filas. Esta publicación tiene un buen ejemplo:

>>>V = array([1,2,3,4,5,6 ])
>>>Y = array([7,8,9,10,11,12])
>>>np.r_[V[0:2],Y[0],V[3],Y[1:3],V[4:],Y[4:]]
array([ 1,  2,  7,  4,  8,  9,  5,  6, 11, 12])

Lea más sobre esto en este y en la documentación de numpy.

numpy.r_[array[], array[]]

Se utiliza para concatenar cualquier número de array rebanadas a lo largo del eje de la fila (primera). Esta es una forma sencilla de crear matrices numpy de forma rápida y eficiente.

Por ejemplo, para crear un array de dos matrices diferentes seleccionando los elementos de su elección, tendremos que asignar los valores cortados a una nueva variable y usar el método de concatenación para unirlos a lo largo de un eje.

>>> a = np.arange(9).reshape(3,3)
>>> b = np.arange(10,19).reshape(3,3)
>>> a
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
>>> b
array([[10, 11, 12],
       [13, 14, 15],
       [16, 17, 18]])

Quiero crear un nuevo 2-D arraycon 2*2 elementos ([4,5,14,15]) entonces, tendré que hacer lo siguiente,

>>> slided_a = a[1,1:3]
>>> sliced_b = b[1,1:3]
>>> new_array = np.concatenate((sliced_a, sliced_b), axis = 0) 

Como esta es claramente una forma ineficiente porque, como la cantidad de elementos que se van a incluir en el nuevo array aumenta, las variables temporales que se asignan para almacenar los valores divididos aumentan.

Aquí es donde usamos np.r_

>>> c = np.r_[a[1,1:3],b[1,1:3]]
array([ 4,  5, 14, 15])

Asimismo, si queremos crear una nueva array al apilar los valores divididos en el segundo eje, podemos usar np.c_

>>> c = np.c_[a[1,1:3],b[1,1:3]]
array([[ 4, 14],
       [ 5, 15]])

Si crees que ha sido de provecho nuestro post, sería de mucha ayuda si lo compartieras con más programadores de esta forma nos ayudas a extender nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *