Dimensions du tableau Numpy

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

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

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

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

282
demandé sur gsamaras 2010-06-17 16:55:51

6 réponses

, Il est .shape:

Ndarray.de la forme
Tuple de dimensions de tableau.

Ainsi:

>>> a.shape
(2, 2)
383
répondu Felix Kling 2010-06-17 12:59:46
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)
42
répondu user4421975 2018-05-05 23:14:40

Premier:

Par convention, dans le monde Python, le raccourci pour numpy est np, donc:

In [1]: import numpy as np

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

Deuxième:

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

Dimension

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

Dans les dimensions Numpy sont appelés axes. Le nombre d'axes est de rang.

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

Axe / axes

La coordonnée nième pour indexer un {[6] } en 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
35
répondu YaOzI 2016-12-08 02:13:25

Vous pouvez utiliser .forme

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
9
répondu Rhuan Caetano 2017-08-25 18:10:30

La méthode shape nécessite que a soit un ndarray Numpy. Mais Numpy peut également calculer la forme des itérables des objets Python purs:

np.shape([[1,2],[1,2]])
6
répondu aph 2017-06-15 17:01:43

, Vous pouvez utiliser .ndim pour la dimension et la .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 modifier la dimension en utilisant .reshape Fonction

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
2
répondu Daksh 2018-08-18 12:04:46