{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 5. előadás" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tartalom: Numpy modul bevezetése és használata, diagramok megjelenítése numpy felhasználásával" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A `numpy` egy széles körben elterjedt Python modul, aminek a segítségével különféle numerikus számításokat végezhetünk, különösen a különféle 1 és több dimenziós adatszerkezetek tekintetében, mint vektorok és mátrixok. A modulban több hasznos, a vektorok és mátrixok esetén értelmezett művelet meg van valósítva, ezek magas hatékonysággal működnek." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A `numpy` telepíthető a `pip install numpy` paranccsal, de például a `matplotlib` csomag telepítése során automatikusan települ." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A `numpy` modult a következő módon importáljuk:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A `numpy` segítségével több módon lehetséges tömb adatszerkezetet létrehozni. Az `array` metódus segítségével 1 és több dimenziós tömböket hozhatunk létre, az elemeinek felsorolásával." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A v változóban egy 1 dimenziós, 3 elemű tömb (vektor) lesz." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "v = np.array([1, 2, 3])" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1 2 3]\n" ] } ], "source": [ "print(v)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1, 2, 3])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Az M változóba egy 2 dimenziós, 4 elemű tömb (mátrix) lesz." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "M = np.array([[1.0, 2.0], [3.0, 4.0]])" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1. 2.]\n", " [3. 4.]]\n" ] } ], "source": [ "print(M)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1., 2.],\n", " [3., 4.]])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A `shape` metódus segítségével megtudhatjuk egy tömb dimenzióit és méreteit. Látható, hogy a visszatérési értéke egy tuple." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(3,)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.shape" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2, 2)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ahogy azt már tanultuk, tuple esetén hivatkozhatunk az egyes értékekre is." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.shape[1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A size metódus megadja, hogy az adatszerkezet hány elemet tartalmaz összesen." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.size" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.size" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A `shape` és `size` a következő módon is használható." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(3,)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.shape(v)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.size(v)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2, 2)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.shape(M)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.size(M)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Egy `numpy` tömbtől lekérdezhető annak adattípusa a `dtype` metódus segítségével." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dtype('int32')" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.dtype" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dtype('float64')" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.dtype" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Az egyes elemeket indexeléssel érhetjük el." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hasonló módon változtathatók egy tömb elemei." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([42, 2, 3])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v[0] = 42\n", "v" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "De a típusa nem módosítható." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([3, 2, 3])" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v[0] = 3.6 #Egész számra fogja kényszeríteni.\n", "v" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```python\n", "v[0] = \"abc\" # Nem tudja egész számként megfeleltetni, hibát kapunk.\n", "\n", "ValueError \n", "----> 1 v[0] = \"abc\" \n", "\n", "ValueError: invalid literal for int() with base 10: 'abc'\n", "```" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([3, 2, 3])" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v #Ezért v értékei változatlanok." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A listák esetén tanult indexelési lehetőségek `numpy` tömbök esetén is ugyanúgy működnek." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Például kérhetjük a tömböt elemeinek fordított sorrendjében." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([3, 2, 3])" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v[::-1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ha több dimenziós adatszerkezetet használunk, azt úgy fogjuk fel mint egy 1 dimenziós szerkezetet, ami további 1 dimenziós szerkezeteket tartalmaz. Ebből kifolyólag a következő kódsor az M mátrix két sorát \"cseréli fel\"." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[3., 4.],\n", " [1., 2.]])" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M[::-1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A következő sor pedig a két oszlopát fordítja meg." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[2., 1.],\n", " [4., 3.]])" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M[::, ::-1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Az `arange` metódus segítségével is generálhatunk `numpy` tömböt." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = np.arange(0, 10, 1) #paraméterek: start, stop, lépésköz\n", "x" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0. , 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1 ,\n", " 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2 , 0.21,\n", " 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3 , 0.31, 0.32,\n", " 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.4 , 0.41, 0.42, 0.43,\n", " 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.5 , 0.51, 0.52, 0.53, 0.54,\n", " 0.55, 0.56, 0.57, 0.58, 0.59, 0.6 , 0.61, 0.62, 0.63, 0.64, 0.65,\n", " 0.66, 0.67, 0.68, 0.69, 0.7 , 0.71, 0.72, 0.73, 0.74, 0.75, 0.76,\n", " 0.77, 0.78, 0.79, 0.8 , 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87,\n", " 0.88, 0.89, 0.9 , 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98,\n", " 0.99])" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = np.arange(0, 1, 0.01)\n", "x" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([5, 4, 3, 2, 1])" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = np.arange(5, 0, -1)\n", "x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lehetőségünk van arra is, hogy véletlenszerű értékekkel feltöltött tömböt generáljunk a megadott méretben. A tömb értékei a [0;1] tartományba fognak esni." ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0.34687163 0.37510313 0.67158997 0.67600103 0.14222258 0.43552257\n", " 0.37888162 0.95326703]\n", " [0.37723136 0.40794039 0.61950294 0.7040759 0.92962434 0.62688732\n", " 0.75129845 0.9189319 ]\n", " [0.28927758 0.68487346 0.97830981 0.47986638 0.82312922 0.01326377\n", " 0.34561041 0.45007201]]\n" ] } ], "source": [ "r1 = np.random.random([3, 8])\n", "print(r1)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 2 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "plt.imshow(r1)\n", "plt.colorbar()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 720x288 with 4 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(1, figsize=(10,4))\n", "plt.subplot(221)\n", "plt.imshow(r1)\n", "plt.subplot(222)\n", "plt.imshow(r1[:, ::-1])\n", "plt.subplot(223)\n", "plt.imshow(r1[::-1, :])\n", "plt.subplot(224)\n", "plt.imshow(r1[::-1, ::-1])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hogyan tudunk tetszőleges [min; max] tartományba generálni véletlen értékeket?" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[11.28204377, 10.57470843, 12.7258235 ],\n", " [10.54668512, 10.90371156, 11.87194907],\n", " [11.52005672, 11.62528317, 10.99931438],\n", " [11.7669422 , 10.71012168, 11.37296749],\n", " [12.65355602, 11.99816744, 10.02294519]])" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "min = 10\n", "max = 13\n", "np.random.random([5, 3]) * (max - min) + min" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ahogy a fenti példa is mutatja, `numpy` tömbök esetén az alapvető matematikai műveletek tagonként értendők. Tehát, ha egy `numpy` tömböt szorzunk, osztunk, összeadunk vagy kivonunk egy skalárral, akkor azt tagonként végzi el." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[10., 20.],\n", " [30., 40.]])" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M * 10" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0.1, 0.2],\n", " [0.3, 0.4]])" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M / 10" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[11., 12.],\n", " [13., 14.]])" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M + 10" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[-9., -8.],\n", " [-7., -6.]])" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M - 10" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ugyanez igaz, ha a vektorokat és mátrixokat szorzunk egymással. Itt tagonkénti szorzás fog végbemenni." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([9, 4, 9])" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v * v" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1., 4.],\n", " [ 9., 16.]])" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M * M" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Vektor és mátrix között is értelmezett a szorzás, de ügyeljünk az adatszerkezetek méreteire." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```python\n", "M * v # Nem fog működni, a méretük nem összeegyeztethető.\n", "\n", "---------------------------------------------------------------------------\n", "ValueError \n", "----> 1 M * v \n", "\n", "ValueError: operands could not be broadcast together with shapes (2,2) (3,)\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A szorzás itt is tagonként történik." ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "b = np.array([1, 2])" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1., 4.],\n", " [3., 8.]])" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M * b" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ha a mátrixok és vektorok klasszikus értelemben vett szorzását akarjuk végrehajtani, akkor azt a `dot` függvény hívásával tehetjük meg." ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 7., 10.],\n", " [15., 22.]])" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.dot(M)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 5., 11.])" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.dot(b)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A `min` és `max` fügvényekkel kérhetjük az adott szerkezet legkisebb és legnagyobb értékét." ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.min(M)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4.0" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.max(M)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Az értékeket összegezhetjük a `sum` fügvénnyel." ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10.0" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.sum(M)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Az átlagot pedig a `mean` függvénnyel számíthatjuk." ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2.5" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.mean(M)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Numpy tömböket is megjeleníthetünk diagaramok segítségével. A felhasználásuk ugyanolyan módon történik, mint azt már a listák esetén tanultuk." ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAD3hJREFUeJzt3X+IZWd9x/H3x11TaRu1uCPI/nAi3YBLsESmMcVSI6ZlE2GXQiq71FrL6qJt7B9K6RZLlPiPWlqLuDYuNqQRTIxadNCVLbWRFHVtRqIxu2FluqZmiHRHTQNFNK799o97lWFyd++ZmTO/nnm/YMg953zn3u+zd/aTZ557ztlUFZKktjxrvRuQJPXPcJekBhnuktQgw12SGmS4S1KDDHdJapDhLkkNMtwlqUGGuyQ1aPt6vfCOHTtqcnJyvV5ekjalr3/969+vqolxdesW7pOTk8zMzKzXy0vSppTkv7rUuSwjSQ0y3CWpQYa7JDXIcJekBhnuktQgw12SGmS4S1KDDHdJatDYcE9yZ5ILSR4ZU/ebSX6W5Jb+2pMkLUeXK1TvAj4E3H2pgiTbgPcBp/ppS5LGmzz2+WV/72PvfW2PnWw8Y2fuVfUA8MMxZW8DPg1c6KMpSdLKrHjNPclO4PeBO1bejiSpD318oPr3wF9W1c/GFSY5mmQmycz8/HwPLy1JGqWPu0JOAfcmAdgB3JzkYlV9ZnFhVZ0ATgBMTU1VD68tSRphxeFeVVf9/HGSu4DPjQp2SdLaGRvuSe4BbgB2JJkD3gU8G6CqXGeXpA1obLhX1eGuT1ZVb1xRN5KkXniFqiQ1yHCXpAYZ7pLUIMNdkhpkuEtSgwx3SWqQ4S5JDTLcJalBhrskNchwl6QGGe6S1CDDXZIaZLhLUoMMd0lqkOEuSQ0y3CWpQYa7JDXIcJekBhnuktQgw12SGjQ23JPcmeRCkkcucfwPkzw8/PpKkt/ov01J0lJ0mbnfBey/zPHvAK+qqpcB7wFO9NCXJGkFto8rqKoHkkxe5vhXFmyeBnatvC1J0kr0veZ+BPhCz88pSVqisTP3rpK8mkG4//Zlao4CRwH27NnT10tLkhbpZeae5GXAR4GDVfWDS9VV1YmqmqqqqYmJiT5eWpI0worDPcke4J+BP6qqb6+8JUnSSo1dlklyD3ADsCPJHPAu4NkAVXUHcBvwAuDDSQAuVtXUajUsSRvB5LHPL/t7H3vva3vsZLQuZ8scHnP8TcCbeutIkrRiXqEqSQ0y3CWpQYa7JDXIcJekBvV2EdNWsdE/IZckcOYuSU1y5q5V5W860vpw5i5JDTLcJalBLstI2pJWsmS4GThzl6QGGe6S1CDDXZIaZLhLUoMMd0lqkGfLbBFeTCRtLc7cJalBhrskNchlGTVppReouBSlzc6ZuyQ1aGy4J7kzyYUkj1zieJJ8MMlskoeTvLz/NiVJS9FlWeYu4EPA3Zc4fhOwd/j1CuAfhv/dsFq/p4RWzrOLtNmNnblX1QPADy9TchC4uwZOA89P8qK+GpQkLV0fa+47gccXbM8N90mS1kkf4Z4R+2pkYXI0yUySmfn5+R5eWpI0Sh/hPgfsXrC9C3hiVGFVnaiqqaqampiY6OGlJUmj9BHu08AbhmfNXA88VVXf6+F5JUnLNPZsmST3ADcAO5LMAe8Cng1QVXcAJ4GbgVngR8CfrFazkqRuxoZ7VR0ec7yAP+utI0nSinmFqiQ1yHvLSI3wwist5MxdkhpkuEtSgzblsoz3htkafJ+l5XPmLkkNMtwlqUGbcllGUjtcflsdztwlqUGGuyQ1yGWZTWI9f3X11+b2+Q+Kt8eZuyQ1yJn7GnIGvDVsxdsA+LO98Thzl6QGGe6S1CDDXZIaZLhLUoMMd0lqkOEuSQ0y3CWpQYa7JDWoU7gn2Z/kXJLZJMdGHN+T5P4kDyV5OMnN/bcqSepqbLgn2QYcB24C9gGHk+xbVPbXwH1VdS1wCPhw341KkrrrMnO/DpitqvNV9TRwL3BwUU0Bzx0+fh7wRH8tSpKWqsu9ZXYCjy/YngNesajm3cC/JHkb8CvAjaOeKMlR4CjAnj17ltqr1Dzv0aK+dJm5Z8S+WrR9GLirqnYBNwMfS/KM566qE1U1VVVTExMTS+9WktRJl3CfA3Yv2N7FM5ddjgD3AVTVV4HnADv6aFCStHRdwv1BYG+Sq5JcweAD0+lFNd8FXgOQ5KUMwn2+z0YlSd2NDfequgjcCpwCHmVwVsyZJLcnOTAsewfw5iTfBO4B3lhVi5duJElrpNM/1lFVJ4GTi/bdtuDxWeCV/bYmSVour1CVpAYZ7pLUIMNdkhpkuEtSgwx3SWqQ4S5JDTLcJalBhrskNchwl6QGGe6S1CDDXZIaZLhLUoMMd0lqkOEuSQ0y3CWpQYa7JDXIcJekBhnuktQgw12SGmS4S1KDOoV7kv1JziWZTXLsEjWvS3I2yZkkH++3TUnSUmwfV5BkG3Ac+F1gDngwyXRVnV1Qsxf4K+CVVfVkkheuVsOSpPG6zNyvA2ar6nxVPQ3cCxxcVPNm4HhVPQlQVRf6bVOStBRdwn0n8PiC7bnhvoWuBq5O8uUkp5PsH/VESY4mmUkyMz8/v7yOJUljdQn3jNhXi7a3A3uBG4DDwEeTPP8Z31R1oqqmqmpqYmJiqb1KkjrqEu5zwO4F27uAJ0bUfLaqflpV3wHOMQh7SdI66BLuDwJ7k1yV5ArgEDC9qOYzwKsBkuxgsExzvs9GJUndjQ33qroI3AqcAh4F7quqM0luT3JgWHYK+EGSs8D9wF9U1Q9Wq2lJ0uWNPRUSoKpOAicX7bttweMC3j78kiStM69QlaQGGe6S1CDDXZIaZLhLUoMMd0lqkOEuSQ0y3CWpQYa7JDXIcJekBhnuktQgw12SGmS4S1KDDHdJapDhLkkNMtwlqUGGuyQ1yHCXpAYZ7pLUIMNdkhpkuEtSgzqFe5L9Sc4lmU1y7DJ1tySpJFP9tShJWqqx4Z5kG3AcuAnYBxxOsm9E3ZXAnwNf67tJSdLSdJm5XwfMVtX5qnoauBc4OKLuPcD7gR/32J8kaRm6hPtO4PEF23PDfb+Q5Fpgd1V9rsfeJEnL1CXcM2Jf/eJg8izgA8A7xj5RcjTJTJKZ+fn57l1KkpakS7jPAbsXbO8CnliwfSVwDfClJI8B1wPToz5UraoTVTVVVVMTExPL71qSdFldwv1BYG+Sq5JcARwCpn9+sKqeqqodVTVZVZPAaeBAVc2sSseSpLHGhntVXQRuBU4BjwL3VdWZJLcnObDaDUqSlm57l6KqOgmcXLTvtkvU3rDytiRJK+EVqpLUIMNdkhpkuEtSgwx3SWqQ4S5JDTLcJalBhrskNchwl6QGGe6S1CDDXZIaZLhLUoMMd0lqkOEuSQ0y3CWpQYa7JDXIcJekBhnuktQgw12SGmS4S1KDDHdJalCncE+yP8m5JLNJjo04/vYkZ5M8nOSLSV7cf6uSpK7GhnuSbcBx4CZgH3A4yb5FZQ8BU1X1MuBTwPv7blSS1F2Xmft1wGxVna+qp4F7gYMLC6rq/qr60XDzNLCr3zYlSUvRJdx3Ao8v2J4b7ruUI8AXVtKUJGlltneoyYh9NbIweT0wBbzqEsePAkcB9uzZ07FFSdJSdZm5zwG7F2zvAp5YXJTkRuCdwIGq+smoJ6qqE1U1VVVTExMTy+lXktRBl3B/ENib5KokVwCHgOmFBUmuBT7CINgv9N+mJGkpxoZ7VV0EbgVOAY8C91XVmSS3JzkwLPsb4FeBTyb5RpLpSzydJGkNdFlzp6pOAicX7bttweMbe+5LkrQCXqEqSQ0y3CWpQYa7JDXIcJekBhnuktQgw12SGmS4S1KDDHdJapDhLkkNMtwlqUGGuyQ1yHCXpAYZ7pLUIMNdkhpkuEtSgwx3SWqQ4S5JDTLcJalBhrskNchwl6QGdQr3JPuTnEsym+TYiOO/lOQTw+NfSzLZd6OSpO7GhnuSbcBx4CZgH3A4yb5FZUeAJ6vq14EPAO/ru1FJUnddZu7XAbNVdb6qngbuBQ4uqjkI/NPw8aeA1yRJf21KkpaiS7jvBB5fsD033DeypqouAk8BL+ijQUnS0m3vUDNqBl7LqCHJUeDocPN/k5zr8Pqj7AC+v8zv3awc89bgmLeAvG9FY35xl6Iu4T4H7F6wvQt44hI1c0m2A88Dfrj4iarqBHCiS2OXk2SmqqZW+jybiWPeGhzz1rAWY+6yLPMgsDfJVUmuAA4B04tqpoE/Hj6+Bfi3qnrGzF2StDbGztyr6mKSW4FTwDbgzqo6k+R2YKaqpoF/BD6WZJbBjP3QajYtSbq8LssyVNVJ4OSifbctePxj4A/6be2yVry0swk55q3BMW8Nqz7muHoiSe3x9gOS1KANHe5b8bYHHcb89iRnkzyc5ItJOp0WtZGNG/OCuluSVJJNf2ZFlzEned3wvT6T5ONr3WPfOvxs70lyf5KHhj/fN69Hn31JcmeSC0keucTxJPng8M/j4SQv77WBqtqQXww+vP1P4CXAFcA3gX2Lav4UuGP4+BDwifXuew3G/Grgl4eP37oVxjysuxJ4ADgNTK1332vwPu8FHgJ+bbj9wvXuew3GfAJ46/DxPuCx9e57hWP+HeDlwCOXOH4z8AUG1wldD3ytz9ffyDP3rXjbg7Fjrqr7q+pHw83TDK472My6vM8A7wHeD/x4LZtbJV3G/GbgeFU9CVBVF9a4x751GXMBzx0+fh7PvJ5mU6mqBxhxvc8CB4G7a+A08PwkL+rr9TdyuG/F2x50GfNCRxj8n38zGzvmJNcCu6vqc2vZ2Crq8j5fDVyd5MtJTifZv2bdrY4uY3438PokcwzOznvb2rS2bpb6931JOp0KuU56u+3BJtJ5PEleD0wBr1rVjlbfZcec5FkM7jT6xrVqaA10eZ+3M1iauYHBb2f/nuSaqvqfVe5ttXQZ82Hgrqr62yS/xeDamWuq6v9Wv711sar5tZFn7ku57QGXu+3BJtJlzCS5EXgncKCqfrJGva2WcWO+ErgG+FKSxxisTU5v8g9Vu/5sf7aqflpV3wHOMQj7zarLmI8A9wFU1VeB5zC470yrOv19X66NHO5b8bYHY8c8XKL4CINg3+zrsDBmzFX1VFXtqKrJqppk8DnDgaqaWZ92e9HlZ/szDD48J8kOBss059e0y351GfN3gdcAJHkpg3CfX9Mu19Y08IbhWTPXA09V1fd6e/b1/kR5zKfNNwPfZvAp+zuH+25n8JcbBm/+J4FZ4D+Al6x3z2sw5n8F/hv4xvBrer17Xu0xL6r9Epv8bJmO73OAvwPOAt8CDq13z2sw5n3AlxmcSfMN4PfWu+cVjvce4HvATxnM0o8AbwHesuA9Pj788/hW3z/XXqEqSQ3ayMsykqRlMtwlqUGGuyQ1yHCXpAYZ7pLUIMNdkhpkuEtSgwx3SWrQ/wNhI2/7sOxXBQAAAABJRU5ErkJggg==\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline\n", "\n", "x = np.arange(1000)\n", "y = np.random.random([1000])\n", "\n", "plt.plot(x, y, \"g\")\n", "plt.show()\n", "plt.hist(y, 20, density=True) # hisztogram, gyakorisági sűrűség\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A `density=True` a hisztogram érékeinek normalizálására szolgál.\n", "\n", "### Emlékeztetőül (valszám)\n", "\n", "Az `x` valószínűségi változó **normális eloszlású** akkor, ha sűrűségfüggvénye:\n", "\n", "$ f(x) = \n", "\\frac{1}{{\\sigma \\sqrt {2\\pi\\sigma^2} }}\n", "e^{{(x-\\mu)^2} / {2\\sigma^2}} \n", "$\n", "\n", "A következő jelölésekkel: $\\sigma^2$ (sigma) a szórásnégyzet; $\\mu$ (mu) pedig a középérték.\n", "\n", "A normális eloszlás egyik fő tulajdonsága, hogy a középértéktől 1 sigma távolságra esik az összes előfordulás 68%-a, 2 sigma távolságra pedig az összes előfordulás 95%-a." ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mu = 10 # középérték \n", "sigma = 5 # szórás\n", "s = np.random.normal(mu, sigma, 1000)\n", "plt.plot(s, \"g\")\n", "plt.show()\n", "plt.hist(s, 20, density = True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Itt már látszik a normál eloszlást jellemző harnaggörbe, de jelenítsük ezt meg pontosabban.\n", "\n", "A $ f(x) = \n", "\\frac{1}{{\\sigma \\sqrt {2\\pi\\sigma^2} }}\n", "e^{{(x-\\mu)^2} / {2\\sigma^2}} \n", "$ képlet pythonban így formalizálható:\n", "\n", "\n", "```python\n", "ys = 1/(sigma * np.sqrt(2 * np.pi)) * np.exp(-(xs - mu)**2 / (2 * sigma**2))\n", "```" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xs = np.arange(mu - 3*sigma, mu + 3*sigma, 0.1)\n", "ys = 1/(sigma * np.sqrt(2 * np.pi)) * np.exp(-(xs - mu)**2 / (2 * sigma**2))\n", "plt.hist(s, 20, density = True)\n", "plt.plot(xs, ys, \"r\", linewidth = 4)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## _Used sources_ / Felhasznált források\n", "- [Shannon Turner: Python lessons repository](https://github.com/shannonturner/python-lessons) MIT license (c) Shannon Turner 2013-2014\n", "- [Siki Zoltán: Python mogyoróhéjban](http://www.agt.bme.hu/gis/python/python_oktato.pdf) GNU FDL license (c) Siki Zoltán\n", "- [BME AUT](https://github.com/bmeaut) MIT License Copyright (c) BME AUT 2016-2018\n", "\n", "## További olvasnivaló:\n", "- https://en.wikipedia.org/wiki/Normal_distribution" ] } ], "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.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }