From f0fa878eb63f5d7a846c7302f2722a8401c8a880 Mon Sep 17 00:00:00 2001 From: cb1e5ba91280d02583d0604166e71c1c Date: Sun, 5 Apr 2020 11:56:10 +0000 Subject: [PATCH] no commit message --- module3/exo3/exercice.ipynb | 103 +++++++++++++++--------------------- 1 file changed, 44 insertions(+), 59 deletions(-) diff --git a/module3/exo3/exercice.ipynb b/module3/exo3/exercice.ipynb index 1e42c41..58a7002 100644 --- a/module3/exo3/exercice.ipynb +++ b/module3/exo3/exercice.ipynb @@ -966,7 +966,7 @@ }, { "cell_type": "code", - "execution_count": 299, + "execution_count": 318, "metadata": {}, "outputs": [ { @@ -1110,7 +1110,7 @@ "1964-04-01 321.83 319.45 " ] }, - "execution_count": 299, + "execution_count": 318, "metadata": {}, "output_type": "execute_result" } @@ -1126,7 +1126,7 @@ }, { "cell_type": "code", - "execution_count": 300, + "execution_count": 319, "metadata": {}, "outputs": [ { @@ -1270,7 +1270,7 @@ "2020-01-01 413.05 413.37 413.33 " ] }, - "execution_count": 300, + "execution_count": 319, "metadata": {}, "output_type": "execute_result" } @@ -1288,7 +1288,7 @@ }, { "cell_type": "code", - "execution_count": 301, + "execution_count": 320, "metadata": {}, "outputs": [ { @@ -1531,7 +1531,7 @@ "[743 rows x 11 columns]" ] }, - "execution_count": 301, + "execution_count": 320, "metadata": {}, "output_type": "execute_result" } @@ -1543,7 +1543,7 @@ }, { "cell_type": "code", - "execution_count": 304, + "execution_count": 321, "metadata": {}, "outputs": [ { @@ -1786,7 +1786,7 @@ "[12 rows x 11 columns]" ] }, - "execution_count": 304, + "execution_count": 321, "metadata": {}, "output_type": "execute_result" } @@ -1798,85 +1798,69 @@ }, { "cell_type": "code", - "execution_count": 317, + "execution_count": 340, "metadata": {}, "outputs": [], "source": [ - "for i in range(20,15,1):\n", - " dt = df['Date 2'][i+1] - df['Date 2'][i]\n", - " print(dt)\n", - " print(f'{i}')" + "nb = len(df['Date 2'])\n", + "ecart = []\n", + "for i in np.arange(0,nb-1):\n", + " ecart.append(df['Date 2'][i+1] - df['Date 2'][i])\n", + "# definition du signal\n", + "dt = np.mean(ecart)" ] }, { "cell_type": "code", - "execution_count": 277, + "execution_count": 354, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "period\n", - "1964-01-01 1964.0410\n", - "1964-05-01 1964.3716\n", - "1964-06-01 1964.4563\n", - "1964-07-01 1964.5383\n", - "1964-08-01 1964.6230\n", - "1964-09-01 1964.7077\n", - "1964-10-01 1964.7896\n", - "1964-11-01 1964.8743\n", - "1964-12-01 1964.9563\n", - "Name: Date 2, dtype: float64" + "0.08334002695417775" ] }, - "execution_count": 277, + "execution_count": 354, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "data2['Date 2']" + "df.s1.mean()\n", + "dt" ] }, { "cell_type": "code", - "execution_count": 263, + "execution_count": 353, "metadata": {}, "outputs": [ { - "ename": "KeyError", - "evalue": "'Data 2'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 2524\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2525\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2526\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n", - "\u001b[0;31mKeyError\u001b[0m: 'Data 2'", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# definition du signal\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mdt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata2\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Data 2'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mdata2\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Data 2'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;31m# calcul de la transformee de Fourier et des frequences\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0ms1_fft\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfft\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfft\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 2137\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_multilevel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2138\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2139\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_column\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2140\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2141\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_getitem_column\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m_getitem_column\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 2144\u001b[0m \u001b[0;31m# get column\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2145\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_unique\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2146\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_item_cache\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2147\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2148\u001b[0m \u001b[0;31m# duplicate columns & possible reduce dimensionality\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36m_get_item_cache\u001b[0;34m(self, item)\u001b[0m\n\u001b[1;32m 1840\u001b[0m \u001b[0mres\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcache\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mitem\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1841\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mres\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1842\u001b[0;31m \u001b[0mvalues\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mitem\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1843\u001b[0m \u001b[0mres\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_box_item_values\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mitem\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1844\u001b[0m \u001b[0mcache\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mitem\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/internals.py\u001b[0m in \u001b[0;36mget\u001b[0;34m(self, item, fastpath)\u001b[0m\n\u001b[1;32m 3841\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3842\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misna\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mitem\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3843\u001b[0;31m \u001b[0mloc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mitem\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3844\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3845\u001b[0m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0misna\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 2525\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2526\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2527\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_maybe_cast_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2528\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2529\u001b[0m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtolerance\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtolerance\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n", - "\u001b[0;31mKeyError\u001b[0m: 'Data 2'" - ] + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 353, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } ], "source": [ - "s1 = data2.s1\n", - "\n", - "# definition du signal\n", - "dt = data2['Data 2'][1] - data2['Data 2'][0]\n", + "s1 = df.s1 - df.s1.mean()\n", "\n", "# calcul de la transformee de Fourier et des frequences\n", "s1_fft = np.fft.fft(s1)\n", @@ -1885,7 +1869,8 @@ "freq = np.fft.fftfreq(n, d=dt)\n", "\n", "# affichage de la transformee de Fourier\n", - "plt.stem(freq, fourier.real, label=\"real\")" + "plt.figure(figsize=(18, 10))\n", + "plt.stem(freq, s1_fft.real, label=\"real\")\n" ] }, { -- 2.18.1