{"cells":[{"metadata":{},"cell_type":"markdown","source":"La bibliothèque NumPy permet d’effectuer des calculs numériques avec Python. Elle introduit une gestion facilitée des tableaux de nombres."},{"metadata":{"trusted":false},"cell_type":"code","source":"import numpy as np","execution_count":1,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Tableaux Numpy\n\nLes tableaux (en anglais, *array*) peuvent être créés avec **numpy.array()**. On utilise des crochets pour délimiter les listes d’éléments dans les tableaux."},{"metadata":{},"cell_type":"markdown","source":"### Création"},{"metadata":{"trusted":false},"cell_type":"code","source":"a = np.array([1, 2, 3, 4])","execution_count":23,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Résultat"},{"metadata":{"trusted":false},"cell_type":"code","source":"a","execution_count":24,"outputs":[{"output_type":"execute_result","execution_count":24,"data":{"text/plain":"array([1, 2, 3, 4])"},"metadata":{}}]},{"metadata":{"trusted":false},"cell_type":"code","source":"type(a)","execution_count":25,"outputs":[{"output_type":"execute_result","execution_count":25,"data":{"text/plain":"<class 'numpy.ndarray'>"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"### Eléments"},{"metadata":{"trusted":false},"cell_type":"code","source":"a[0]","execution_count":26,"outputs":[{"output_type":"execute_result","execution_count":26,"data":{"text/plain":"1"},"metadata":{}}]},{"metadata":{"trusted":false},"cell_type":"code","source":"a[1:]","execution_count":27,"outputs":[{"output_type":"execute_result","execution_count":27,"data":{"text/plain":"array([2, 3, 4])"},"metadata":{}}]},{"metadata":{"trusted":false},"cell_type":"code","source":"a[0::2]","execution_count":28,"outputs":[{"output_type":"execute_result","execution_count":28,"data":{"text/plain":"array([1, 3])"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"### Tableaux auto-générés"},{"metadata":{"trusted":false},"cell_type":"code","source":"np.zeros(4)","execution_count":33,"outputs":[{"output_type":"execute_result","execution_count":33,"data":{"text/plain":"array([0., 0., 0., 0.])"},"metadata":{}}]},{"metadata":{"trusted":false},"cell_type":"code","source":"np.ones(4)","execution_count":34,"outputs":[{"output_type":"execute_result","execution_count":34,"data":{"text/plain":"array([1., 1., 1., 1.])"},"metadata":{}}]},{"metadata":{"trusted":false},"cell_type":"code","source":"b=np.arange(1,9,2)\nb","execution_count":29,"outputs":[{"output_type":"execute_result","execution_count":29,"data":{"text/plain":"array([1, 3, 5, 7])"},"metadata":{}}]},{"metadata":{"trusted":false},"cell_type":"code","source":"c=np.linspace(0,1,11)\nc","execution_count":30,"outputs":[{"output_type":"execute_result","execution_count":30,"data":{"text/plain":"array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## Opérations mathématiques sur les tableaux\nLes manipulations se font directement sur l'ensemble des éléments du tableau."},{"metadata":{"trusted":false},"cell_type":"code","source":"3*a","execution_count":39,"outputs":[{"output_type":"execute_result","execution_count":39,"data":{"text/plain":"array([ 3,  6,  9, 12])"},"metadata":{}}]},{"metadata":{"trusted":false},"cell_type":"code","source":"a+b","execution_count":31,"outputs":[{"output_type":"execute_result","execution_count":31,"data":{"text/plain":"array([ 2,  5,  8, 11])"},"metadata":{}}]},{"metadata":{"trusted":false},"cell_type":"code","source":"a**2","execution_count":32,"outputs":[{"output_type":"execute_result","execution_count":32,"data":{"text/plain":"array([ 1,  4,  9, 16])"},"metadata":{}}]},{"metadata":{"trusted":false},"cell_type":"code","source":"np.sqrt(a**2)","execution_count":35,"outputs":[{"output_type":"execute_result","execution_count":35,"data":{"text/plain":"array([1., 2., 3., 4.])"},"metadata":{}}]},{"metadata":{"trusted":false},"cell_type":"code","source":"np.log10(a)","execution_count":38,"outputs":[{"output_type":"execute_result","execution_count":38,"data":{"text/plain":"array([0.        , 0.30103   , 0.47712125, 0.60205999])"},"metadata":{}}]},{"metadata":{"trusted":false},"cell_type":"code","source":"np.pi*c","execution_count":41,"outputs":[{"output_type":"execute_result","execution_count":41,"data":{"text/plain":"array([0.        , 0.31415927, 0.62831853, 0.9424778 , 1.25663706,\n       1.57079633, 1.88495559, 2.19911486, 2.51327412, 2.82743339,\n       3.14159265])"},"metadata":{}}]},{"metadata":{"trusted":false},"cell_type":"code","source":"np.sin(np.pi*c)","execution_count":43,"outputs":[{"output_type":"execute_result","execution_count":43,"data":{"text/plain":"array([0.00000000e+00, 3.09016994e-01, 5.87785252e-01, 8.09016994e-01,\n       9.51056516e-01, 1.00000000e+00, 9.51056516e-01, 8.09016994e-01,\n       5.87785252e-01, 3.09016994e-01, 1.22464680e-16])"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## Fonctions statistiques (pour évaluations d'incertitudes de type A)"},{"metadata":{},"cell_type":"markdown","source":"#### Moyenne"},{"metadata":{"trusted":false},"cell_type":"code","source":"np.average(a)","execution_count":47,"outputs":[{"output_type":"execute_result","execution_count":47,"data":{"text/plain":"2.5"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"#### Ecart-type expérimental"},{"metadata":{"trusted":false},"cell_type":"code","source":"np.std(a,ddof=1)","execution_count":48,"outputs":[{"output_type":"execute_result","execution_count":48,"data":{"text/plain":"1.2909944487358056"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## Utilisation pour les graphes\nLa bibliothèque graphique **matplotlib.pyplot** permet de tracer un graphe à partir de 2 tableaux numpy contenant les coordonnées des points."},{"metadata":{"trusted":false},"cell_type":"code","source":"import matplotlib.pyplot as plt","execution_count":49,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"x=np.array([0,1,2,3,4,5])\ny=np.array([0,0.32,0.67,0.98,1.29,1.7])","execution_count":50,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"plt.clf() # efface les figures pré-existentes\nplt.plot(x,y,'o-') # graphe y=f(x) sous forme de disques reliées\nplt.show() # affiche le graphe","execution_count":65,"outputs":[{"output_type":"display_data","data":{"application/javascript":"element.append(window._basthonDomNodeBus.pop(0));"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## Exercice\nTracer le graphe de la fonction sinus sur l'intervalle $[0,2\\pi]$. On générera l'ensemble des abscisses avec une fonction **np.linspace**. "},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3","language":"python"}},"nbformat":4,"nbformat_minor":2}