{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Numpy" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Les opérations sur les matrices" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a1 = [1, 2, 3, 4]\n", "b1 = [5, 6, 7, 8]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "c1 = np.add(a1,b1)\n", "print(c1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "c1 = np.subtract(a1,b1)\n", "print(c1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "c1 = np.multiply(a1,b1)\n", "print(c1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "c1 = np.multiply(4,b1)\n", "print(c1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "c1 = np.dot(a1,b1)\n", "print(c1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "c1 = np.dot(5,b1)\n", "print(c1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "b1 = [5, 6, 7, 8,9]\n", "c1 = np.dot(a1,b1)\n", "print(c)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a1 = [1, 2]\n", "moyen = np.average(a1)\n", "print(moyen)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tranposition matricielle" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "b1 = [[5, 6, 7, 8, 9],\n", " [1, 2, 3, 4, 5]]\n", "print(b1)\n", "b1 = np.array(b1)\n", "print(b1.T)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Séparer une matrice en deux, horizontalement et verticalement" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a = [[0, 0, 0],\n", " [0, 1, 0],\n", " [1, 0, 0],\n", " [1, 1, 1]]\n", "a = np.array(a)\n", "\n", "a = np.hsplit(a, [2])\n", "\n", "a1 = a[0]\n", "a2 = a[1]\n", "print(a1)\n", "print(a2)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a = [[0, 0, 0],\n", " [0, 1, 0],\n", " [1, 0, 0],\n", " [1, 1, 1]]\n", "a = np.array(a)\n", "\n", "a = np.vsplit(a, [2])\n", "\n", "a1 = a[0]\n", "a2 = a[1]\n", "print(a1)\n", "print(a2)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Les opérations sur les matrices bidimensionnelles" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a2 = [[1, 2, 3, 4],\n", " [1, 2, 3, 4]]\n", "b2 = [[5, 6, 7, 8],\n", " [5, 6, 7, 8]]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "c2 = np.add(a2,b2)\n", "print(c2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "c2 = np.subtract(a2,b2)\n", "print(c2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "c2 = np.multiply(a2,b2)\n", "print(c2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "c2 = np.dot(a2,b2)\n", "print(c2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Redéfinir une matrice" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "b2.reshape(4,2)\n", "print(b2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Créer des matrices avec des nombres aléatoires" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a = np.random.rand()\n", "print(a)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a = np.random.rand(1)\n", "print(a)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a = np.random.rand(2,5)\n", "print(a)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a = np.random.rand(2,3,3)\n", "print(a)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a = np.zeros(1)\n", "print(a)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a = np.zeros(1, dtype=int)\n", "print(a)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a = np.zeros((2,5), dtype=int)\n", "print(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Quelques fonctions pour travailler avec des listes" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a = [12, 13, 14, 15]\n", "a_reverse = reversed(a)\n", "\n", "for num in a_reverse:\n", " print(num)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "jours = ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi']\n", "jours_num = list(enumerate(jours))\n", "print(jours_num)\n", "\n", "jours_num = list(enumerate(jours, start=1))\n", "print(jours_num)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a1 = [1, 2, 3, 4]\n", "b1 = [5, 6, 7, 8]\n", "\n", "zipped = list(zip(a1, b1))\n", "print(zipped)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a1 = [1, 2, 3, 4]\n", "b1 = [5, 6, 7, 8]\n", "\n", "ezipped = list(enumerate(zip(a1, b1)))\n", "print(ezipped)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Visualisation avec matplotlib" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import matplotlib.pyplot as plot\n", "\n", "x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n", "y = [0, 1, 0, 0, 1, 0, 1, 1, 1, 0]\n", "plot.plot(x, y, linewidth=3, drawstyle=\"steps\", color=\"#00363a\")\n", "plot.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Pandas et Scikit-learn" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plot\n", "from sklearn.cluster import KMeans\n", "\n", "numarray = np.array([[1, 1], [1, 2], [1, 3], [1, 4], [1, 5], \n", " [1, 6], [1, 7], [1, 8],[1, 9], [1, 10], \n", " [10, 1], [10, 2], [10, 3], [10, 4], [10, 5], \n", " [10, 6], [10, 7], [10, 8],[10, 9], [10, 10]])\n", "\n", "clusters = KMeans(n_clusters = 4, n_init=2)\n", "clusters.fit(numarray)\n", "colors = np.array([\"#ff0000\", \"#00ff00\", \"#0000ff\", \"#ffff00\"])\n", " \n", "plot.scatter(numarray[:, 0], numarray[:, 1], c=colors[clusters.labels_])\n", "plot.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from sklearn import datasets, svm\n", "import numpy as np\n", "import matplotlib.pyplot as plot\n", "\n", "digits = datasets.load_digits()\n", "\n", "training_images = digits.images[:int(digits.images.shape[0]/2)]\n", "training_images = training_images.reshape((training_images.shape[0], -1))\n", "\n", "training_target = digits.target[0:int(digits.target.shape[0]/2)]\n", "\n", "classifier = svm.SVC(gamma=0.001, C=100.)\n", "# entraînement\n", "classifier.fit(training_images, training_target)\n", "\n", "# prédiction\n", "predict_image = digits.images[int(digits.images.shape[0]/2)+2]\n", "print(\"Predicted value: \", classifier.predict(predict_image.reshape(1,-1)))\n", "\n", "plot.imshow(predict_image, cmap=plot.cm.gray_r)\n", "plot.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plot\n", "import pandas as pd\n", "from sklearn.linear_model import LinearRegression\n", "dataset = np.loadtxt(\"population.csv\", dtype={'names': ('year', 'population'), 'formats': ('i4', 'i')},\n", " skiprows=1, delimiter=\",\", encoding=\"UTF-8\")\n", "\n", "df = pd.DataFrame(dataset)\n", "\n", "# données d'entraînement\n", "x_train = df['year'][:40].values.reshape(-1, 1)\n", "y_train = df['population'][:40].values.reshape(-1, 1)\n", "\n", "# entraînement\n", "lr = LinearRegression()\n", "lr.fit(x_train, y_train)\n", "\n", "# affichage des coefficients\n", "print(lr.intercept_, lr.coef_)\n", "\n", "# prédiction\n", "x_predict = x_train = df['year'][41:].values.reshape(-1, 1)\n", "y_actual = df['population'][41:].values.reshape(-1, 1)\n", "y_predict = lr.predict(x_predict)\n", "\n", "plot.scatter(x_predict, y_actual)\n", "plot.plot(x_predict, y_predict, color='red', linewidth=2)\n", "plot.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }