From 9b1981f25be1d57ef91a06d52d111a4430eb6e77 Mon Sep 17 00:00:00 2001 From: Kees van Kempen Date: Thu, 6 Oct 2022 11:50:06 +0200 Subject: [PATCH] 05: Draft, still need to finish this tbh --- Exercise sheet 5/exercise_sheet_05.ipynb | 83 +++++++++++++++++++---- Exercise sheet 5/test.hdf5 | Bin 20096 -> 30152 bytes 2 files changed, 68 insertions(+), 15 deletions(-) diff --git a/Exercise sheet 5/exercise_sheet_05.ipynb b/Exercise sheet 5/exercise_sheet_05.ipynb index 2e8c62f..894cfe7 100644 --- a/Exercise sheet 5/exercise_sheet_05.ipynb +++ b/Exercise sheet 5/exercise_sheet_05.ipynb @@ -226,7 +226,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 5, "id": "9df6a9cc", "metadata": { "deletable": false, @@ -247,12 +247,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "testarray[325] = 0.6746227526601625\n", - "f[\"test\"][325] = 0.6746227526601625\n", - "test[325] = 0.6746227526601625\n", - "f[\"test-plus-one\"][325] = 1.6746227526601625\n", - "f[\"test\"][325] = 0.6746227526601625\n", - "f[\"test-plus-one\"][325] = 1.6746227526601625\n", + "testarray[325] = 0.6809296786477453\n", + "f[\"test\"][325] = 0.6809296786477453\n", + "test[325] = 0.6809296786477453\n", + "f[\"test-plus-one\"][325] = 1.6809296786477455\n", + "f[\"test\"][325] = 0.6809296786477453\n", + "f[\"test-plus-one\"][325] = 1.6809296786477455\n", "data sets in test.hdf5: ['test', 'test-plus-one']\n", "data sets in test.hdf5: ['test-plus-one']\n" ] @@ -319,7 +319,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "id": "51e6fe2c", "metadata": { "deletable": false, @@ -341,13 +341,15 @@ "# if \"random-walk\" in f:\n", "# del f[\"random-walk\"]\n", "\n", - "# YOUR CODE HERE\n", - "raise NotImplementedError()" + "with h5py.File('test.hdf5','a') as f:\n", + " if not \"random-walk\" in f:\n", + " N = 1000\n", + " f.create_dataset(\"random-walk\",data=np.cumsum(np.concatenate([[0.], rng.normal(size=N)])))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "id": "916e8389", "metadata": { "deletable": false, @@ -394,7 +396,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "id": "23067631", "metadata": { "deletable": false, @@ -410,10 +412,61 @@ "task": false } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "ename": "ValueError", + "evalue": "2 indexing arguments for 1 dimensions", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Input \u001b[0;32mIn [33]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[38;5;28mprint\u001b[39m(f[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrandom-walk\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[1;32m 7\u001b[0m plt\u001b[38;5;241m.\u001b[39mfigure()\n\u001b[0;32m----> 8\u001b[0m \u001b[43mplt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplot\u001b[49m\u001b[43m(\u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43marange\u001b[49m\u001b[43m(\u001b[49m\u001b[43mN\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mf\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mrandom-walk\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 9\u001b[0m plt\u001b[38;5;241m.\u001b[39mxlabel(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstep $i$\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 10\u001b[0m plt\u001b[38;5;241m.\u001b[39mylabel(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mposition\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "File \u001b[0;32m/opt/jupyter-conda/lib/python3.9/site-packages/matplotlib/pyplot.py:2757\u001b[0m, in \u001b[0;36mplot\u001b[0;34m(scalex, scaley, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 2755\u001b[0m \u001b[38;5;129m@_copy_docstring_and_deprecators\u001b[39m(Axes\u001b[38;5;241m.\u001b[39mplot)\n\u001b[1;32m 2756\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mplot\u001b[39m(\u001b[38;5;241m*\u001b[39margs, scalex\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m, scaley\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m, data\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m-> 2757\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mgca\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplot\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2758\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mscalex\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mscalex\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mscaley\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mscaley\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2759\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdata\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m}\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/opt/jupyter-conda/lib/python3.9/site-packages/matplotlib/axes/_axes.py:1632\u001b[0m, in \u001b[0;36mAxes.plot\u001b[0;34m(self, scalex, scaley, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1390\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 1391\u001b[0m \u001b[38;5;124;03mPlot y versus x as lines and/or markers.\u001b[39;00m\n\u001b[1;32m 1392\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1629\u001b[0m \u001b[38;5;124;03m(``'green'``) or hex strings (``'#008000'``).\u001b[39;00m\n\u001b[1;32m 1630\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 1631\u001b[0m kwargs \u001b[38;5;241m=\u001b[39m cbook\u001b[38;5;241m.\u001b[39mnormalize_kwargs(kwargs, mlines\u001b[38;5;241m.\u001b[39mLine2D)\n\u001b[0;32m-> 1632\u001b[0m lines \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_lines(\u001b[38;5;241m*\u001b[39margs, data\u001b[38;5;241m=\u001b[39mdata, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)]\n\u001b[1;32m 1633\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m line \u001b[38;5;129;01min\u001b[39;00m lines:\n\u001b[1;32m 1634\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39madd_line(line)\n", + "File \u001b[0;32m/opt/jupyter-conda/lib/python3.9/site-packages/matplotlib/axes/_base.py:312\u001b[0m, in \u001b[0;36m_process_plot_var_args.__call__\u001b[0;34m(self, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 310\u001b[0m this \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m args[\u001b[38;5;241m0\u001b[39m],\n\u001b[1;32m 311\u001b[0m args \u001b[38;5;241m=\u001b[39m args[\u001b[38;5;241m1\u001b[39m:]\n\u001b[0;32m--> 312\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_plot_args\u001b[49m\u001b[43m(\u001b[49m\u001b[43mthis\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/opt/jupyter-conda/lib/python3.9/site-packages/matplotlib/axes/_base.py:488\u001b[0m, in \u001b[0;36m_process_plot_var_args._plot_args\u001b[0;34m(self, tup, kwargs, return_kwargs)\u001b[0m\n\u001b[1;32m 486\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(xy) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m2\u001b[39m:\n\u001b[1;32m 487\u001b[0m x \u001b[38;5;241m=\u001b[39m _check_1d(xy[\u001b[38;5;241m0\u001b[39m])\n\u001b[0;32m--> 488\u001b[0m y \u001b[38;5;241m=\u001b[39m \u001b[43m_check_1d\u001b[49m\u001b[43m(\u001b[49m\u001b[43mxy\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 489\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 490\u001b[0m x, y \u001b[38;5;241m=\u001b[39m index_of(xy[\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m])\n", + "File \u001b[0;32m/opt/jupyter-conda/lib/python3.9/site-packages/matplotlib/cbook/__init__.py:1327\u001b[0m, in \u001b[0;36m_check_1d\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 1321\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m warnings\u001b[38;5;241m.\u001b[39mcatch_warnings(record\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m) \u001b[38;5;28;01mas\u001b[39;00m w:\n\u001b[1;32m 1322\u001b[0m warnings\u001b[38;5;241m.\u001b[39mfilterwarnings(\n\u001b[1;32m 1323\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124malways\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 1324\u001b[0m category\u001b[38;5;241m=\u001b[39m\u001b[38;5;167;01mWarning\u001b[39;00m,\n\u001b[1;32m 1325\u001b[0m message\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mSupport for multi-dimensional indexing\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m-> 1327\u001b[0m ndim \u001b[38;5;241m=\u001b[39m \u001b[43mx\u001b[49m\u001b[43m[\u001b[49m\u001b[43m:\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m]\u001b[49m\u001b[38;5;241m.\u001b[39mndim\n\u001b[1;32m 1328\u001b[0m \u001b[38;5;66;03m# we have definitely hit a pandas index or series object\u001b[39;00m\n\u001b[1;32m 1329\u001b[0m \u001b[38;5;66;03m# cast to a numpy array.\u001b[39;00m\n\u001b[1;32m 1330\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(w) \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m:\n", + "File \u001b[0;32mh5py/_objects.pyx:54\u001b[0m, in \u001b[0;36mh5py._objects.with_phil.wrapper\u001b[0;34m()\u001b[0m\n", + "File \u001b[0;32mh5py/_objects.pyx:55\u001b[0m, in \u001b[0;36mh5py._objects.with_phil.wrapper\u001b[0;34m()\u001b[0m\n", + "File \u001b[0;32m/opt/jupyter-conda/lib/python3.9/site-packages/h5py/_hl/dataset.py:710\u001b[0m, in \u001b[0;36mDataset.__getitem__\u001b[0;34m(self, args, new_dtype)\u001b[0m\n\u001b[1;32m 708\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_fast_read_ok \u001b[38;5;129;01mand\u001b[39;00m (new_dtype \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[1;32m 709\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 710\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_fast_reader\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread\u001b[49m\u001b[43m(\u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 711\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m:\n\u001b[1;32m 712\u001b[0m \u001b[38;5;28;01mpass\u001b[39;00m \u001b[38;5;66;03m# Fall back to Python read pathway below\u001b[39;00m\n", + "File \u001b[0;32mh5py/_selector.pyx:351\u001b[0m, in \u001b[0;36mh5py._selector.Reader.read\u001b[0;34m()\u001b[0m\n", + "File \u001b[0;32mh5py/_selector.pyx:107\u001b[0m, in \u001b[0;36mh5py._selector.Selector.apply_args\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: 2 indexing arguments for 1 dimensions" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ - "# YOUR CODE HERE\n", - "raise NotImplementedError()" + "with h5py.File('test.hdf5','r') as f:\n", + " assert \"random-walk\" in f\n", + " \n", + " N = len(f[\"random-walk\"])\n", + " print(f[\"random-walk\"])\n", + " \n", + " plt.figure()\n", + " plt.plot(np.arange(N), f[\"random-walk\"])\n", + " plt.xlabel(\"step $i$\")\n", + " plt.ylabel(\"position\")\n", + " plt.title(\"Random walk from the origin with standard normal steps\")\n", + " plt.show()" ] }, { diff --git a/Exercise sheet 5/test.hdf5 b/Exercise sheet 5/test.hdf5 index f4985e87aa9e5bfa1e6afafd11cdfa4ea0437fe4..d87e07da7e468fa88685f24170f4d048ad852bcc 100644 GIT binary patch literal 30152 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