web-dev-qa-db-fra.com

Dimensions du tableau Numpy

J'essaie actuellement d'apprendre Numpy et Python. Étant donné le tableau suivant:

import numpy as np
a = np.array([[1,2],[1,2]])

Existe-t-il une fonction qui renvoie les dimensions de a (par exemple, un tableau de 2 par 2)?

size() renvoie 4 et cela n'aide pas beaucoup.

319
morgan freeman

C'est .shape :

ndarray. forme
Tuple des dimensions du tableau.

Ainsi:

>>> a.shape
(2, 2)
435
Felix Kling

Premier:

Par convention, dans le monde Python, le raccourci pour numpyest npname__, donc:

In [1]: import numpy as np

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

Seconde:

Dans Numpy, dimension , axe/axes , forme sont des concepts liés et parfois similaires:

dimension

En Mathématiques/Physique , la dimension ou la dimensionnalité est définie de manière informelle comme le nombre minimum de coordonnées nécessaires pour spécifier un point quelconque dans un espace. Mais dans Numpy , selon le numpy doc , c'est la même chose que axe/axes:

Dans Numpy, les dimensions sont appelées axes. Le nombre d'axes est rang.

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

axe/axes

la nième coordonnée pour indexer un arraydans Numpy. Et les tableaux multidimensionnels peuvent avoir un index par axe.

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)

forme

décrit le nombre de données (ou la plage) le long de chaque axe disponible.

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

Fonctionne également si l’entrée n’est pas un tableau numpy mais une liste de listes

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

Ou un tuple de tuples

>>> a = ((1,2),(1,2))
>>> np.shape(a)
(2,2)
44
user4421975

Vous pouvez utiliser .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
12
Rhuan Caetano

Vous pouvez utiliser .ndim pour la dimension et .shape pour connaître la dimension exacte.

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

var.ndim
# displays 2

var.shape
# display 6, 2

Vous pouvez changer la dimension en utilisant la fonction .reshape

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

var.ndim
#display 2

var.shape
#display 3, 4
7
Daksh

La méthode shape requiert que a soit un Numpy ndarray. Mais Numpy peut aussi calculer la forme des iterables d’objets python purs:

np.shape([[1,2],[1,2]])
6
aph

Utilisez l'attribut .shape du tableau numpy. Utilisez .shape [i] pour accéder directement à chaque dimension.

Par exemple si vous écrivez:

a = np.array([[11,12],[21,22],[31,32]])
print(a)
print("Shape: " + str(a.shape))
print("Shape (raws): " + str(a.shape[0]))
print("Shape (columns): " + str(a.shape[1]))

tu auras:

[[11 12]
 [21 22]
 [31 32]]
Shape: (3, 2)
Shape (raws): 3
Shape (columns): 2
0
efdummy