Numerosas dimensiones de matriz

Resuelto Cristi P asked hace 14 años • 10 respuestas

¿Cómo obtengo las dimensiones de una matriz? Por ejemplo, esto es 2x2:

a = np.array([[1, 2], [3, 4]])
Cristi P avatar Jun 17 '10 19:06 Cristi P
Aceptado

Úselo .shapepara obtener una tupla de dimensiones de matriz:

>>> a.shape
(2, 2)
Felix Kling avatar Jun 17 '2010 12:06 Felix Kling

Primero:

Por convención, en el mundo Python, el atajo numpyes np, entonces:

In [1]: import numpy as np

In [2]: a = np.array([[1,2],[3,4]])

Segundo:

En Numpy, dimensión , eje/ejes y forma son conceptos relacionados y, a veces, similares:

dimensión

En Matemáticas/Física , dimensión o dimensionalidad se define informalmente como el número mínimo de coordenadas necesarias para especificar cualquier punto dentro de un espacio. Pero en Numpy , según el documento de numpy , es lo mismo que eje/ejes:

En Numpy las dimensiones se llaman ejes. El número de ejes es el rango.

In [3]: a.ndim  # num of dimensions/axes, *Mathematics definition of dimension*
Out[3]: 2

eje/ejes

la enésima coordenada para indexar un arrayen Numpy. Y las matrices multidimensionales pueden tener un índice por eje.

In [4]: a[1,0]  # to index `a`, we specific 1 at the first axis and 0 at the second axis.
Out[4]: 3  # which results in 3 (locate at the row 1 and column 0, 0-based index)

forma

describe cuántos datos (o el rango) a lo largo de cada eje disponible.

In [5]: a.shape
Out[5]: (2, 2)  # both the first and second axis have 2 (columns/rows/pages/blocks/...) data
YaOzI avatar Dec 07 '2016 10:12 YaOzI
import numpy as np   
>>> np.shape(a)
(2,2)

También funciona si la entrada no es una matriz numerosa sino una lista de listas.

>>> a = [[1,2],[1,2]]
>>> np.shape(a)
(2,2)

O una tupla de tuplas

>>> a = ((1,2),(1,2))
>>> np.shape(a)
(2,2)
OMRY VOLK avatar Oct 12 '2015 18:10 OMRY VOLK

Usar .shape:

In: a = np.array([[1,2,3],[4,5,6]])
In: a.shape
Out: (2, 3)
In: a.shape[0] # x axis
Out: 2
In: a.shape[1] # y axis
Out: 3
Rhuan Caetano avatar Aug 25 '2017 18:08 Rhuan Caetano

Puede utilizar .ndimpara la dimensión y .shapepara conocer la dimensión exacta:

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

>>> var.ndim
2

>>> var.shape
(2, 6) 

Puede cambiar la dimensión usando .reshapela función:

>>> var_ = var.reshape(3, 4)

>>> var_.ndim
2

>>> var_.shape
(3, 4)
Daksh Gupta avatar Aug 15 '2018 03:08 Daksh Gupta