HOWTO · NumPy

Obtener la longitud de un array en NumPy

Usa `len(array)` para obtener la longitud del primer eje de un array NumPy, `array.size` para contar todos sus elementos y `array.shape` para consultar la longitud de cada dimensión.

En esta página

Usa len(array) para obtener la longitud del primer eje de un array NumPy, array.size para contar todos sus elementos y array.shape para consultar sus dimensiones. Cada opción responde a una pregunta distinta: en un array bidimensional, la longitud indica el número de filas, el tamaño cuenta todas las entradas y la forma describe tanto las filas como las columnas.

Obtener la longitud de un array NumPy y el número total de elementos

La función integrada de Python len() devuelve la longitud del primer eje de un array que tiene al menos una dimensión. En un array unidimensional, también corresponde al número total de elementos. En uno multidimensional, cuenta los grupos del nivel exterior, no cada entrada individual.

El atributo ndarray.size devuelve el número total de elementos de todos los ejes. Se escribe array.size, sin paréntesis. Funciona con arrays unidimensionales y multidimensionales; no hace falta aplanar el array para contar sus elementos.

Este ejemplo autónomo requiere NumPy.

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

import numpy as np

vector = np.array([1, 2, 3, 4, 5, 6])
array = np.array([[1, 2, 3], [4, 5, 6]])

print("Vector length:", len(vector))
print("Vector element count:", vector.size)
print("Array length:", len(array))
print("Array element count:", array.size)
Vector length: 6
Vector element count: 6
Array length: 2
Array element count: 6

El vector tiene seis entradas en su único eje, por lo que su longitud y su número total de elementos coinciden. El array bidimensional tiene dos filas con tres entradas cada una. Por tanto, la longitud del primer eje indica el número de filas, mientras que el recuento total incluye las entradas de ambas filas.

NumPy también ofrece la función np.size(array), que devuelve el recuento total si no se especifica un eje. A diferencia del atributo, la función admite un eje: np.size(array, axis=1) devuelve la longitud del segundo eje. Usa el atributo para obtener el recuento total y especifica un eje cuando necesites una dimensión concreta. Ninguna de estas operaciones cuenta solo los valores distintos o distintos de cero.

Consultar las dimensiones de un array NumPy

El atributo ndarray.shape devuelve una tupla con la longitud de cada eje. Se escribe array.shape, sin paréntesis. La función correspondiente es np.shape(array); también devuelve la forma, no un recuento escalar de elementos.

Para el array bidimensional anterior, la forma es (2, 3): dos filas y tres columnas. Consulta array.shape[0] para obtener el número de filas y array.shape[1] para obtener el de columnas. Desempaqueta la tupla con rows, columns = array.shape solo si el array tiene exactamente dos dimensiones.

En un array unidimensional de seis elementos, la forma es (6,), una tupla de un solo elemento, y no el entero 6. Una forma como (2, 3, 4) describe tres ejes. Multiplica las longitudes de todos los ejes para obtener el número total de elementos; multiplicar solo las dos primeras no sirve como regla general para dimensiones superiores. Si solo necesitas el total, usa array.size.

El número de entradas de la tupla de forma es el número de dimensiones; también puedes consultarlo con array.ndim. Un array escalar como np.array(7) tiene forma () y un elemento, pero no tiene primer eje, por lo que len() no está definido para él. Si un array desconocido no se comporta como una tabla, consulta su forma antes de indexar o desempaquetar sus dimensiones.