Introduction à NumPy pour Python
Introduction à NumPy pour Python
NumPy, qui signifie Numerical Python, est une bibliothèque composée d'objets de tableau
multidimensionnel et d'une collection de routines pour traiter ces tableaux. En utilisant NumPy,
des opérations mathématiques et logiques sur des tableaux peuvent être effectuées. Ce tutoriel
explique les bases de NumPy telles que son architecture et son environnement. Il aborde
également les différentes fonctions de tableau, les types d'indexation, etc. Une introduction à
Matplotlib est également fournie. Tout cela est expliqué à l'aide d'exemples pour une meilleure
compréhension.
Ce tutoriel a été préparé pour ceux qui souhaitent en savoir plus sur les bases et les différentes
fonctions de NumPy. Il est particulièrement utile pour les développeurs d'algorithmes. Après avoir
terminé ce didacticiel, vous vous retrouverez à un niveau d'expertise modéré à partir duquel vous
pourrez accéder à des niveaux d'expertise plus élevés.
Vous devez avoir une compréhension de base des terminologies de programmation informatique.
Une compréhension de base de Python et de l'un des langages de programmation est un plus.
NumPy - Introduction
NumPy est un package Python. Il signifie «Python numérique». Il s'agit d'une bibliothèque
composée d'objets de tableau multidimensionnel et d'une collection de routines pour le traitement
de tableau.
Numeric, l'ancêtre de NumPy, a été développé par Jim Hugunin. Un autre package Numarray a
également été développé, avec quelques fonctionnalités supplémentaires. En 2005, Travis
Oliphant a créé le package NumPy en incorporant les fonctionnalités de Numarray dans le
package Numeric. Il existe de nombreux contributeurs à ce projet open source.
NumPy - Environnement
La distribution Python standard n'est pas fournie avec le module NumPy. Une alternative légère
consiste à installer NumPy à l'aide du programme d'installation de package Python populaire,pip.
les fenêtres
Anaconda (à partir de [Link] est une distribution Python gratuite pour la pile
SciPy. Il est également disponible pour Linux et Mac.
Canopée ([Link] est disponible en tant que distribution
gratuite et commerciale avec une pile SciPy complète pour Windows, Linux et Mac.
Python (x, y): Il s'agit d'une distribution Python gratuite avec la pile SciPy et Spyder IDE pour
Windows OS. (Téléchargeable depuis[Link]
Linux
Les gestionnaires de packages des distributions Linux respectives sont utilisés pour installer un
ou plusieurs packages dans la pile SciPy.
Pour Ubuntu
sudo apt-get install python-numpy
python-scipy python-matplotlibipythonipythonnotebook python-pandas
python-sympy python-nose
Pour Fedora
sudo yum install numpyscipy python-matplotlibipython
python-pandas sympy python-nose atlas-devel
Pour tester si le module NumPy est correctement installé, essayez de l'importer à partir de l'invite
Python.
import numpy
import numpy as np
Une instance de la classe ndarray peut être construite par différentes routines de création de
tableau décrites plus loin dans le didacticiel. Le ndarray de base est créé à l'aide d'une fonction
de tableau dans NumPy comme suit -
[Link]
Il crée un ndarray à partir de n'importe quel objet exposant l'interface de tableau, ou de toute
méthode qui renvoie un tableau.
1 object
Tout objet exposant la méthode d'interface de tableau renvoie un tableau ou toute séquence (imbr
2 dtype
Type de données de tableau souhaité, facultatif
3 copy
Optionnel. Par défaut (vrai), l'objet est copié
4 order
C (ligne principale) ou F (colonne principale) ou A (n'importe quel) (par défaut)
5 subok
Par défaut, le tableau renvoyé est forcé d'être un tableau de classe de base. Si vrai, les sous-classe
6 ndmin
Spécifie les dimensions minimales du tableau résultant
Exemple 1
import numpy as np
a = [Link]([1,2,3])
print a
[1, 2, 3]
Exemple 2
# more than one dimensions
import numpy as np
a = [Link]([[1, 2], [3, 4]])
print a
[[1, 2]
[3, 4]]
Exemple 3
# minimum dimensions
import numpy as np
a = [Link]([1, 2, 3,4,5], ndmin = 2)
print a
[[1, 2, 3, 4, 5]]
Exemple 4
# dtype parameter
import numpy as np
a = [Link]([1, 2, 3], dtype = complex)
print a
1 bool_
Boolean (True ou False) stocké sous forme d'octet
2 int_
Type entier par défaut (identique à C long; normalement soit int64 ou int32)
3 intc
Identique à C int (normalement int32 ou int64)
4 intp
Entier utilisé pour l'indexation (identique à C ssize_t; normalement soit int32 ou int64)
5 int8
Octet (-128 à 127)
6 int16
Entier (-32768 à 32767)
sept int32
Entier (-2147483648 à 2147483647)
8 int64
Entier (-9223372036854775808 à 9223372036854775807)
9 uint8
Entier non signé (0 à 255)
dix uint16
Entier non signé (0 à 65535)
11 uint32
Entier non signé (0 à 4294967295)
12 uint64
Entier non signé (0 à 18446744073709551615)
13 float_
Raccourci pour float64
14 float16
Flottant demi-précision: bit de signe, exposant 5 bits, mantisse 10 bits
15 float32
Flotteur simple précision: bit de signe, exposant 8 bits, mantisse 23 bits
16 float64
Flotteur double précision: bit de signe, exposant 11 bits, mantisse 52 bits
17 complex_
Raccourci pour complex128
18 complex64
Nombre complexe, représenté par deux flottants 32 bits (composants réels et imaginaires)
19 complex128
Nombre complexe, représenté par deux flottants 64 bits (composants réels et imaginaires)
Les types numériques NumPy sont des instances d'objets dtype (type de données), chacun ayant
des caractéristiques uniques. Les dtypes sont disponibles sous les noms np.bool_, np.float32,
etc.
Exemple 1
# using array-scalar type
import numpy as np
dt = [Link](np.int32)
print dt
La sortie est la suivante -
int32
Exemple 2
#int8, int16, int32, int64 can be replaced by equivalent string 'i1',
'i2','i4', etc.
import numpy as np
dt = [Link]('i4')
print dt
int32
Exemple 3
# using endian notation
import numpy as np
dt = [Link]('>i4')
print dt
>i4
Les exemples suivants illustrent l'utilisation du type de données structurées. Ici, le nom du champ
et le type de données scalaire correspondant doivent être déclarés.
Exemple 4
# first create structured data type
import numpy as np
dt = [Link]([('age',np.int8)])
print dt
[('age', 'i1')]
Exemple 5
# now apply it to ndarray object
import numpy as np
dt = [Link]([('age',np.int8)])
a = [Link]([(10,),(20,),(30,)], dtype = dt)
print a
Exemple 6
# file name can be used to access content of age column
import numpy as np
dt = [Link]([('age',np.int8)])
a = [Link]([(10,),(20,),(30,)], dtype = dt)
print a['age']
[10 20 30]
Exemple 7
Les exemples suivants définissent un type de données structurées appelé student avec un
champ de chaîne 'nom', un integer field 'age' et un float field'Des marques'. Ce dtype est
appliqué à l'objet ndarray.
import numpy as np
student = [Link]([('name','S20'), ('age', 'i1'), ('marks', 'f4')])
print student
Chaque type de données intégré a un code de caractère qui l'identifie de manière unique.
'b' - booléen
'i' - entier (signé)
'u' - entier non signé
'f' - virgule flottante
'c' - virgule flottante complexe
'm' - timedelta
'M' - date / heure
'O' - (Python) objets
'S', 'a' - Chaîne (octet-)
'U' – Unicode
'V' - données brutes (nulles)
[Link]
Cet attribut de tableau renvoie un tuple composé de dimensions de tableau. Il peut également
être utilisé pour redimensionner le tableau.
Exemple 1
import numpy as np
a = [Link]([[1,2,3],[4,5,6]])
print [Link]
(2, 3)
Exemple 2
# this resizes the ndarray
import numpy as np
a = [Link]([[1,2,3],[4,5,6]])
[Link] = (3,2)
print a
[[1, 2]
[3, 4]
[5, 6]]
Exemple 3
NumPy fournit également une fonction de remodelage pour redimensionner un tableau.
import numpy as np
a = [Link]([[1,2,3],[4,5,6]])
b = [Link](3,2)
print b
[[1, 2]
[3, 4]
[5, 6]]
[Link]
Cet attribut de tableau renvoie le nombre de dimensions de tableau.
Exemple 1
# an array of evenly spaced numbers
import numpy as np
a = [Link](24)
print a
La sortie est la suivante -
[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
23]
Exemple 2
# this is one dimensional array
import numpy as np
a = [Link](24)
[Link]
# now reshape it
b = [Link](2,4,3)
print b
# b is having three dimensions
[[[ 0, 1, 2]
[ 3, 4, 5]
[ 6, 7, 8]
[ 9, 10, 11]]
[[12, 13, 14]
[15, 16, 17]
[18, 19, 20]
[21, 22, 23]]]
[Link]
Cet attribut de tableau renvoie la longueur de chaque élément du tableau en octets.
Exemple 1
# dtype of array is int8 (1 byte)
import numpy as np
x = [Link]([1,2,3,4,5], dtype = np.int8)
print [Link]
Exemple 2
# dtype of array is now float32 (4 bytes)
import numpy as np
x = [Link]([1,2,3,4,5], dtype = np.float32)
print [Link]
[Link]
L'objet ndarray possède les attributs suivants. Ses valeurs actuelles sont renvoyées par cette
fonction.
1 C_CONTIGUOUS (C)
Les données se trouvent dans un seul segment contigu de style C
2 F_CONTIGUOUS (F)
Les données se trouvent dans un seul segment contigu de style Fortran
3 OWNDATA (O)
Le tableau possède la mémoire qu'il utilise ou l'emprunte à un autre objet
4 WRITEABLE (W)
La zone de données peut être écrite. La définition de ce paramètre sur False verrouille les données,
5 ALIGNED (A)
Les données et tous les éléments sont alignés de manière appropriée pour le matériel
6 UPDATEIFCOPY (U)
Ce tableau est une copie d'un autre tableau. Lorsque ce tableau est désalloué, le tableau de base ser
tableau
Exemple
L'exemple suivant montre les valeurs actuelles des indicateurs.
import numpy as np
x = [Link]([1,2,3,4,5])
print [Link]
C_CONTIGUOUS : True
F_CONTIGUOUS : True
OWNDATA : True
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : False
[Link]
Il crée un tableau non initialisé de forme et de type spécifié. Il utilise le constructeur suivant -
1 Shape
Forme d'un tableau vide en int ou tuple de int
2 Dtype
Type de données de sortie souhaité. Optionnel
3 Order
'C' pour le tableau principal de ligne de style C, 'F' pour le tableau principal de colonne de style F
Exemple
Le code suivant montre un exemple de tableau vide.
import numpy as np
x = [Link]([3,2], dtype = int)
print x
[[22649312 1701344351]
[1818321759 1885959276]
[16779776 156368896]]
Note - Les éléments d'un tableau affichent des valeurs aléatoires car ils ne sont pas initialisés.
[Link]
Renvoie un nouveau tableau de la taille spécifiée, rempli de zéros.
1 Shape
Forme d'un tableau vide en int ou séquence de int
2 Dtype
Type de données de sortie souhaité. Optionnel
3 Order
'C' pour le tableau principal de ligne de style C, 'F' pour le tableau principal de colonne de style F
Exemple 1
# array of five zeros. Default dtype is float
import numpy as np
x = [Link](5)
print x
La sortie est la suivante -
[ 0. 0. 0. 0. 0.]
Exemple 2
import numpy as np
x = [Link]((5,), dtype = [Link])
print x
[0 0 0 0 0]
Exemple 3
# custom type
import numpy as np
x = [Link]((2,2), dtype = [('x', 'i4'), ('y', 'i4')])
print x
[[(0,0)(0,0)]
[(0,0)(0,0)]]
[Link]
Renvoie un nouveau tableau de taille et de type spécifiés, rempli de uns.
1 Shape
Forme d'un tableau vide en int ou tuple de int
2 Dtype
Type de données de sortie souhaité. Optionnel
3 Order
'C' pour le tableau principal de ligne de style C, 'F' pour le tableau principal de colonne de style F
Exemple 1
# array of five ones. Default dtype is float
import numpy as np
x = [Link](5)
print x
[ 1. 1. 1. 1. 1.]
Exemple 2
import numpy as np
x = [Link]([2,2], dtype = int)
print x
[[1 1]
[1 1]]
[Link]
Cette fonction est similaire à [Link], sauf qu'elle a moins de paramètres. Cette routine est
utile pour convertir une séquence Python en ndarray.
2 dtype
Par défaut, le type de données des données d'entrée est appliqué au ndarray résultant
3 order
C (ligne principale) ou F (colonne principale). C est la valeur par défaut
Exemple 1
# convert list to ndarray
import numpy as np
x = [1,2,3]
a = [Link](x)
print a
[1 2 3]
Exemple 2
# dtype is set
import numpy as np
x = [1,2,3]
a = [Link](x, dtype = float)
print a
[ 1. 2. 3.]
Exemple 3
# ndarray from tuple
import numpy as np
x = (1,2,3)
a = [Link](x)
print a
Sa sortie serait -
[1 2 3]
Exemple 4
# ndarray from list of tuples
import numpy as np
x = [(1,2,3),(4,5)]
a = [Link](x)
print a
[Link]
Cette fonction interprète un tampon comme un tableau unidimensionnel. Tout objet qui expose
l'interface tampon est utilisé comme paramètre pour renvoyer unndarray.
1 buffer
Tout objet qui expose l'interface de la mémoire tampon
2 dtype
Type de données du ndarray renvoyé. Par défaut, float
3 count
Le nombre d'éléments à lire, par défaut -1 signifie toutes les données
4 offset
La position de départ à partir de laquelle lire. La valeur par défaut est 0
Exemple
Les exemples suivants illustrent l'utilisation de frombuffer fonction.
import numpy as np
s = 'Hello World'
a = [Link](s, dtype = 'S1')
print a
Voici sa sortie -
['H' 'e' 'l' 'l' 'o' ' ' 'W' 'o' 'r' 'l' 'd']
[Link]
Cette fonction construit un ndarrayobjet de tout objet itérable. Un nouveau tableau
unidimensionnel est renvoyé par cette fonction.
1 iterable
Tout objet itérable
2 dtype
Type de données du tableau résultant
3 count
Le nombre d'éléments à lire à partir de l'itérateur. La valeur par défaut est -1, ce qui signifie que to
Les exemples suivants montrent comment utiliser la fonction intégrée range()fonction pour
renvoyer un objet de liste. Un itérateur de cette liste est utilisé pour former unndarray objet.
Exemple 1
# create list object using range function
import numpy as np
list = range(5)
print list
[0, 1, 2, 3, 4]
Exemple 2
# obtain iterator object from list
import numpy as np
list = range(5)
it = iter(list)
[0. 1. 2. 3. 4.]
[Link]
Cette fonction renvoie un ndarrayobjet contenant des valeurs régulièrement espacées dans une
plage donnée. Le format de la fonction est le suivant -
1 start
Le début d'un intervalle. Si omis, la valeur par défaut est 0
2 stop
La fin d'un intervalle (sans compter ce nombre)
3 step
Espacement entre les valeurs, la valeur par défaut est 1
4 dtype
Type de données du ndarray résultant. S'il n'est pas indiqué, le type de données d'entrée est utili
Exemple 1
import numpy as np
x = [Link](5)
print x
[0 1 2 3 4]
Exemple 2
import numpy as np
# dtype set
x = [Link](5, dtype = float)
print x
[0. 1. 2. 3. 4.]
Exemple 3
# start and stop parameters set
import numpy as np
x = [Link](10,20,2)
print x
[10 12 14 16 18]
[Link]
Cette fonction est similaire à arange()fonction. Dans cette fonction, au lieu de la taille de pas, le
nombre de valeurs régulièrement espacées entre l'intervalle est spécifié. L'utilisation de cette
fonction est la suivante -
1 start
La valeur de départ de la séquence
2 stop
La valeur finale de la séquence, incluse dans la séquence si le point final est défini sur true
3 num
Le nombre d'échantillons régulièrement espacés à générer. La valeur par défaut est 50
4 endpoint
Vrai par défaut, la valeur d'arrêt est donc incluse dans la séquence. Si faux, il n'est pas inclus
5 retstep
Si vrai, renvoie des échantillons et passe entre les nombres consécutifs
6 dtype
Type de données de sortie ndarray
Sa sortie serait -
Exemple 2
# endpoint set to false
import numpy as np
x = [Link](10,20, 5, endpoint = False)
print x
La sortie serait -
Exemple 3
# find retstep value
import numpy as np
[Link]
Cette fonction renvoie un ndarrayobjet contenant les nombres régulièrement espacés sur une
échelle logarithmique. Les points de fin de début et d'arrêt de l'échelle sont des indices de la
base, généralement 10.
1 start
Le point de départ de la séquence est le début de
base
2 stop
La valeur finale de la séquence est l' arrêt de
base
3 num
Le nombre de valeurs entre la plage. La valeur par défaut est 50
4 endpoint
Si vrai, stop est la dernière valeur de la plage
5 base
Base de l'espace journal, la valeur par défaut est 10
6 dtype
Type de données du tableau de sortie. S'il n'est pas donné, cela dépend d'autres arguments d'ent
Exemple 1
import numpy as np
# default base is 10
a = [Link](1.0, 2.0, num = 10)
print a
Exemple 2
# set base of log space to 2
import numpy as np
a = [Link](1,10,num = 10, base = 2)
print a
Exemple 1
import numpy as np
a = [Link](10)
s = slice(2,7,2)
print a[s]
[2 4 6]
Dans l'exemple ci-dessus, un ndarray l'objet est préparé par arange()fonction. Ensuite, un objet
de tranche est défini avec les valeurs de démarrage, d'arrêt et de pas respectivement 2, 7 et 2.
Lorsque cet objet slice est transmis au ndarray, une partie de celui-ci commençant par l'index 2
jusqu'à 7 avec un pas de 2 est découpée.
Le même résultat peut également être obtenu en donnant les paramètres de découpage séparés
par deux points: (start: stop: step) directement au ndarray objet.
Exemple 2
import numpy as np
a = [Link](10)
b = a[2:7:2]
print b
Si un seul paramètre est mis, un seul élément correspondant à l'index sera renvoyé. Si un: est
inséré devant lui, tous les éléments de cet index seront extraits. Si deux paramètres (avec: entre
eux) sont utilisés, les éléments entre les deux index (sans compter l'index d'arrêt) avec la
première étape par défaut sont découpés.
Exemple 3
# slice single item
import numpy as np
a = [Link](10)
b = a[5]
print b
Exemple 4
# slice items starting from index
import numpy as np
a = [Link](10)
print a[2:]
[2 3 4 5 6 7 8 9]
Exemple 5
# slice items between indexes
import numpy as np
a = [Link](10)
print a[2:5]
[2 3 4]
[[1 2 3]
[3 4 5]
[4 5 6]]
Le découpage peut également inclure des points de suspension (…) pour créer un tuple de
sélection de la même longueur que la dimension d'un tableau. Si des points de suspension sont
utilisés à la position de ligne, il renverra un ndarray comprenant des éléments en lignes.
Exemple 7
# array to begin with
import numpy as np
a = [Link]([[1,2,3],[3,4,5],[4,5,6]])
Indexation entière
Ce mécanisme aide à sélectionner n'importe quel élément arbitraire dans un tableau basé sur
son index Ndimensional. Chaque tableau d'entiers représente le nombre d'index dans cette
dimension. Lorsque l'index se compose d'autant de tableaux d'entiers que les dimensions du
ndarray cible, cela devient simple.
Dans l'exemple suivant, un élément de la colonne spécifiée de chaque ligne de l'objet ndarray est
sélectionné. Par conséquent, l'index de ligne contient tous les numéros de ligne et l'index de
colonne spécifie l'élément à sélectionner.
Exemple 1
import numpy as np
[1 4 5]
Exemple 2
import numpy as np
x = [Link]([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]])
rows = [Link]([[0,0],[3,3]])
cols = [Link]([[0,2],[0,2]])
y = x[rows,cols]
Exemple 3
import numpy as np
x = [Link]([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]])
# slicing
z = x[1:4,1:3]
Exemple 1
Dans cet exemple, les éléments supérieurs à 5 sont renvoyés suite à l'indexation booléenne.
import numpy as np
x = [Link]([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]])
Exemple 2
Dans cet exemple, les éléments NaN (Not a Number) sont omis à l'aide de ~ (opérateur de
complément).
import numpy as np
a = [Link]([[Link], 1,2,[Link],3,4,5])
print a[~[Link](a)]
Sa sortie serait -
[ 1. 2. 3. 4. 5.]
Exemple 3
L'exemple suivant montre comment filtrer les éléments non complexes d'un tableau.
import numpy as np
a = [Link]([1, 2+6j, 5, 3.5+5j])
print a[[Link](a)]
[2.0+6.j 3.5+5.j]
NumPy - Diffusion
Le terme broadcastingfait référence à la capacité de NumPy à traiter des tableaux de différentes
formes lors d'opérations arithmétiques. Les opérations arithmétiques sur les tableaux sont
généralement effectuées sur les éléments correspondants. Si deux tableaux ont exactement la
même forme, ces opérations sont effectuées en douceur.
Exemple 1
import numpy as np
a = [Link]([1,2,3,4])
b = [Link]([10,20,30,40])
c = a * b
print c
[10 40 90 160]
Si les dimensions de deux tableaux sont différentes, les opérations élément à élément ne sont
pas possibles. Cependant, les opérations sur des tableaux de formes non similaires sont toujours
possibles dans NumPy, en raison de la capacité de diffusion. Le plus petit tableau
estbroadcast à la taille du plus grand tableau afin qu'ils aient des formes compatibles.
La diffusion est possible si les règles suivantes sont respectées -
Array avec plus petit ndim que l'autre est précédé de «1» dans sa forme.
La taille dans chaque dimension de la forme de sortie est au maximum des tailles
d'entrée dans cette dimension.
Une entrée peut être utilisée dans le calcul, si sa taille dans une dimension particulière
correspond à la taille de sortie ou si sa valeur est exactement 1.
Si une entrée a une taille de dimension de 1, la première entrée de données dans cette
dimension est utilisée pour tous les calculs le long de cette dimension.
On dit qu'un ensemble de tableaux est broadcastable si les règles ci-dessus produisent un
résultat valide et que l'une des conditions suivantes est vraie -
Les tableaux ont exactement la même forme.
Les tableaux ont le même nombre de dimensions et la longueur de chaque dimension est
soit une longueur commune, soit 1.
Un tableau ayant trop peu de dimensions peut avoir sa forme précédée d'une dimension
de longueur 1, de sorte que la propriété indiquée ci-dessus est vraie.
Le programme suivant montre un exemple de diffusion.
Exemple 2
import numpy as np
a = [Link]([[0.0,0.0,0.0],[10.0,10.0,10.0],[20.0,20.0,20.0],
[30.0,30.0,30.0]])
b = [Link]([1.0,2.0,3.0])
First array:
[[ 0. 0. 0.]
[ 10. 10. 10.]
[ 20. 20. 20.]
[ 30. 30. 30.]]
Second array:
[ 1. 2. 3.]
La figure suivante montre comment le tableau b est diffusé pour devenir compatible avec a.
Exemple 1
import numpy as np
a = [Link](0,60,5)
a = [Link](3,4)
Exemple 2
L'ordre d'itération est choisi pour correspondre à la disposition de la mémoire d'un tableau, sans
tenir compte d'un ordre particulier. Cela peut être vu en itérant sur la transposition du tableau ci-
dessus.
import numpy as np
a = [Link](0,60,5)
a = [Link](3,4)
Ordre d'itération
Si les mêmes éléments sont stockés en utilisant l'ordre de style F, l'itérateur choisit la manière la
plus efficace d'itérer sur un tableau.
Exemple 1
import numpy as np
a = [Link](0,60,5)
a = [Link](3,4)
print 'Original array is:'
print a
print '\n'
print '\n'
Exemple 2
Il est possible de forcer nditer object pour utiliser un ordre spécifique en le mentionnant
explicitement.
import numpy as np
a = [Link](0,60,5)
a = [Link](3,4)
Sa sortie serait -
Exemple
import numpy as np
a = [Link](0,60,5)
a = [Link](3,4)
print 'Original array is:'
print a
print '\n'
Boucle externe
Le constructeur de classe nditer a un ‘flags’ paramètre, qui peut prendre les valeurs suivantes -
N ° Sr. Paramètre et description
1 c_index
L'index C_order peut être suivi
2 f_index
L'index Fortran_order est suivi
3 multi-index
Les types d'index avec un par itération peuvent être suivis
4 external_loop
Fait en sorte que les valeurs données soient des tableaux à une dimension avec plusieurs valeurs au
Exemple
Dans l'exemple suivant, les tableaux unidimensionnels correspondant à chaque colonne sont
parcourus par l'itérateur.
import numpy as np
a = [Link](0,60,5)
a = [Link](3,4)
Itération de diffusion
Si deux tableaux sont broadcastable, un combiné nditerobjet est capable de les itérer
simultanément. En supposant qu'un tableaua a la dimension 3X4, et il y a un autre tableau b de
dimension 1X4, l'itérateur de type suivant est utilisé (tableau b est diffusé à la taille de a).
Exemple
import numpy as np
a = [Link](0,60,5)
a = [Link](3,4)
Changer de forme
N ° Sr. Forme et description
1 remodeler
2 appartement
3 aplatir
4 effilochage
1 transposer
2 ndarray.T
Identique à [Link] ()
3 rollaxis
4 swapaxes
Intervertit les deux axes d'un tableau
1 diffuser
2 broadcast_to
3 expand_dims
4 écraser
1 enchaîner
2 empiler
3 hstack
4 vstack
1 Divisé
2 hsplit
3 vsplit
1 redimensionner
2 ajouter
3 insérer
Insère les valeurs le long de l'axe donné avant les indices donnés
4 effacer
Renvoie un nouveau tableau avec des sous-tableaux le long d'un axe supprimés
5 unique
1 bitwise_and
2 bitwise_or
3 inverser
4 décalage à gauche
5 droite_shift
1 ajouter()
Renvoie la concaténation de chaînes élément par élément pour deux tableaux de str ou Unicode
2 multiplier()
3 centre()
Renvoie une copie de la chaîne donnée avec les éléments centrés dans une chaîne de longueur sp
4 capitaliser()
6 inférieur()
8 Divisé()
9 lignes de division ()
Renvoie une liste des lignes de l'élément, se coupant aux limites de la ligne
dix bande()
11 joindre()
12 remplacer()
Renvoie une copie de la chaîne avec toutes les occurrences de sous-chaîne remplacées par la nou
13 décoder()
14 encoder()
Ces fonctions sont définies dans la classe de tableau de caractères ([Link]). L'ancien
package Numarray contenait la classe chararray. Les fonctions ci-dessus dans la classe
[Link] sont utiles pour effectuer des opérations de chaîne vectorisées.
import numpy as np
a = [Link]([0,30,45,60,90])
Voici sa sortie -
arcsin, arcos, et arctanLes fonctions renvoient l'inverse trigonométrique de sin, cos et tan de
l'angle donné. Le résultat de ces fonctions peut être vérifié [Link]() function en
convertissant les radians en degrés.
Example
import numpy as np
a = [Link]([0,30,45,60,90])
Inverse of cos:
[ 0. 0.52359878 0.78539816 1.04719755 1.57079633]
In degrees:
[ 0. 30. 45. 60. 90.]
Tan function:
[ 0.00000000e+00 5.77350269e-01 1.00000000e+00 1.73205081e+00
1.63312394e+16]
Inverse of tan:
[ 0. 0.52359878 0.78539816 1.04719755 1.57079633]
In degrees:
[ 0. 30. 45. 60. 90.]
Fonctions d'arrondi
[Link] ()
Il s'agit d'une fonction qui renvoie la valeur arrondie à la précision souhaitée. La fonction prend
les paramètres suivants.
[Link](a,decimals)
Où,
1 a
Des données d'entrée
2 decimals
Le nombre de décimales à arrondir. La valeur par défaut est 0. S'il est négatif, l'entier est arrondi à
décimale
Example
import numpy as np
a = [Link]([1.0,5.55, 123, 0.567, 25.532])
Original array:
[ 1. 5.55 123. 0.567 25.532]
After rounding:
[ 1. 6. 123. 1. 26. ]
[ 1. 5.6 123. 0.6 25.5]
[ 0. 10. 120. 0. 30. ]
[Link] ()
Cette fonction renvoie le plus grand entier non supérieur au paramètre d'entrée. Le sol de
lascalar x est le plus grand integer i, tel que i <= x. Notez qu'en Python, le sol est toujours
arrondi à partir de 0.
Example
import numpy as np
a = [Link]([-1.7, 1.5, -0.2, 0.6, 10])
[Link] ()
La fonction ceil () renvoie le plafond d'une valeur d'entrée, c'est-à-dire le ceil du scalar x est le
plus petit integer i, tel que i >= x.
Example
import numpy as np
a = [Link]([-1.7, 1.5, -0.2, 0.6, 10])
Exemple
import numpy as np
a = [Link](9, dtype = np.float_).reshape(3,3)
First array:
[[ 0. 1. 2.]
[ 3. 4. 5.]
[ 6. 7. 8.]]
Second array:
[10 10 10]
[Link] ()
Cette fonction renvoie la réciproque de l'argument, élément par élément. Pour les éléments avec
des valeurs absolues supérieures à 1, le résultat est toujours 0 en raison de la façon dont Python
gère la division entière. Pour l'entier 0, un avertissement de dépassement est émis.
Exemple
import numpy as np
a = [Link]([0.25, 1.33, 1, 0, 100])
[Link] ()
Cette fonction traite les éléments du premier tableau d'entrée comme une base et la renvoie à la
puissance de l'élément correspondant dans le deuxième tableau d'entrée.
import numpy as np
a = [Link]([10,100,1000])
Second array:
[1 2 3]
[Link] ()
Cette fonction renvoie le reste de la division des éléments correspondants dans le tableau
d'entrée. La [Link]() produit également le même résultat.
import numpy as np
a = [Link]([10,20,30])
b = [Link]([3,5,7])
First array:
[10 20 30]
Second array:
[3 5 7]
Les fonctions suivantes sont utilisées pour effectuer des opérations sur un tableau avec des
nombres complexes.
[Link]() - renvoie la partie réelle de l'argument de type de données complexe.
[Link]() - renvoie la partie imaginaire de l'argument de type de données complexe.
[Link]() - renvoie le conjugué complexe, qui est obtenu en changeant le signe de la
partie imaginaire.
[Link]()- renvoie l'angle de l'argument complexe. La fonction a un paramètre de
degré. Si vrai, l'angle en degré est renvoyé, sinon l'angle est en radians.
import numpy as np
a = [Link]([-5.6j, 0.2j, 11. , 1+1j])
[Link] () et [Link] ()
Ces fonctions renvoient le minimum et le maximum à partir des éléments du tableau donné le
long de l'axe spécifié.
Exemple
import numpy as np
a = [Link]([[3,7,5],[8,4,3],[2,4,9]])
print 'Our array is:'
print a
print '\n'
import numpy as np
a = [Link]([[3,7,5],[8,4,3],[2,4,9]])
[Link](a, q, axis)
Où,
1 a
Tableau d'entrée
2 q
Le centile à calculer doit être compris entre 0 et 100
3 axis
L'axe le long duquel le centile doit être calculé
Exemple
import numpy as np
a = [Link]([[30,40,70],[80,20,10],[50,90,60]])
[Link] ()
Medianest définie comme la valeur séparant la moitié supérieure d'un échantillon de données de
la moitié inférieure. [Link]() La fonction est utilisée comme indiqué dans le
programme suivant.
Exemple
import numpy as np
a = [Link]([[30,65,70],[80,95,10],[50,90,60]])
[Link] ()
La moyenne arithmétique est la somme des éléments le long d'un axe divisée par le nombre
d'éléments. [Link]()La fonction renvoie la moyenne arithmétique des éléments du
tableau. Si l'axe est mentionné, il est calculé le long de celui-ci.
Exemple
import numpy as np
a = [Link]([[1,2,3],[3,4,5],[4,5,6]])
[Link] ()
La moyenne pondérée est une moyenne résultant de la multiplication de chaque composante par
un facteur reflétant son importance. [Link]()La fonction calcule la moyenne pondérée
des éléments d'un tableau en fonction de leur poids respectif donné dans un autre tableau. La
fonction peut avoir un paramètre d'axe. Si l'axe n'est pas spécifié, le tableau est aplati.
En considérant un tableau [1,2,3,4] et des poids correspondants [4,3,2,1], la moyenne pondérée
est calculée en additionnant le produit des éléments correspondants et en divisant la somme par
la somme des poids.
Moyenne pondérée = (1 * 4 + 2 * 3 + 3 * 2 + 4 * 1) / (4 + 3 + 2 + 1)
Exemple
import numpy as np
a = [Link]([1,2,3,4])
print 'Our array is:'
print a
print '\n'
Sum of weights
(2.0, 10.0)
Modified array:
[ 0.625 2.625 4.625]
Modified array:
(array([ 0.625, 2.625, 4.625]), array([ 8., 8., 8.]))
Écart-type
L'écart type est la racine carrée de la moyenne des écarts carrés par rapport à la moyenne. La
formule de l'écart type est la suivante -
Si le tableau est [1, 2, 3, 4], alors sa moyenne est de 2,5. Par conséquent, les écarts au carré
sont [2,25, 0,25, 0,25, 2,25] et la racine carrée de sa moyenne divisée par 4, c.-à-d. Sqrt (5/4) est
1,1180339887498949.
Exemple
import numpy as np
print [Link]([1,2,3,4])
1.1180339887498949
Variance
La variance est la moyenne des écarts au carré, c'est-à-dire mean(abs(x - [Link]())**2). En
d'autres termes, l'écart type est la racine carrée de la variance.
Exemple
import numpy as np
print [Link]([1,2,3,4])
1.25
'tri rapide' 1 O (n ^ 2) 0
[Link] ()
La fonction sort () renvoie une copie triée du tableau d'entrée. Il a les paramètres suivants -
[Link](a, axis, kind, order)
Où,
1 a
Tableau à trier
2 axis
L'axe le long duquel le tableau doit être trié. Si aucun, le tableau est aplati, tri sur le dernier axe
3 kind
La valeur par défaut est le tri rapide
4 order
Si le tableau contient des champs, l'ordre des champs à trier
Exemple
import numpy as np
a = [Link]([[3,7],[9,1]])
Order by name:
[('amar', 27) ('anil', 25) ('raju', 21) ('ravi', 17)]
[Link] ()
le [Link]()La fonction effectue un tri indirect sur le tableau d'entrée, le long de l'axe
donné et en utilisant un type de tri spécifié pour renvoyer le tableau d'indices de données. Ce
tableau d'indices est utilisé pour construire le tableau trié.
Exemple
import numpy as np
x = [Link]([3, 1, 2])
Applying argsort() to x:
[1 2 0]
Exemple
import numpy as np
nm = ('raju','anil','ravi','amar')
dv = ('f.y.', 's.y.', 's.y.', 'f.y.')
ind = [Link]((dv,nm))
Le module NumPy a un certain nombre de fonctions pour rechercher dans un tableau. Des
fonctions pour trouver le maximum, le minimum ainsi que les éléments satisfaisant à une
condition donnée sont disponibles.
[Link] () et [Link] ()
Ces deux fonctions renvoient les indices des éléments maximum et minimum respectivement le
long de l'axe donné.
Exemple
import numpy as np
a = [Link]([[30,40,70],[80,20,10],[50,90,60]])
Flattened array:
10
Exemple
import numpy as np
a = [Link]([[30,40,0],[0,20,10],[50,0,60]])
[Link] ()
La fonction where () renvoie les indices des éléments dans un tableau d'entrée où la condition
donnée est satisfaite.
Exemple
import numpy as np
x = [Link](9.).reshape(3, 3)
[Link] ()
le extract() function renvoie les éléments satisfaisant à n'importe quelle condition.
import numpy as np
x = [Link](9.).reshape(3, 3)
# define a condition
condition = [Link](x,2) == 0
[Link] ()
le [Link]() La fonction bascule entre les deux représentations: bigendian et
little-endian.
import numpy as np
a = [Link]([1, 256, 8755], dtype = np.int16)
In hexadecimal form:
['0x100', '0x1', '0x3322']
Pas de copie
Les affectations simples ne font pas la copie de l'objet tableau. Au lieu de cela, il utilise le même
id () du tableau d'origine pour y accéder. leid() renvoie un identifiant universel de l'objet Python,
similaire au pointeur en C.
De plus, tout changement dans l'un ou l'autre se reflète dans l'autre. Par exemple, le changement
de forme de l'un changera également la forme de l'autre.
Exemple
import numpy as np
a = [Link](6)
a is assigned to b:
[0 1 2 3 4 5]
b has same id():
139747815479536
Change shape of b:
[[0 1]
[2 3]
[4 5]]
Exemple
import numpy as np
# To begin with, a is 3X2 array
a = [Link](6).reshape(3,2)
Create view of a:
[[0 1]
[2 3]
[4 5]]
Shape of b:
[[0 1 2]
[3 4 5]]
Shape of a:
[[0 1]
[2 3]
[4 5]]
Exemple
import numpy as np
a = [Link]([[10,10], [2,3], [4,5]])
Create a slice:
[[10 10]
[ 2 3]
[ 4 5]]
Copie profonde
le [Link]()La fonction crée une copie complète. Il s'agit d'une copie complète du tableau
et de ses données, et ne se partage pas avec le tableau d'origine.
Exemple
import numpy as np
a = [Link]([[10,10], [2,3], [4,5]])
Array a is:
[[10 10]
[ 2 3]
[ 4 5]]
a remains unchanged:
[[10 10]
[ 2 3]
[ 4 5]]
Où,
1 shape
int ou tuple de int définir la forme de la nouvelle matrice
2 Dtype
Optionnel. Type de données de la sortie
3 order
C ou F
Exemple
import [Link]
import numpy as np
print [Link]((2,2))
# filled with random data
[[ 2.12199579e-314, 4.24399158e-314]
[ 4.24399158e-314, 2.12199579e-314]]
[Link] ()
Cette fonction renvoie la matrice remplie de zéros.
import [Link]
import numpy as np
print [Link]((2,2))
Il produira la sortie suivante -
[[ 0. 0.]
[ 0. 0.]]
[Link] ()
Cette fonction renvoie la matrice remplie de 1.
import [Link]
import numpy as np
print [Link]((2,2))
[[ 1. 1.]
[ 1. 1.]]
[Link] ()
Cette fonction renvoie une matrice avec 1 le long des éléments diagonaux et les zéros ailleurs.
La fonction prend les paramètres suivants.
Où,
1 n
Le nombre de lignes dans la matrice résultante
2 M
Le nombre de colonnes, par défaut n
3 k
Index de la diagonale
4 dtype
Type de données de la sortie
Exemple
import [Link]
import numpy as np
print [Link](n = 3, M = 4, k = 0, dtype = float)
[[ 1. 0. 0. 0.]
[ 0. 1. 0. 0.]
[ 0. 0. 1. 0.]]
[Link] ()
le [Link]()La fonction renvoie la matrice d'identité de la taille donnée. Une
matrice d'identité est une matrice carrée avec tous les éléments diagonaux comme 1.
import [Link]
import numpy as np
print [Link](5, dtype = float)
[[ 1. 0. 0. 0. 0.]
[ 0. 1. 0. 0. 0.]
[ 0. 0. 1. 0. 0.]
[ 0. 0. 0. 1. 0.]
[ 0. 0. 0. 0. 1.]]
[Link] ()
le [Link]() La fonction renvoie une matrice de la taille donnée remplie de valeurs
aléatoires.
Exemple
import [Link]
import numpy as np
print [Link](3,3)
Notequ'une matrice est toujours bidimensionnelle, alors que ndarray est un tableau à n
dimensions. Les deux objets sont inter-convertibles.
Exemple
import [Link]
import numpy as np
i = [Link]('1,2;3,4')
print i
[[1 2]
[3 4]]
Exemple
import [Link]
import numpy as np
j = [Link](i)
print j
[[1 2]
[3 4]]
Exemple
import [Link]
import numpy as np
k = [Link] (j)
print k
Il produira la sortie suivante -
[[1 2]
[3 4]]
1 point
2 vdot
3 interne
4 matmul
5 déterminant
6 résoudre
sept inv
NumPy - Matplotlib
Matplotlib est une bibliothèque de traçage pour Python. Il est utilisé avec NumPy pour fournir un
environnement qui est une alternative open source efficace pour MatLab. Il peut également être
utilisé avec des kits d'outils graphiques tels que PyQt et wxPython.
Le module Matplotlib a d'abord été écrit par John D. Hunter. Depuis 2012, Michael Droettboom
est le développeur principal. Actuellement, Matplotlib ver. 1.5.1 est la version stable disponible.
Le paquet est disponible en distribution binaire ainsi que sous forme de code source
sur [Link] .
Par convention, le package est importé dans le script Python en ajoutant l'instruction suivante -
Ici pyplot()est la fonction la plus importante de la bibliothèque matplotlib, utilisée pour tracer des
données 2D. Le script suivant trace l'équationy = 2x + 5
Exemple
import numpy as np
from matplotlib import pyplot as plt
x = [Link](1,11)
y = 2 * x + 5
[Link]("Matplotlib demo")
[Link]("x axis caption")
[Link]("y axis caption")
[Link](x,y)
[Link]()
Un objet ndarray x est créé à partir de [Link]() function comme les valeurs sur le x axis.
Les valeurs correspondantes sur ley axis sont stockés dans un autre ndarray object y. Ces
valeurs sont tracées à l'aide deplot() fonction du sous-module pyplot du package matplotlib.
La représentation graphique est affichée par show() fonction.
Le code ci-dessus doit produire la sortie suivante -
Au lieu du graphe linéaire, les valeurs peuvent être affichées discrètement en ajoutant une
chaîne de format à la plot()fonction. Les caractères de formatage suivants peuvent être utilisés.
1 '-'
Style de ligne continue
2 '--'
Style de ligne pointillée
3 '-.'
Style de ligne pointillé
4 ':'
Style de ligne pointillée
5 '.'
Marqueur de point
6 ','
Marqueur de pixel
sept 'o'
Marqueur de cercle
8 'v'
Marqueur Triangle_down
9 '^'
Marqueur Triangle_up
dix '<'
Marqueur Triangle_left
11 '>'
Marqueur Triangle_right
12 '1'
Marqueur Tri_down
13 '2'
Marqueur Tri_up
14 '3'
Marqueur Tri_left
15 '4'
Marqueur Tri_right
16 's'
Marqueur carré
17 'p'
Marqueur Pentagone
18 '*'
Marqueur étoile
19 'h'
Marqueur Hexagon1
20 'H'
Marqueur Hexagon2
21 '+'
Marqueur Plus
22 'x'
Marqueur X
23 'D'
Marqueur diamant
24 'd'
Marqueur Thin_diamond
25 '|'
Marqueur Vline
26 '_'
Marqueur Hline
Personnage Couleur
«b» Bleu
'g' vert
«r» rouge
«c» Cyan
«m» Magenta
«y» Jaune
«k» Noir
«w» blanc
Pour afficher les cercles représentant des points, au lieu de la ligne dans l'exemple ci-dessus,
utilisez “ob” comme chaîne de format dans la fonction plot ().
Exemple
import numpy as np
from matplotlib import pyplot as plt
x = [Link](1,11)
y = 2 * x + 5
[Link]("Matplotlib demo")
[Link]("x axis caption")
[Link]("y axis caption")
[Link](x,y,"ob")
[Link]()
Exemple
import numpy as np
import [Link] as plt
Exemple
import numpy as np
import [Link] as plt
# Compute the x and y coordinates for points on sine and cosine curves
x = [Link](0, 3 * [Link], 0.1)
y_sin = [Link](x)
y_cos = [Link](x)
# Set the second subplot as active, and make the second plot.
[Link](2, 1, 2)
[Link](x, y_cos)
[Link]('Cosine')
bar()
le pyplot submodule fournit bar()fonction pour générer des graphiques à barres. L'exemple
suivant produit le graphique à barres de deux ensembles dex et y tableaux.
Exemple
from matplotlib import pyplot as plt
x = [5,8,10]
y = [12,16,6]
x2 = [6,9,11]
y2 = [6,15,7]
[Link](x, y, align = 'center')
[Link](x2, y2, color = 'g', align = 'center')
[Link]('Bar graph')
[Link]('Y axis')
[Link]('X axis')
[Link]()
[Link] ()
La fonction [Link] () prend le tableau d'entrée et les bins comme deux paramètres.
Les éléments successifs du tableau bin agissent comme la limite de chaque bin.
import numpy as np
a = [Link]([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
[Link](a,bins = [0,20,40,60,80,100])
hist,bins = [Link](a,bins = [0,20,40,60,80,100])
print hist
print bins
[3 4 5 2 1]
[0 20 40 60 80 100]
plt ()
Matplotlib peut convertir cette représentation numérique de l'histogramme en un graphique.
leplt() function du sous-module pyplot prend le tableau contenant les données et le tableau bin
comme paramètres et se convertit en histogramme.
a = [Link]([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
[Link](a, bins = [0,20,40,60,80,100])
[Link]("histogram")
[Link]()
[Link] ()
le [Link]() fichier stocke la matrice d'entrée dans un fichier disque avec npy extension.
import numpy as np
a = [Link]([1,2,3,4,5])
[Link]('outfile',a)
import numpy as np
b = [Link]('[Link]')
print b
array([1, 2, 3, 4, 5])
savetxt ()
Le stockage et la récupération des données du tableau dans un format de fichier texte simple se
fait avec savetxt() et loadtxt() les fonctions.
Exemple
import numpy as np
a = [Link]([1,2,3,4,5])
[Link]('[Link]',a)
b = [Link]('[Link]')
print b
[ 1. 2. 3. 4. 5.]
Les fonctions savetxt () et loadtxt () acceptent des paramètres optionnels supplémentaires tels
que l'en-tête, le pied de page et le délimiteur.