HOWTO · NumPy
Cómo agregar una fila a un array en NumPy
Este tutorial demuestra cómo agregar una fila a un array en numpy.
En esta página
Una matriz de NumPy es un array bidimensional. Para agregar una fila, proporciona un valor para cada columna y combina la fila a lo largo del eje 0. Usa numpy.vstack() para apilarla directamente en vertical; usa numpy.append() o numpy.concatenate() cuando su forma de combinar arrays se adapte mejor a tu código. Estas operaciones devuelven un array nuevo, así que asigna el resultado si quieres conservarlo.
Los ejemplos usan una matriz de tres columnas y agregan [7, 8, 9]. Cada ejemplo imprime el array resultante para que puedas ver la fila añadida.
Agregar una fila con numpy.vstack()
numpy.vstack() apila arrays en vertical. Acepta la nueva fila como un array unidimensional y devuelve un array nuevo con esa fila al final.
Ejecuta este ejemplo:
import numpy as np
matrix = np.array([[1, 2, 3],
[4, 5, 6]])
new_row = np.array([7, 8, 9])
result = np.vstack((matrix, new_row))
print(result)
La matriz original no cambia; result contiene la fila añadida. La fila debe tener tres valores para que coincida con el número de columnas de la matriz. Para agregar varias filas, pasa a numpy.vstack() un array bidimensional que las contenga.
Agregar una fila con numpy.append()
Con numpy.append(), establece axis=0 para agregar la fila a lo largo de la dimensión de las filas. En este ejemplo, la nueva fila es bidimensional y tiene forma (1, 3), acorde con las dos dimensiones de la matriz y sus tres columnas.
import numpy as np
matrix = np.array([[1, 2, 3],
[4, 5, 6]])
new_row = np.array([[7, 8, 9]])
result = np.append(matrix, new_row, axis=0)
print(result)
numpy.append() devuelve un array nuevo en lugar de modificar matrix directamente. Asigna el valor devuelto, como se muestra arriba, para usar el array con la fila añadida. Con axis=0, los arrays deben tener el mismo número de columnas; esta operación también permite agregar varias filas si se proporcionan con una forma bidimensional compatible. Si vas a añadir filas repetidamente a un array grande, considera recopilarlas y combinarlas una sola vez, ya que cada llamada a append construye un array resultante.
Combinar filas con numpy.concatenate() y numpy.r_
numpy.concatenate() une arrays a lo largo de un eje existente. Usa axis=0 para agregar filas y asegúrate de que cada entrada tenga el mismo número de columnas. Es una operación general para combinar arrays, por lo que también sirve para unir más de dos arrays compatibles.
import numpy as np
matrix = np.array([[1, 2, 3],
[4, 5, 6]])
new_row = np.array([[7, 8, 9]])
result = np.concatenate((matrix, new_row), axis=0)
print(result)
numpy.r_ es un objeto especial de indexación, no una llamada a una función. Ofrece una forma concisa de combinar filas en este caso:
import numpy as np
matrix = np.array([[1, 2, 3],
[4, 5, 6]])
new_row = np.array([[7, 8, 9]])
result = np.r_[matrix, new_row]
print(result)
Elige numpy.vstack() cuando el apilamiento vertical exprese la intención con mayor claridad, y numpy.concatenate() cuando quieras indicar el eje explícitamente o combinar una secuencia de arrays. numpy.r_ es una alternativa compacta para concatenaciones sencillas.
Insertar una fila en una posición específica con numpy.insert()
Usa numpy.insert() cuando quieras colocar la nueva fila entre filas existentes. Su argumento obj indica la posición de inserción: el índice 1 coloca la fila antes de la segunda fila actual. Establece axis=0 para que NumPy inserte la fila a lo largo de la dimensión de las filas.
import numpy as np
matrix = np.array([[1, 2, 3],
[4, 5, 6]])
new_row = [7, 8, 9]
result = np.insert(matrix, 1, new_row, axis=0)
print(result)
Para insertar una fila después de la última, usa como posición el número actual de filas. En un array bidimensional, .shape es un atributo cuyo primer valor indica el número de filas:
import numpy as np
matrix = np.array([[1, 2, 3],
[4, 5, 6]])
new_row = [7, 8, 9]
position = matrix.shape[0]
result = np.insert(matrix, position, new_row, axis=0)
print(result)
Al igual que los otros métodos, numpy.insert() devuelve un array nuevo. Conserva el resultado o asígnalo de nuevo a matrix; el array original no se modifica. Con cualquiera de los cuatro métodos, la fila añadida debe tener el mismo número de columnas que las filas existentes.