From ab00b5cd65d77c48872c4c688d9fe9bc0c0fc9ae Mon Sep 17 00:00:00 2001 From: Mirko Birbaumer <mirko.birbaumer@hslu.ch> Date: Fri, 16 Sep 2022 20:09:36 +0000 Subject: [PATCH] Added Introduction to Numpy and Pandas notebook --- ...ck 4 - Convolutional Neural Networks.ipynb | 3 - .../Checking_Correct_Installation.ipynb | 9 +- .../Examples script/stinkbug4.JPG | Bin 31732 -> 0 bytes ...ook - Introduction Numpy and Pandas.ipynb} | 804 ++++++++++++++---- .../Solution - Basics Numpy.ipynb | 7 + 5 files changed, 655 insertions(+), 168 deletions(-) delete mode 100644 notebooks/Preliminaries_Numpy_Pandas/Examples script/stinkbug4.JPG rename notebooks/Preliminaries_Numpy_Pandas/{Examples script/Preliminaries_Numpy_Pandas.ipynb => Jupyter Notebook - Introduction Numpy and Pandas.ipynb} (72%) diff --git a/notebooks/Convolutional_Neural_Networks/Jupyter Notebook Block 4 - Convolutional Neural Networks.ipynb b/notebooks/Convolutional_Neural_Networks/Jupyter Notebook Block 4 - Convolutional Neural Networks.ipynb index b0cc622..9cdf02f 100644 --- a/notebooks/Convolutional_Neural_Networks/Jupyter Notebook Block 4 - Convolutional Neural Networks.ipynb +++ b/notebooks/Convolutional_Neural_Networks/Jupyter Notebook Block 4 - Convolutional Neural Networks.ipynb @@ -30,9 +30,6 @@ "output_type": "stream", "text": [ "2.7.1\n", - "Downloading data from https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz\n", - "170500096/170498071 [==============================] - 9s 0us/step\n", - "170508288/170498071 [==============================] - 9s 0us/step\n", "Train: X=(50000, 32, 32, 3), y=(50000, 1)\n", "Test: X=(10000, 32, 32, 3), y=(10000, 1)\n", "(50000, 1)\n", diff --git a/notebooks/Preliminaries_Numpy_Pandas/Checking_Correct_Installation.ipynb b/notebooks/Preliminaries_Numpy_Pandas/Checking_Correct_Installation.ipynb index 9c6d283..9d41c32 100644 --- a/notebooks/Preliminaries_Numpy_Pandas/Checking_Correct_Installation.ipynb +++ b/notebooks/Preliminaries_Numpy_Pandas/Checking_Correct_Installation.ipynb @@ -80,7 +80,7 @@ { "data": { "text/plain": [ - "<matplotlib.collections.PathCollection at 0x7fec50d77050>" + "<matplotlib.collections.PathCollection at 0x7fd13651a050>" ] }, "execution_count": 5, @@ -105,6 +105,13 @@ "%matplotlib inline\n", "plt.scatter(range(100), np.sin(0.1 * np.array(range(100))))" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/notebooks/Preliminaries_Numpy_Pandas/Examples script/stinkbug4.JPG b/notebooks/Preliminaries_Numpy_Pandas/Examples script/stinkbug4.JPG deleted file mode 100644 index eb88408c8e21bc0f89bb4706c7b25be747d589d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31732 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 diff --git a/notebooks/Preliminaries_Numpy_Pandas/Examples script/Preliminaries_Numpy_Pandas.ipynb b/notebooks/Preliminaries_Numpy_Pandas/Jupyter Notebook - Introduction Numpy and Pandas.ipynb similarity index 72% rename from notebooks/Preliminaries_Numpy_Pandas/Examples script/Preliminaries_Numpy_Pandas.ipynb rename to notebooks/Preliminaries_Numpy_Pandas/Jupyter Notebook - Introduction Numpy and Pandas.ipynb index e4fc5e5..2a16323 100644 --- a/notebooks/Preliminaries_Numpy_Pandas/Examples script/Preliminaries_Numpy_Pandas.ipynb +++ b/notebooks/Preliminaries_Numpy_Pandas/Jupyter Notebook - Introduction Numpy and Pandas.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 42, "metadata": {}, "outputs": [ { @@ -45,7 +45,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 43, "metadata": {}, "outputs": [ { @@ -87,7 +87,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 44, "metadata": {}, "outputs": [ { @@ -115,7 +115,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 45, "metadata": {}, "outputs": [ { @@ -171,7 +171,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 46, "metadata": {}, "outputs": [], "source": [ @@ -221,7 +221,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 47, "metadata": {}, "outputs": [ { @@ -230,7 +230,7 @@ "array(5)" ] }, - "execution_count": 21, + "execution_count": 47, "metadata": {}, "output_type": "execute_result" } @@ -252,7 +252,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 48, "metadata": {}, "outputs": [ { @@ -261,7 +261,7 @@ "0" ] }, - "execution_count": 22, + "execution_count": 48, "metadata": {}, "output_type": "execute_result" } @@ -280,7 +280,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 49, "metadata": {}, "outputs": [ { @@ -289,7 +289,7 @@ "()" ] }, - "execution_count": 23, + "execution_count": 49, "metadata": {}, "output_type": "execute_result" } @@ -311,7 +311,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 50, "metadata": {}, "outputs": [ { @@ -320,7 +320,7 @@ "numpy.int64" ] }, - "execution_count": 24, + "execution_count": 50, "metadata": {}, "output_type": "execute_result" } @@ -355,7 +355,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 51, "metadata": {}, "outputs": [ { @@ -364,7 +364,7 @@ "array([1, 2, 3])" ] }, - "execution_count": 25, + "execution_count": 51, "metadata": {}, "output_type": "execute_result" } @@ -384,7 +384,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 52, "metadata": {}, "outputs": [ { @@ -393,7 +393,7 @@ "(3,)" ] }, - "execution_count": 26, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } @@ -411,7 +411,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 53, "metadata": {}, "outputs": [ { @@ -420,7 +420,7 @@ "1" ] }, - "execution_count": 27, + "execution_count": 53, "metadata": {}, "output_type": "execute_result" } @@ -442,7 +442,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 54, "metadata": {}, "outputs": [ { @@ -451,7 +451,7 @@ "2" ] }, - "execution_count": 28, + "execution_count": 54, "metadata": {}, "output_type": "execute_result" } @@ -470,7 +470,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 55, "metadata": {}, "outputs": [ { @@ -479,7 +479,7 @@ "array([2, 3])" ] }, - "execution_count": 29, + "execution_count": 55, "metadata": {}, "output_type": "execute_result" } @@ -511,7 +511,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 56, "metadata": {}, "outputs": [ { @@ -522,7 +522,7 @@ " [7, 8, 9]])" ] }, - "execution_count": 30, + "execution_count": 56, "metadata": {}, "output_type": "execute_result" } @@ -542,7 +542,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 57, "metadata": {}, "outputs": [ { @@ -551,7 +551,7 @@ "2" ] }, - "execution_count": 31, + "execution_count": 57, "metadata": {}, "output_type": "execute_result" } @@ -569,7 +569,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 58, "metadata": {}, "outputs": [ { @@ -578,7 +578,7 @@ "(3, 3)" ] }, - "execution_count": 32, + "execution_count": 58, "metadata": {}, "output_type": "execute_result" } @@ -597,7 +597,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 59, "metadata": {}, "outputs": [ { @@ -606,7 +606,7 @@ "6" ] }, - "execution_count": 33, + "execution_count": 59, "metadata": {}, "output_type": "execute_result" } @@ -627,7 +627,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 60, "metadata": {}, "outputs": [ { @@ -663,7 +663,7 @@ " [17]]]])" ] }, - "execution_count": 34, + "execution_count": 60, "metadata": {}, "output_type": "execute_result" } @@ -683,7 +683,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 61, "metadata": {}, "outputs": [ { @@ -692,7 +692,7 @@ "(3, 3, 2, 1)" ] }, - "execution_count": 35, + "execution_count": 61, "metadata": {}, "output_type": "execute_result" } @@ -703,7 +703,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 62, "metadata": {}, "outputs": [ { @@ -712,7 +712,7 @@ "4" ] }, - "execution_count": 36, + "execution_count": 62, "metadata": {}, "output_type": "execute_result" } @@ -730,7 +730,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 63, "metadata": {}, "outputs": [ { @@ -739,7 +739,7 @@ "16" ] }, - "execution_count": 37, + "execution_count": 63, "metadata": {}, "output_type": "execute_result" } @@ -763,7 +763,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 64, "metadata": {}, "outputs": [ { @@ -772,7 +772,7 @@ "(4,)" ] }, - "execution_count": 38, + "execution_count": 64, "metadata": {}, "output_type": "execute_result" } @@ -792,7 +792,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 65, "metadata": {}, "outputs": [ { @@ -801,7 +801,7 @@ "array([[1, 2, 3, 4]])" ] }, - "execution_count": 39, + "execution_count": 65, "metadata": {}, "output_type": "execute_result" } @@ -821,7 +821,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 66, "metadata": {}, "outputs": [ { @@ -833,7 +833,7 @@ " [4]])" ] }, - "execution_count": 40, + "execution_count": 66, "metadata": {}, "output_type": "execute_result" } @@ -857,7 +857,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 67, "metadata": {}, "outputs": [ { @@ -866,7 +866,7 @@ "array([[1, 2, 3, 4]])" ] }, - "execution_count": 41, + "execution_count": 67, "metadata": {}, "output_type": "execute_result" } @@ -878,7 +878,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 68, "metadata": {}, "outputs": [ { @@ -887,7 +887,7 @@ "(1, 4)" ] }, - "execution_count": 42, + "execution_count": 68, "metadata": {}, "output_type": "execute_result" } @@ -898,7 +898,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 69, "metadata": {}, "outputs": [ { @@ -910,7 +910,7 @@ " [4]])" ] }, - "execution_count": 43, + "execution_count": 69, "metadata": {}, "output_type": "execute_result" } @@ -922,7 +922,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 70, "metadata": {}, "outputs": [ { @@ -931,7 +931,7 @@ "(4, 1)" ] }, - "execution_count": 44, + "execution_count": 70, "metadata": {}, "output_type": "execute_result" } @@ -963,24 +963,27 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 71, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "1.03 µs ± 447 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)\n" + "0.00015544891357421875\n", + "[6, 7, 8, 9, 10]\n" ] } ], "source": [ - "%%timeit\n", + "import time\n", + "start = time.time()\n", "values = [1,2,3,4,5]\n", "for i in range(len(values)):\n", " values[i] += 5\n", - " \n", - "values" + "end = time.time()\n", + "print(end - start) \n", + "print(values)" ] }, { @@ -1007,22 +1010,25 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 72, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "3.44 µs ± 427 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)\n" + "0.00020384788513183594\n", + "[ 6 7 8 9 10]\n" ] } ], "source": [ - "%%timeit\n", + "start = time.time()\n", "values = [1,2,3,4,5]\n", "values = np.array(values) + 5\n", - "values" + "end = time.time()\n", + "print(end - start) \n", + "print(values)" ] }, { @@ -1035,23 +1041,26 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 73, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "3.78 µs ± 381 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)\n" + "0.00024271011352539062\n", + "[ 6 7 8 9 10]\n" ] } ], "source": [ - "%%timeit\n", + "start = time.time()\n", "values = [1,2,3,4,5]\n", "values = np.array(values)\n", "values += 5\n", - "values" + "end = time.time()\n", + "print(end - start) \n", + "print(values)" ] }, { @@ -1064,7 +1073,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 74, "metadata": {}, "outputs": [ { @@ -1073,7 +1082,7 @@ "array([ 5, 10, 15, 20])" ] }, - "execution_count": 48, + "execution_count": 74, "metadata": {}, "output_type": "execute_result" } @@ -1085,7 +1094,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 75, "metadata": {}, "outputs": [ { @@ -1094,7 +1103,7 @@ "array([ 5, 10, 15, 20])" ] }, - "execution_count": 49, + "execution_count": 75, "metadata": {}, "output_type": "execute_result" } @@ -1118,7 +1127,7 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 76, "metadata": {}, "outputs": [ { @@ -1129,7 +1138,7 @@ " [0, 0, 0]])" ] }, - "execution_count": 50, + "execution_count": 76, "metadata": {}, "output_type": "execute_result" } @@ -1160,7 +1169,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 77, "metadata": {}, "outputs": [ { @@ -1170,7 +1179,7 @@ " [5, 7]])" ] }, - "execution_count": 51, + "execution_count": 77, "metadata": {}, "output_type": "execute_result" } @@ -1182,7 +1191,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 78, "metadata": {}, "outputs": [ { @@ -1192,7 +1201,7 @@ " [6, 8]])" ] }, - "execution_count": 52, + "execution_count": 78, "metadata": {}, "output_type": "execute_result" } @@ -1204,7 +1213,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 79, "metadata": {}, "outputs": [ { @@ -1214,7 +1223,7 @@ " [11, 15]])" ] }, - "execution_count": 53, + "execution_count": 79, "metadata": {}, "output_type": "execute_result" } @@ -1232,7 +1241,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 80, "metadata": {}, "outputs": [ { @@ -1242,7 +1251,7 @@ " [5, 7]])" ] }, - "execution_count": 54, + "execution_count": 80, "metadata": {}, "output_type": "execute_result" } @@ -1254,7 +1263,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 81, "metadata": {}, "outputs": [ { @@ -1265,7 +1274,7 @@ " [1, 8, 7]])" ] }, - "execution_count": 55, + "execution_count": 81, "metadata": {}, "output_type": "execute_result" } @@ -1277,7 +1286,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 82, "metadata": {}, "outputs": [ { @@ -1286,7 +1295,7 @@ "(2, 2)" ] }, - "execution_count": 56, + "execution_count": 82, "metadata": {}, "output_type": "execute_result" } @@ -1297,7 +1306,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 83, "metadata": {}, "outputs": [ { @@ -1306,7 +1315,7 @@ "(3, 3)" ] }, - "execution_count": 57, + "execution_count": 83, "metadata": {}, "output_type": "execute_result" } @@ -1317,7 +1326,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 84, "metadata": {}, "outputs": [ { @@ -1327,7 +1336,7 @@ "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m<ipython-input-58-e81e582b6fa9>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0ma\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m<ipython-input-84-e81e582b6fa9>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0ma\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mValueError\u001b[0m: operands could not be broadcast together with shapes (2,2) (3,3) " ] } @@ -1338,9 +1347,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 85, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[1, 2, 3],\n", + " [4, 5, 6]])" + ] + }, + "execution_count": 85, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "m = np.array([[1,2,3],[4,5,6]])\n", "m" @@ -1348,9 +1369,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 86, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0.25, 0.5 , 0.75],\n", + " [1. , 1.25, 1.5 ]])" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "n = m * 0.25\n", "n" @@ -1358,18 +1391,42 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 87, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0.25, 1. , 2.25],\n", + " [4. , 6.25, 9. ]])" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "m * n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 88, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0.25, 1. , 2.25],\n", + " [4. , 6.25, 9. ]])" + ] + }, + "execution_count": 88, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "np.multiply(m, n)" ] @@ -1385,9 +1442,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 89, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[1, 2, 3, 4],\n", + " [5, 6, 7, 8]])" + ] + }, + "execution_count": 89, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "a = np.array([[1,2,3,4],[5,6,7,8]])\n", "a" @@ -1395,18 +1464,43 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 90, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(2, 4)" + ] + }, + "execution_count": 90, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "a.shape" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 91, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 1, 2, 3],\n", + " [ 4, 5, 6],\n", + " [ 7, 8, 9],\n", + " [10, 11, 12]])" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "b = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])\n", "b" @@ -1414,18 +1508,41 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 92, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(4, 3)" + ] + }, + "execution_count": 92, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "b.shape" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 93, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 70, 80, 90],\n", + " [158, 184, 210]])" + ] + }, + "execution_count": 93, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "c = np.matmul(a, b)\n", "c" @@ -1433,9 +1550,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 94, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(2, 3)" + ] + }, + "execution_count": 94, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "c.shape" ] @@ -1449,9 +1577,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 95, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "ValueError", + "evalue": "matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 2 is different from 3)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m<ipython-input-95-af3b88aa2232>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmatmul\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mValueError\u001b[0m: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 2 is different from 3)" + ] + } + ], "source": [ "np.matmul(b, a)" ] @@ -1470,9 +1610,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 96, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[1, 2],\n", + " [3, 4]])" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "a = np.array([[1,2],[3,4]])\n", "a" @@ -1480,27 +1632,63 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 97, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 7, 10],\n", + " [15, 22]])" + ] + }, + "execution_count": 97, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "np.dot(a,a)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 98, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 7, 10],\n", + " [15, 22]])" + ] + }, + "execution_count": 98, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "a.dot(a)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 99, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 7, 10],\n", + " [15, 22]])" + ] + }, + "execution_count": 99, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "np.matmul(a,a)" ] @@ -1527,9 +1715,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 100, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 1, 2, 3, 4],\n", + " [ 5, 6, 7, 8],\n", + " [ 9, 10, 11, 12]])" + ] + }, + "execution_count": 100, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "m = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])\n", "m" @@ -1537,9 +1738,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 101, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 1, 5, 9],\n", + " [ 2, 6, 10],\n", + " [ 3, 7, 11],\n", + " [ 4, 8, 12]])" + ] + }, + "execution_count": 101, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "m.T" ] @@ -1560,9 +1775,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 102, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 1, 5, 9],\n", + " [ 2, 6, 10],\n", + " [ 3, 7, 11],\n", + " [ 4, 200, 12]])" + ] + }, + "execution_count": 102, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "m_t = m.T\n", "m_t[3][1] = 200\n", @@ -1571,9 +1800,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 103, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 1, 2, 3, 4],\n", + " [ 5, 6, 7, 200],\n", + " [ 9, 10, 11, 12]])" + ] + }, + "execution_count": 103, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "m" ] @@ -1606,9 +1848,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 104, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "FileNotFoundError", + "evalue": "[Errno 2] No such file or directory: 'stinkbug4.JPG'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m<ipython-input-104-3d285766ff57>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpyplot\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mimage\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mmpimg\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mimg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmpimg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mimread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'stinkbug4.JPG'\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 7\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mimshow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimg\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.7/site-packages/matplotlib/image.py\u001b[0m in \u001b[0;36mimread\u001b[0;34m(fname, format)\u001b[0m\n\u001b[1;32m 1484\u001b[0m \u001b[0mresponse\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mio\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mBytesIO\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresponse\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1485\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mimread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresponse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mformat\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mext\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1486\u001b[0;31m \u001b[0;32mwith\u001b[0m \u001b[0mimg_open\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfname\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mimage\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 1487\u001b[0m return (_pil_png_to_float_array(image)\n\u001b[1;32m 1488\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimage\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mPIL\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mPngImagePlugin\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mPngImageFile\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/conda/lib/python3.7/site-packages/PIL/Image.py\u001b[0m in \u001b[0;36mopen\u001b[0;34m(fp, mode, formats)\u001b[0m\n\u001b[1;32m 2889\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2890\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2891\u001b[0;31m \u001b[0mfp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbuiltins\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"rb\"\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 2892\u001b[0m \u001b[0mexclusive_fp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2893\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'stinkbug4.JPG'" + ] + } + ], "source": [ "%matplotlib inline \n", "\n", @@ -1630,9 +1886,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 105, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'skimage'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m<ipython-input-105-16d8c7ff678e>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mskimage\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mskimage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtransform\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mrescale\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mimg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrescale\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m.2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mimg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdelete\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimg\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[0;36m20\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'skimage'" + ] + } + ], "source": [ "import skimage\n", "from skimage.transform import rescale\n", @@ -1674,9 +1942,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 106, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[-0.27 0.45 0.64 0.31]] (1, 4)\n", + "[[ 0.02 0.001 -0.03 0.036]\n", + " [ 0.04 -0.003 0.025 0.009]\n", + " [ 0.012 -0.045 0.28 -0.067]] (3, 4)\n", + "Matrix multiplication gives:\n", + " [[-0.01299 0.00664 0.13494]] \n", + "or, equivalently:\n", + " [[-0.01299]\n", + " [ 0.00664]\n", + " [ 0.13494]]\n" + ] + } + ], "source": [ "inputs = np.array([[-0.27, 0.45, 0.64, 0.31]])\n", "print(inputs, inputs.shape)\n", @@ -1698,9 +1983,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 107, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Showing some basic math on arrays\n", + "Max: 4\n", + "Average: 2.0\n", + "Max index: 2\n", + "\n", + "Use numpy to create a [3,3] dimension array with random number\n", + "[[0.55382541 0.36160037 0.68662274]\n", + " [0.35028249 0.09885074 0.38463975]\n", + " [0.10113939 0.74698869 0.02460112]]\n" + ] + } + ], "source": [ "print(\"\\nShowing some basic math on arrays\")\n", "\n", @@ -1737,9 +2039,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 108, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 1\n", + "1 5\n", + "2 9\n", + "3 15\n", + "4 20\n", + "5 25\n", + "6 25\n", + "dtype: int64\n" + ] + } + ], "source": [ "import pandas as pd\n", "from pandas import Series, DataFrame\n", @@ -1759,9 +2076,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 109, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9\n" + ] + } + ], "source": [ "import pandas as pd\n", "from pandas import Series, DataFrame\n", @@ -1780,9 +2105,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 110, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "jan 1\n", + "feb 5\n", + "mar 9\n", + "apr 15\n", + "mai 20\n", + "jun 25\n", + "jul 25\n", + "dtype: int64\n" + ] + } + ], "source": [ "import pandas as pd\n", "from pandas import Series, DataFrame\n", @@ -1804,9 +2144,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 111, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9\n" + ] + } + ], "source": [ "import pandas as pd\n", "from pandas import Series, DataFrame\n", @@ -1826,9 +2174,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 112, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Luzern Basel Zuerich\n", + "jan 1 3 8\n", + "feb 5 4 6\n", + "mar 9 12 10\n", + "apr 15 16 17\n", + "mai 20 18 23\n", + "jun 25 23 22\n", + "jul 25 32 24\n" + ] + } + ], "source": [ "import pandas as pd\n", "from pandas import Series, DataFrame\n", @@ -1855,9 +2218,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 113, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Index(['Luzern', 'Basel', 'Zuerich'], dtype='object')\n" + ] + } + ], "source": [ "import pandas as pd\n", "from pandas import Series, DataFrame\n", @@ -1883,9 +2254,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 114, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "jan 1\n", + "feb 5\n", + "mar 9\n", + "apr 15\n", + "mai 20\n", + "jun 25\n", + "jul 25\n", + "Name: Luzern, dtype: int64\n" + ] + } + ], "source": [ "import pandas as pd\n", "from pandas import Series, DataFrame\n", @@ -1909,9 +2295,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 115, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "jan 1\n", + "feb 5\n", + "mar 9\n", + "apr 15\n", + "mai 20\n", + "jun 25\n", + "jul 25\n", + "Name: Luzern, dtype: int64\n" + ] + } + ], "source": [ "import pandas as pd\n", "from pandas import Series, DataFrame\n", @@ -1935,9 +2336,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 116, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mai 20\n", + "jun 25\n", + "jul 25\n", + "Name: Luzern, dtype: int64\n" + ] + } + ], "source": [ "import pandas as pd\n", "from pandas import Series, DataFrame\n", @@ -1961,9 +2373,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 117, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Basel Zuerich\n", + "mai 18 23\n", + "jul 32 24\n" + ] + } + ], "source": [ "import pandas as pd\n", "from pandas import Series, DataFrame\n", @@ -1987,9 +2409,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 118, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "23\n" + ] + } + ], "source": [ "import pandas as pd\n", "from pandas import Series, DataFrame\n", @@ -2024,9 +2454,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 119, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Index(['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul'], dtype='object')\n" + ] + } + ], "source": [ "import pandas as pd\n", "from pandas import Series, DataFrame\n", @@ -2046,9 +2484,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 120, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "14.285714285714286\n" + ] + } + ], "source": [ "import pandas as pd\n", "from pandas import Series, DataFrame\n", @@ -2075,9 +2521,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 121, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "jan 4.000000\n", + "feb 5.000000\n", + "mar 10.333333\n", + "apr 16.000000\n", + "mai 20.333333\n", + "jun 23.333333\n", + "jul 27.000000\n", + "dtype: float64\n" + ] + } + ], "source": [ "import pandas as pd\n", "from pandas import Series, DataFrame\n", @@ -2101,9 +2562,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 122, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "jan 1\n", + "feb 4\n", + "mar 9\n", + "apr 15\n", + "mai 18\n", + "jun 22\n", + "jul 24\n", + "dtype: int64\n" + ] + } + ], "source": [ "import pandas as pd\n", "from pandas import Series, DataFrame\n", diff --git a/notebooks/Preliminaries_Numpy_Pandas/Solution - Basics Numpy.ipynb b/notebooks/Preliminaries_Numpy_Pandas/Solution - Basics Numpy.ipynb index c3aa330..eb5eeee 100644 --- a/notebooks/Preliminaries_Numpy_Pandas/Solution - Basics Numpy.ipynb +++ b/notebooks/Preliminaries_Numpy_Pandas/Solution - Basics Numpy.ipynb @@ -1481,6 +1481,13 @@ "avg_kg = t_kg.mean()\n", "print(\"\\nAverage Kilometer per liter is: \\n{}\".format(round(avg_kml, 2)), \"\\nAverage weight in kilogram is: \\n{}\".format(round(avg_kg,2)))" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { -- GitLab