Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1# -*- coding: utf-8 -*-
2"""
3@file
4@brief Quelques exemples autour de `numpy <http://www.numpy.org/>`_.
5"""
6import numpy
9def numpy_matrix2list(mat):
10 """
11 Convertit une matrice `numpy <http://www.numpy.org/>`_ en list.
13 @param mat matrix
14 @return liste de listes
16 .. exref::
17 :title: opérations avec numpy.matrix
18 :tag: numpy
20 Voici quelques écritures classiques avec le module
21 `numpy <http://www.numpy.org/>`_.
23 ::
25 import numpy as np
26 mat = np.matrix ( [[1,2],[3,4]] ) # crée une matrice 2*2
27 s = mat.shape # égale à (nombre de lignes, nombre de colonnes)
28 l = mat [0,:] # retourne la première ligne
29 c = mat [:,0] # retourne la première colonne
30 iv = mat.I # inverse la matrice
31 mat [:,0] = mat [:,1] # la première ligne est égale à la seconde
32 o = np.ones ( (10,10) ) # crée un matrice de 1 10x10
33 d = np.diag (mat) # extrait la diagonale d'une matrice
34 dd = np.matrix (d) # transforme d en matrice
35 t = mat.transpose () # obtient la transposée
36 e = mat [0,0] # obtient de première élément
37 k = mat * mat # produit matriciel
38 k = mat @ mat # produit matriciel à partir de Python 3.5
39 m = mat * 4 # multiplie la matrice par 4
40 mx = np.max (mat [0,:]) # obtient le maximum de la première ligne
41 s = np.sum (mat [0,:]) # somme de la première ligne
44 mat = np.diagflat ( np.ones ( (1,4) ) )
45 print (mat) # matrice diagonale
46 t = mat == 0
47 print (t) # matrice de booléens
48 mat [ mat == 0 ] = 4
49 print (mat) # ...
50 print (iv) # ...
51 """
52 return mat.tolist()
55def numpy_types():
56 """
57 Returns the list of numpy available types.
59 @return list of types
61 To know a little bit more about those types.
63 .. faqref::
64 :title: Quels sont les types que numpy supporte ?
65 :tag: numpy
67 Lire `basic types <http://docs.scipy.org/doc/numpy/user/basics.types.html>`_.
68 `numpy <http://docs.scipy.org/doc/numpy/>`_
69 propose plus de types que Python, les mêmes que le langage C
70 (langage de son implémentation). Les programmeurs cherchent toujours
71 le plus petit type possible pour représenter un nombre.
72 Si une matrice ne possède que des entiers entre 0 et 255,
73 on peut utiliser le type *numpy.uint8* qui est codé sur un octet.
74 Cela explique pourquoi beaucoup de libraires de machine learning sont codées
75 des *numpy.float32*, soit 4 octets plutôt que *numpy.float64* ou *double*.
76 Deux raisons à cela, les *numpy.float32* prennent deux fois moins de place en mémoire.
77 Le coût des calculs avec des *double* est plus coûteux avec les GPU.
78 Lire `Explaining FP64 performance on GPUs <http://arrayfire.com/explaining-fp64-performance-on-gpus/>`_.
79 """
81 return [numpy.bool_,
82 numpy.int_,
83 numpy.intc,
84 numpy.intp,
85 numpy.int8,
86 numpy.int16,
87 numpy.int32,
88 numpy.int64,
89 numpy.uint8,
90 numpy.uint16,
91 numpy.uint32,
92 numpy.uint64,
93 numpy.float_,
94 numpy.float16,
95 numpy.float32,
96 numpy.float64,
97 numpy.complex_,
98 numpy.complex64,
99 numpy.complex128]