Maison  >  Article  >  développement back-end  >  Axes et dimensions en numpy

Axes et dimensions en numpy

不言
不言original
2018-04-18 11:01:284302parcourir

L'article suivant partagera avec vous une compréhension de l'axe et des dimensions de numpy. Il a une bonne valeur de référence et j'espère qu'il sera utile à tout le monde. Jetons un coup d'oeil

L'objet principal de NumPy est le tableau multidimensionnel homogène. Il s'agit d'un tableau d'éléments (généralement des nombres), tous du même type, indexés par un tuple d'entiers positifs. Dans NumPy, les dimensions sont appelées axes. . Le nombre d'axes est le rang.

Par exemple, les coordonnées d'un point dans l'espace 3D [1, 2, 1] sont un tableau de rang 1, car il a un axe, cet axe a une longueur. de 3. Dans l'exemple illustré ci-dessous, le tableau a le rang 2 (il est à 2 dimensions). La première dimension (axe) a une longueur de 2, la deuxième dimension a une longueur de 3.

<.>

[[ 1., 0., 0.],
 [ 0., 1., 2.]]

ndarray.ndim

Le nombre d'axes du tableau, dans

python In dans le monde de , le nombre d'axes est appelé rang

>> X = np.reshape(np.arange(24), (2, 3, 4))
  # 也即 2 行 3 列的 4 个平面(plane)
>> X
array([[[ 0, 1, 2, 3],
    [ 4, 5, 6, 7],
    [ 8, 9, 10, 11]],
    [[12, 13, 14, 15],
    [16, 17, 18, 19],
    [20, 21, 22, 23]]])

la fonction de forme est une fonction dans numpy.core.fromnumeric , sa fonction est de lire la longueur de la matrice, par exemple shape[0] est de lire la longueur de la première dimension de la matrice.

forme(x)

(2,3,4)

forme(x )[0]

2

ou

x.shape[0]

2

Regardons la composition de chaque plan séparément :

>> X[:, :, 0]
array([[ 0, 4, 8],
    [12, 16, 20]])
>> X[:, :, 1]
array([[ 1, 5, 9],
    [13, 17, 21]])
>> X[:, :, 2]
array([[ 2, 6, 10],
    [14, 18, 22]])
>> X[:, :, 3]
array([[ 3, 7, 11],
    [15, 19, 23]])

C'est , Lors de la réorganisation de np.arange(24)(0, 1, 2, 3, ..., 23), dans les directions de plusieurs axes d'un tableau multidimensionnel, le dernier axe est alloué en premier (pour un tableau bidimensionnel array, C'est-à-dire que la direction de la ligne est attribuée en premier, et pour un tableau tridimensionnel, la direction du plan est attribuée en premier)

reshpae, est une méthode dans le objet tableau, utilisé pour changer la forme du tableau.

Tableau bidimensionnel

#!/usr/bin/env python 
# coding=utf-8 
import numpy as np 
 
a=np.array([1, 2, 3, 4, 5, 6, 7, 8]) 
print a 
d=a.reshape((2,4)) 
print d

Tableau tridimensionnel

#!/usr/bin/env python 
# coding=utf-8 
import numpy as np 
 
a=np.array([1, 2, 3, 4, 5, 6, 7, 8]) 
print a 
f=a.reshape((2, 2, 2)) 
print f

Le principe du changement de forme est que le les éléments du tableau ne peuvent pas être modifiés. Par exemple, il est faux d'écrire ainsi car les éléments du tableau ont changé.

#!/usr/bin/env python 
# coding=utf-8 
import numpy as np 
 
a=np.array([1, 2, 3, 4, 5, 6, 7, 8]) 
print a 
print a.dtype 
e=a.reshape((2,2)) 
print e

Remarque : le nouveau tableau généré par reshape et le tableau d'origine partagent la même mémoire, c'est-à-dire if Changer les éléments d'un tableau modifiera également l'autre tableau.

#!/usr/bin/env python 
# coding=utf-8 
import numpy as np 
 
a=np.array([1, 2, 3, 4, 5, 6, 7, 8]) 
print a 
e=a.reshape((2, 4)) 
print e 
a[1]=100 
print a 
print e

La signification du paramètre de fonction de remodelage -1 en Python

a=np.arange(0, 60, 10)
>>>a
array([0,10,20,30,40,50])
>>>a.reshape(-1,1)
array([[0],
[10],
[20],
[30],
[40],
[50]])

S'il est écrit sous la forme a.reshape(1,1), une erreur sera signalée

ValueError : impossible de remodeler le tableau de taille 6 en forme (1,1)

>>> a = np.array([[1,2,3], [4,5,6]])
>>> np.reshape(a, (3,-1)) # the unspecified value is inferred to be 2
array([[1, 2],
    [3, 4],
    [5, 6]])

-1 signifie que je je suis trop paresseux pour calculer le nombre à remplir, déduit par python via a et d'autres valeurs 3.

# 下面是两张2*3大小的照片(不知道有几张照片用-1代替),如何把所有二维照片给摊平成一维
>>> image = np.array([[[1,2,3], [4,5,6]], [[1,1,1], [1,1,1]]])
>>> image.shape
(2, 2, 3)
>>> image.reshape((-1, 6))
array([[1, 2, 3, 4, 5, 6],
    [1, 1, 1, 1, 1, 1]])

Recommandations associées :


La différence entre un tableau et un tableau dans numpy



Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn