diff --git "a/Week1_\353\263\265\354\212\265\352\263\274\354\240\234_\354\243\274\354\247\200\354\233\220.ipynb" "b/Week1_\353\263\265\354\212\265\352\263\274\354\240\234_\354\243\274\354\247\200\354\233\220.ipynb" new file mode 100644 index 0000000..50c2cb1 --- /dev/null +++ "b/Week1_\353\263\265\354\212\265\352\263\274\354\240\234_\354\243\274\354\247\200\354\233\220.ipynb" @@ -0,0 +1,2467 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "jkGNNJY3S65Z" + }, + "source": [ + "# **1주차 복습과제**\n", + "- 1주차 복습과제는 **넘파이/판다스 연습문제**입니다.\n", + "- 코드 작성하시고, 출력 결과까지 나오도록 실행 부탁드립니다.\n", + " - 제출 시 파일명 본인 이름으로 변경해 주세요. ex) Week1_복습과제_OOO\n", + "- 교재에서 다루지 않은 메소드도 다수 포함되어 있지만 구글링이나 챗지피티 등을 활용해서라도 풀어주세요! 한 번씩 사용해 보면 좋을 것 같아 어려워도 문제에 포함했습니다 🤗" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "WedDHAHPJPIA" + }, + "source": [ + "## **넘파이**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7Ue21e0fKFRI" + }, + "source": [ + "### 1. Import the numpy package under the name `np`." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "id": "60ACXMoSGe0H" + }, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FnHQOUj-KNiT" + }, + "source": [ + "### 2. Print the numpy version and the configuration.\n", + "\n", + "(hint: `np.__version__`, `np.show_config`)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "id": "FgXzYXoRS-V7" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.5.3\n", + "{\n", + " \"Compilers\": {\n", + " \"c\": {\n", + " \"name\": \"msvc\",\n", + " \"linker\": \"link\",\n", + " \"version\": \"19.44.35228\",\n", + " \"commands\": \"cl\"\n", + " },\n", + " \"cython\": {\n", + " \"name\": \"cython\",\n", + " \"linker\": \"cython\",\n", + " \"version\": \"3.3.0\",\n", + " \"commands\": \"cython\"\n", + " },\n", + " \"c++\": {\n", + " \"name\": \"msvc\",\n", + " \"linker\": \"link\",\n", + " \"version\": \"19.44.35228\",\n", + " \"commands\": \"cl\"\n", + " }\n", + " },\n", + " \"Machine Information\": {\n", + " \"host\": {\n", + " \"cpu\": \"x86_64\",\n", + " \"family\": \"x86_64\",\n", + " \"endian\": \"little\",\n", + " \"system\": \"windows\"\n", + " },\n", + " \"build\": {\n", + " \"cpu\": \"x86_64\",\n", + " \"family\": \"x86_64\",\n", + " \"endian\": \"little\",\n", + " \"system\": \"windows\"\n", + " }\n", + " },\n", + " \"Build Dependencies\": {\n", + " \"blas\": {\n", + " \"name\": \"scipy-openblas\",\n", + " \"found\": true,\n", + " \"version\": \"0.3.34.106.0\",\n", + " \"detection method\": \"pkgconfig\",\n", + " \"include directory\": \"C:/Users/runneradmin/AppData/Local/Temp/cibw-run-sp8l_b7i/cp314-win_amd64/build/venv/Lib/site-packages/scipy_openblas64/include\",\n", + " \"lib directory\": \"C:/Users/runneradmin/AppData/Local/Temp/cibw-run-sp8l_b7i/cp314-win_amd64/build/venv/Lib/site-packages/scipy_openblas64/lib\",\n", + " \"openblas configuration\": \"OpenBLAS 0.3.34.106.0 USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell MAX_THREADS=24\",\n", + " \"pc file directory\": \"D:/a/numpy-release/numpy-release/.openblas\"\n", + " },\n", + " \"lapack\": {\n", + " \"name\": \"scipy-openblas\",\n", + " \"found\": true,\n", + " \"version\": \"0.3.34.106.0\",\n", + " \"detection method\": \"pkgconfig\",\n", + " \"include directory\": \"C:/Users/runneradmin/AppData/Local/Temp/cibw-run-sp8l_b7i/cp314-win_amd64/build/venv/Lib/site-packages/scipy_openblas64/include\",\n", + " \"lib directory\": \"C:/Users/runneradmin/AppData/Local/Temp/cibw-run-sp8l_b7i/cp314-win_amd64/build/venv/Lib/site-packages/scipy_openblas64/lib\",\n", + " \"openblas configuration\": \"OpenBLAS 0.3.34.106.0 USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell MAX_THREADS=24\",\n", + " \"pc file directory\": \"D:/a/numpy-release/numpy-release/.openblas\"\n", + " }\n", + " },\n", + " \"Python Information\": {\n", + " \"path\": \"C:\\\\Users\\\\runneradmin\\\\AppData\\\\Local\\\\Temp\\\\build-env-mk5sjh7q\\\\Scripts\\\\python.exe\",\n", + " \"version\": \"3.14\"\n", + " },\n", + " \"SIMD Extensions\": {\n", + " \"baseline\": [\n", + " \"X86_V2\"\n", + " ],\n", + " \"found\": [\n", + " \"X86_V3\"\n", + " ]\n", + " }\n", + "}\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\0510n\\AppData\\Local\\Programs\\Python\\Python314\\Lib\\site-packages\\numpy\\__config__.py:155: UserWarning: Install `pyyaml` for better output\n", + " warnings.warn(\"Install `pyyaml` for better output\", stacklevel=1)\n" + ] + } + ], + "source": [ + "print(np.__version__)\n", + "np.show_config()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0lB5hLlTKb1Z" + }, + "source": [ + "### 3. Create a null vector of size 10.\n", + "\n", + "#### ✅ 출력 예시\n", + "\n", + "\n", + "```\n", + "[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n", + "```\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "id": "eK4DTjPwS_zU" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n" + ] + } + ], + "source": [ + "print(np.zeros((10)))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7lSSfwh6Kj5v" + }, + "source": [ + "### 4. Create a null vector of size 10 but the fifth value which is 1.\n", + "\n", + "#### ✅출력 예시\n", + "\n", + "\n", + "```\n", + "[0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "id": "ofohgzsTTBs6" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n" + ] + } + ], + "source": [ + "a=np.zeros((10))\n", + "a[4]=1\n", + "print(a)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-NeqvmpLKkdY" + }, + "source": [ + "### 5. Create a vector with values ranging from 10 to 49.\n", + "\n", + "#### ✅출력 예시\n", + "\n", + "\n", + "```\n", + "[10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33\n", + " 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49]\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "id": "oQ1Mo5W9TC0P" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33\n", + " 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49]\n" + ] + } + ], + "source": [ + "print(np.arange(10, 50))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "B1dFQzRNLN23" + }, + "source": [ + "### 6. Reverse a vector (first element becomes last).\n", + "\n", + "#### ✅출력 예시\n", + "\n", + "\n", + "```\n", + "[9 8 7 6 5 4 3 2 1 0]\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "id": "wrpNYd4jTDsx" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[9 8 7 6 5 4 3 2 1 0]\n" + ] + } + ], + "source": [ + "a=np.arange(10)[::-1]\n", + "print(a)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "doUDUe_NLOhe" + }, + "source": [ + "### 7. Create a 3x3 matrix with values ranging from 0 to 8.\n", + "\n", + "#### ✅출력 예시\n", + "\n", + "\n", + "```\n", + "[[0 1 2]\n", + " [3 4 5]\n", + " [6 7 8]]\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "id": "4g8WetkATEnw" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0 1 2]\n", + " [3 4 5]\n", + " [6 7 8]]\n" + ] + } + ], + "source": [ + "print(np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "s-MtSq2RLzJx" + }, + "source": [ + "### 8. Find indices of non-zero elements from [1,2,0,0,4,0].\n", + "\n", + "#### ✅출력 예시\n", + "\n", + "\n", + "```\n", + "(array([0, 1, 4]),)\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "id": "jw9iUP7sTL7D" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(array([0, 1, 4]),)\n" + ] + } + ], + "source": [ + "a=np.array([1,2,0,0,4,0])\n", + "print(np.nonzero(a))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ihRWHFUxL6ak" + }, + "source": [ + "### 9. Create a 3x3 identity matrix.\n", + "\n", + "(hint: `np.eye`)\n", + "\n", + "#### ✅출력 예시\n", + "\n", + "\n", + "```\n", + "[[1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]]\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "id": "fFzDGJT5TNh7" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]]\n" + ] + } + ], + "source": [ + "print(np.eye(3))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FvkGsY8eLPCG" + }, + "source": [ + "### 10. Create a 3x3x3 array with random values.\n", + "\n", + "#### ✅출력 예시\n", + "\n", + "\n", + "```\n", + "[[[0.30742852 0.26458726 0.85474383]\n", + " [0.80234531 0.76268902 0.91286677]\n", + " [0.8804109 0.51011378 0.82103555]]\n", + "\n", + " [[0.403753 0.83120234 0.15202655]\n", + " [0.75782685 0.0732058 0.48148689]\n", + " [0.2089428 0.44968622 0.88134184]]\n", + "\n", + " [[0.52251191 0.10738374 0.86279648]\n", + " [0.26203911 0.42157754 0.68856833]\n", + " [0.58133626 0.31059127 0.71354172]]]\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "id": "084SAfnwTPpt" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[[0.90142939 0.18419336 0.55564273]\n", + " [0.69474673 0.76521314 0.12256749]\n", + " [0.95716661 0.24377274 0.32727178]]\n", + "\n", + " [[0.55261516 0.36244368 0.47791703]\n", + " [0.4410188 0.71107211 0.51482288]\n", + " [0.38049234 0.11862388 0.46213797]]\n", + "\n", + " [[0.33471108 0.7778683 0.58434581]\n", + " [0.53614475 0.08788091 0.99796377]\n", + " [0.56994493 0.70336269 0.02608188]]]\n" + ] + } + ], + "source": [ + "print(np.random.random((3, 3, 3)))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4-VynNt5MVYY" + }, + "source": [ + "### 11. Create a 10x10 array with random values and find the minimum and maximum values.\n", + "\n", + "#### ✅출력 예시\n", + "\n", + "\n", + "```\n", + "0.018360924693465508 0.9990506368595156\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "id": "W14PP5x6TRh6" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0167230756404797 0.9867858022960103\n" + ] + } + ], + "source": [ + "a=np.random.random((10, 10))\n", + "print(np.min(a), np.max(a))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cQKXmfJBMVQ_" + }, + "source": [ + "### 12. Create a random vector of size 30 and find the mean value.\n", + "\n", + "#### ✅출력 예시\n", + "\n", + "\n", + "```\n", + "0.46249036320403636\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "id": "FS6ggiNJTStp" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.6022365831597484\n" + ] + } + ], + "source": [ + "a=np.random.rand(30)\n", + "print(np.mean(a))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QZ4h-AddMVJb" + }, + "source": [ + "### 13. Create a 2d array with 1 on the border and 0 inside. (size: 10x10)\n", + "\n", + "#### ✅출력 예시\n", + "\n", + "\n", + "```\n", + "[[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", + " [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + " [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + " [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + " [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + " [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + " [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + " [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + " [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]]\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "id": "pKEi08edTUMt" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", + " [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + " [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + " [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + " [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + " [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + " [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + " [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + " [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]]\n" + ] + } + ], + "source": [ + "a=np.ones((10,10))\n", + "a[1:-1, 1:-1]=0\n", + "print(a) \n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "BIwX-BiSMUz_" + }, + "source": [ + "### 14. How to add a border (filled with 0's) around an existing array?\n", + "\n", + "(hint: 인덱싱 사용)\n", + "\n", + "#### ✅출력 예시\n", + "\n", + "\n", + "```\n", + "# before\n", + "[[1. 1. 1. 1. 1.]\n", + " [1. 1. 1. 1. 1.]\n", + " [1. 1. 1. 1. 1.]\n", + " [1. 1. 1. 1. 1.]\n", + " [1. 1. 1. 1. 1.]]\n", + "\n", + " # after\n", + " [[0. 0. 0. 0. 0.]\n", + " [0. 1. 1. 1. 0.]\n", + " [0. 1. 1. 1. 0.]\n", + " [0. 1. 1. 1. 0.]\n", + " [0. 0. 0. 0. 0.]]\n", + "\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "id": "A4M1huiqTWXy" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[1. 1. 1. 1. 1.]\n", + " [1. 1. 1. 1. 1.]\n", + " [1. 1. 1. 1. 1.]\n", + " [1. 1. 1. 1. 1.]\n", + " [1. 1. 1. 1. 1.]]\n" + ] + } + ], + "source": [ + "#before\n", + "a=np.ones((5,5))\n", + "print(a) " + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "id": "idWhL4zzTWRO" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0. 0. 0. 0. 0.]\n", + " [0. 1. 1. 1. 0.]\n", + " [0. 1. 1. 1. 0.]\n", + " [0. 1. 1. 1. 0.]\n", + " [0. 0. 0. 0. 0.]]\n" + ] + } + ], + "source": [ + "#after\n", + "a[[0, 4], :]=0\n", + "a[1:4, [0,-1]]=0\n", + "print(a)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tggOHEUGM9PK" + }, + "source": [ + "### 15. What is the result of the following expression?\n", + "\n", + "(실행 후, 결과에 대한 주석 작성해주세요. ex. 출력 결과에 대한 이유)\n", + "\n", + "```python\n", + "0 * np.nan\n", + "np.nan == np.nan\n", + "np.inf > np.nan\n", + "np.nan - np.nan\n", + "np.nan in set([np.nan])\n", + "0.3 == 3 * 0.1\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "RmjjLx8_TYNp" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "nan" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "0 * np.nan #nan은 결측값이기 때문에 결과를 확정할 수 없어 nan이 된다. \n", + "np.nan == np.nan #nan은 결측값, 즉 알 수 없는 값이기 때문에 어떤 값과 비교해도 같다고 인정하지 않아 False\n", + "np.inf > np.nan #nan은 알 수 없는 값이라서 비교하면 False \n", + "np.nan - np.nan #nan이 포함된 계산. 결측값에서 결측값을 빼면 정확한 값을 알 수 없어서 False \n", + "np.nan in set([np.nan]) #set 내에 같은 객체를 찾을 수 있어서 True\n", + "0.3 == 3 * 0.1 #부동소수점 오차 때문에 False" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "28iOVtXXM8gA" + }, + "source": [ + "### 16. Normalize a 5x5 random matrix.\n", + "\n", + "(hint: (x - mean) / std)\n", + "\n", + "#### ✅출력 예시\n", + "\n", + "\n", + "```\n", + "[[-1.4765971 0.9582795 -1.29910242 1.0250981 -0.79801651]\n", + " [ 0.57945383 -1.28559078 0.02733238 0.99675052 1.2702088 ]\n", + " [-0.08513084 -1.4686812 -0.78813593 -0.34559303 -1.15052328]\n", + " [ 0.98183813 -1.41255344 0.37190169 1.05697419 -0.02668639]\n", + " [-1.14466851 0.98911205 1.14499256 0.69454882 1.18478886]]\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "id": "0L0IE4qOTZW4" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[-0.64811893 0.90094298 1.02175916 1.3937618 -0.48112958]\n", + " [ 1.00220269 -1.53188699 0.91252964 -0.04139479 -1.21054705]\n", + " [ 0.63610963 1.35535821 1.01831974 -1.17548198 -0.55316725]\n", + " [-1.66334574 1.5395319 0.27475804 -0.36764009 0.15457769]\n", + " [-0.64009424 1.05572799 -1.26764723 -0.91481585 -0.77030975]]\n" + ] + } + ], + "source": [ + "a=np.random.random((5, 5))\n", + "print((a-np.mean(a))/np.std(a)) " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "asOmp4b5M8dx" + }, + "source": [ + "### 17. Multiply a 5x3 matrix by a 3x2 matrix. (real matrix product)\n", + "\n", + "#### ✅출력 예시\n", + "\n", + "\n", + "```\n", + "[[3. 3.]\n", + " [3. 3.]\n", + " [3. 3.]\n", + " [3. 3.]\n", + " [3. 3.]]\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "id": "01PxOWW5Te7I" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[3. 3.]\n", + " [3. 3.]\n", + " [3. 3.]\n", + " [3. 3.]\n", + " [3. 3.]]\n" + ] + } + ], + "source": [ + "A=np.ones((5,3))\n", + "B=np.ones((3,2))\n", + "print(np.dot(A, B))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "H9zVpsYuM8aR" + }, + "source": [ + "### 18. What are the result of the following expressions?\n", + "\n", + "(실행 후, 결과에 대한 주석 작성해주세요. ex. 출력 결과에 대한 이유)\n", + "\n", + "```python\n", + "np.array(0) / np.array(0)\n", + "np.array(0) // np.array(0)\n", + "np.array([np.nan]).astype(int).astype(float)\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "id": "SLP--cFwTh10" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\0510n\\AppData\\Local\\Temp\\ipykernel_18616\\3880469154.py:1: RuntimeWarning: invalid value encountered in divide\n", + " np.array(0) / np.array(0) # nan: 0을 0으로 나눌 수 없어 NaN이 됨\n", + "C:\\Users\\0510n\\AppData\\Local\\Temp\\ipykernel_18616\\3880469154.py:2: RuntimeWarning: divide by zero encountered in floor_divide\n", + " np.array(0) // np.array(0) # 0: 0//0은 정의되지 않지만 numpy의 정수 연산에서 0으로 반환됨\n", + "C:\\Users\\0510n\\AppData\\Local\\Temp\\ipykernel_18616\\3880469154.py:3: RuntimeWarning: invalid value encountered in cast\n", + " np.array([np.nan]).astype(int).astype(float) # [-9.22337204e+18]: NaN을 int64로 변환할 때 int64의 최솟값으로 처리된 후 float로 변환\n" + ] + }, + { + "data": { + "text/plain": [ + "array([-9.22337204e+18])" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.array(0) / np.array(0) # nan: 0을 0으로 나눌 수 없어 NaN이 됨\n", + "np.array(0) // np.array(0) # 0: 0//0은 정의되지 않지만 numpy의 정수 연산에서 0으로 반환됨\n", + "np.array([np.nan]).astype(int).astype(float) # [-9.22337204e+18]: NaN을 int64로 변환할 때 int64의 최솟값으로 처리된 후 float로 변환" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "fbi_T8LIO3yc" + }, + "source": [ + "### 19. Create a 5x5 matrix with row values ranging from 0 to 4.\n", + "\n", + "#### ✅ 출력 예시\n", + "\n", + "```\n", + "[[0. 1. 2. 3. 4.]\n", + " [0. 1. 2. 3. 4.]\n", + " [0. 1. 2. 3. 4.]\n", + " [0. 1. 2. 3. 4.]\n", + " [0. 1. 2. 3. 4.]]\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "id": "XHj8J0pLTjrf" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0 1 2 3 4]\n", + " [0 1 2 3 4]\n", + " [0 1 2 3 4]\n", + " [0 1 2 3 4]\n", + " [0 1 2 3 4]]\n" + ] + } + ], + "source": [ + "a=np.arange(5)\n", + "a=np.tile(a,(5,1))\n", + "print(a)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cNRIzEzEO_Ft" + }, + "source": [ + "### 20. Create a random vector of size 10 and sort it.\n", + "\n", + "#### ✅출력 예시\n", + "\n", + "\n", + "```\n", + "[0.11443045 0.16715169 0.32515597 0.38374227 0.48327044 0.78728921\n", + " 0.80523192 0.85915686 0.96930939 0.99586525]\n", + "\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "id": "a3lZxnx-Tngw" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0.01191224 0.01311823 0.25353838 0.29853986 0.32467532 0.35452973\n", + " 0.50015559 0.56368914 0.60511237 0.61477766]\n" + ] + } + ], + "source": [ + "a=np.random.rand(10)\n", + "print(np.sort(a))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "fkX-tY1oKDq5" + }, + "source": [ + "## **판다스**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yl7zlBgszyCS" + }, + "source": [ + "\n", + "### 1. Import pandas under the alias `pd`." + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": { + "id": "ZiANPeHhz00W" + }, + "outputs": [], + "source": [ + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2Hk3SuquzyCU" + }, + "source": [ + "### 2. Print the version of pandas that has been imported." + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": { + "id": "i2NtsBbjz1x2" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.0.5\n" + ] + } + ], + "source": [ + "print(pd.__version__)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "oOTRFQtFzyCV" + }, + "source": [ + "## 3~20번 문제는 아래 데이터프레임으로 진행됩니다.\n", + "\n", + "Consider the following Python dictionary `data` and Python list `labels`:\n", + "\n", + "``` python\n", + "data = {'animal': ['cat', 'cat', 'snake', 'dog', 'dog', 'cat', 'snake', 'cat', 'dog', 'dog'],\n", + " 'age': [2.5, 3, 0.5, np.nan, 5, 2, 4.5, np.nan, 7, 3],\n", + " 'visits': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],\n", + " 'priority': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no', 'no']}\n", + "\n", + "labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']\n", + "```\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "m_8US0jJzyCW" + }, + "source": [ + "### 3. Create a DataFrame `df` from this dictionary `data` which has the index `labels`.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": { + "id": "7CbS_gtmzyCW" + }, + "outputs": [], + "source": [ + "# 문제 풀이 전 numpy 임포트\n", + "import numpy as np\n", + "data = {'animal': ['cat', 'cat', 'snake', 'dog', 'dog', 'cat', 'snake', 'cat', 'dog', 'dog'],\n", + " 'age': [2.5, 3, 0.5, np.nan, 5, 2, 4.5, np.nan, 7, 3],\n", + " 'visits': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],\n", + " 'priority': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no', 'no']}\n", + "\n", + "labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']\n", + "df = pd.DataFrame(data, index=labels)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "f2shsFGyzyCW" + }, + "source": [ + "### 4. Display a summary of the basic information about this DataFrame and its data. \n", + "(hint: there is a single method that can be called on the DataFrame)" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": { + "id": "BWZpEuGtz7ky" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Index: 10 entries, a to j\n", + "Data columns (total 4 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 animal 10 non-null str \n", + " 1 age 8 non-null float64\n", + " 2 visits 10 non-null int64 \n", + " 3 priority 10 non-null str \n", + "dtypes: float64(1), int64(1), str(2)\n", + "memory usage: 400.0+ bytes\n", + "None\n" + ] + } + ], + "source": [ + "print(df.info())" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "AfbkaEOyzyCX" + }, + "source": [ + "### 5. Display a summary of the basic statistics about data of this DataFrame. \n", + "(hint: there is a single method that can be called on the DataFrame)" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "id": "wzzc100Oz8c3" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " age visits\n", + "count 8.000000 10.000000\n", + "mean 3.437500 1.900000\n", + "std 2.007797 0.875595\n", + "min 0.500000 1.000000\n", + "25% 2.375000 1.000000\n", + "50% 3.000000 2.000000\n", + "75% 4.625000 2.750000\n", + "max 7.000000 3.000000\n" + ] + } + ], + "source": [ + "print(df.describe())" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "XJ59aPcrzyCX" + }, + "source": [ + "### 6. Return the first 3 rows of the DataFrame `df`." + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "id": "vZro7sh9z_rY" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
animalagevisitspriority
acat2.51yes
bcat3.03yes
csnake0.52no
\n", + "
" + ], + "text/plain": [ + " animal age visits priority\n", + "a cat 2.5 1 yes\n", + "b cat 3.0 3 yes\n", + "c snake 0.5 2 no" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.iloc[0:3, :]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "KBVp0_3ZzyCY" + }, + "source": [ + "### 7. Select just the 'animal' and 'age' columns from the DataFrame `df`." + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "id": "pC6sH-1F0AJo" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
animalage
acat2.5
bcat3.0
csnake0.5
ddogNaN
edog5.0
fcat2.0
gsnake4.5
hcatNaN
idog7.0
jdog3.0
\n", + "
" + ], + "text/plain": [ + " animal age\n", + "a cat 2.5\n", + "b cat 3.0\n", + "c snake 0.5\n", + "d dog NaN\n", + "e dog 5.0\n", + "f cat 2.0\n", + "g snake 4.5\n", + "h cat NaN\n", + "i dog 7.0\n", + "j dog 3.0" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[['animal', 'age']]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "a1giftRYzyCY" + }, + "source": [ + "### 8. Select the data in rows `[3, 4, 8]` **and** in columns `['animal', 'age']`." + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "id": "tkSynFGH0BLD" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
animalage
ddogNaN
edog5.0
idog7.0
\n", + "
" + ], + "text/plain": [ + " animal age\n", + "d dog NaN\n", + "e dog 5.0\n", + "i dog 7.0" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.iloc[[3,4,8], [0,1]]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "67sYTLBqzyCY" + }, + "source": [ + "### 9. Select only the rows where the number of visits is greater than 3." + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": { + "id": "d_G0WeMG0Dgd" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
animalagevisitspriority
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [animal, age, visits, priority]\n", + "Index: []" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[df['visits']>3]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FXX4YRWgzyCY" + }, + "source": [ + "### 10. Select the rows where the age is missing, i.e. it is `NaN`." + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": { + "id": "KaV4Ypkj0Ea2" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
animalagevisitspriority
ddogNaN3yes
hcatNaN1yes
\n", + "
" + ], + "text/plain": [ + " animal age visits priority\n", + "d dog NaN 3 yes\n", + "h cat NaN 1 yes" + ] + }, + "execution_count": 72, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[df['age'].isna()]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kMH5n-UBzyCZ" + }, + "source": [ + "### 11. Select the rows where the animal is a cat *and* the age is less than 3." + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": { + "id": "8sCDh9Ez0FND" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
animalagevisitspriority
acat2.51yes
fcat2.03no
\n", + "
" + ], + "text/plain": [ + " animal age visits priority\n", + "a cat 2.5 1 yes\n", + "f cat 2.0 3 no" + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[(df['animal']=='cat') & (df['age'] <3)]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "62Y0JsYazyCZ" + }, + "source": [ + "### 12. Select the rows the age is between 2 and 4 (inclusive). \n" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": { + "id": "svjvRtgZ0G76" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
animalagevisitspriority
acat2.51yes
bcat3.03yes
fcat2.03no
jdog3.01no
\n", + "
" + ], + "text/plain": [ + " animal age visits priority\n", + "a cat 2.5 1 yes\n", + "b cat 3.0 3 yes\n", + "f cat 2.0 3 no\n", + "j dog 3.0 1 no" + ] + }, + "execution_count": 75, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[(df['age']>=2) & (df['age']<=4)]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4lIGMIkPzyCZ" + }, + "source": [ + "### 13. Change the age in row 'f' to 1.5." + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": { + "id": "h4U4A6Ai0Hvk" + }, + "outputs": [], + "source": [ + "df.loc['f', ['age']] =1.5 " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FZzPr9ObzyCZ" + }, + "source": [ + "### 14. Calculate the sum of all visits in `df` (i.e. the total number of visits)." + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": { + "id": "FXLAUqR40I6C" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "19\n" + ] + } + ], + "source": [ + "print(df['visits'].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "PO0xpJ_OzyCa" + }, + "source": [ + "### 15. Calculate the mean age for each different animal in `df`." + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": { + "id": "L63WRx_20Kta" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "animal\n", + "cat 2.333333\n", + "dog 5.000000\n", + "snake 2.500000\n", + "Name: age, dtype: float64" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#animal 별로 평균 age 계산 \n", + "df.groupby(by=['animal'])['age'].mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YfVdzQXIzyCa" + }, + "source": [ + "### 16. Append a new row 'k' to `df` with your choice of values for each column. Then delete that row to return the original DataFrame." + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": { + "id": "Per12Ekp0Mc0" + }, + "outputs": [], + "source": [ + "df.loc['k', :]= ['cat', 2.0, 3, 'yes']\n", + "df.drop(axis=0, index='k', inplace=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tDkk_tHszyCa" + }, + "source": [ + "### 17. Count the number of each type of animal in `df`." + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": { + "id": "v21izXST0NTR" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "animal\n", + "cat 4\n", + "dog 4\n", + "snake 2\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 92, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['animal'].value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cwz4s5RYzyCa" + }, + "source": [ + "### 18. Sort `df` first by the values in the 'age' in *decending* order, then by the value in the 'visits' column in *ascending* order (so row `i` should be first, and row `d` should be last).\n", + "#### ✅출력 예시" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YILpLKeqzyCa" + }, + "source": [ + " index |animal\t| age\t|visits|\tpriority\n", + "---|---|---|---|---\n", + "i|\tdog|\t7.0|\t2|\tno\n", + "e|\tdog|\t5.0|\t2|\tno\n", + "g|\tsnake|\t4.5|\t1|\tno\n", + "j|\tdog|\t3.0|\t1|\tno\n", + "b|\tcat|\t3.0|\t3|\tyes\n", + "a|\tcat|\t2.5|\t1|\tyes\n", + "f|\tcat|\t1.5|\t3|\tno\n", + "c|\tsnake|\t0.5|\t2|\tno\n", + "h|\tcat|\tNaN|\t1|\tyes\n", + "d|\tdog|\tNaN|\t3|\tyes" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": { + "id": "2l6Pb7T10Qpi" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
animalagevisitspriority
idog7.02.0no
edog5.02.0no
gsnake4.51.0no
jdog3.01.0no
bcat3.03.0yes
acat2.51.0yes
fcat1.53.0no
csnake0.52.0no
hcatNaN1.0yes
ddogNaN3.0yes
\n", + "
" + ], + "text/plain": [ + " animal age visits priority\n", + "i dog 7.0 2.0 no\n", + "e dog 5.0 2.0 no\n", + "g snake 4.5 1.0 no\n", + "j dog 3.0 1.0 no\n", + "b cat 3.0 3.0 yes\n", + "a cat 2.5 1.0 yes\n", + "f cat 1.5 3.0 no\n", + "c snake 0.5 2.0 no\n", + "h cat NaN 1.0 yes\n", + "d dog NaN 3.0 yes" + ] + }, + "execution_count": 97, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.sort_values(by=['age', 'visits'], ascending=[False,True], inplace=True)\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6hfE99qHzyCb" + }, + "source": [ + "### 19. The 'priority' column contains the values 'yes' and 'no'. Replace this column with a column of boolean values: 'yes' should be `True` and 'no' should be `False`. \n", + "(hint: `map`)" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": { + "id": "lPLmBRUP0SnR" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
animalagevisitspriority
idog7.02.0False
edog5.02.0False
gsnake4.51.0False
jdog3.01.0False
bcat3.03.0False
acat2.51.0False
fcat1.53.0False
csnake0.52.0False
hcatNaN1.0False
ddogNaN3.0False
\n", + "
" + ], + "text/plain": [ + " animal age visits priority\n", + "i dog 7.0 2.0 False\n", + "e dog 5.0 2.0 False\n", + "g snake 4.5 1.0 False\n", + "j dog 3.0 1.0 False\n", + "b cat 3.0 3.0 False\n", + "a cat 2.5 1.0 False\n", + "f cat 1.5 3.0 False\n", + "c snake 0.5 2.0 False\n", + "h cat NaN 1.0 False\n", + "d dog NaN 3.0 False" + ] + }, + "execution_count": 101, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['priority'] = df['priority'].map(lambda x: True if x == 'yes' else False)\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ycaIJncEzyCb" + }, + "source": [ + "### 20. In the 'animal' column, change the 'snake' entries to 'python'. " + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": { + "id": "MZelDUlE0Wag" + }, + "outputs": [], + "source": [ + "df['animal']=df['animal'].apply(lambda x: 'python' if x=='snake' else x)" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": { + "id": "uYFF5Jew0Xz7" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
animalagevisitspriority
idog7.02.0False
edog5.02.0False
gpython4.51.0False
jdog3.01.0False
bcat3.03.0False
acat2.51.0False
fcat1.53.0False
cpython0.52.0False
hcatNaN1.0False
ddogNaN3.0False
\n", + "
" + ], + "text/plain": [ + " animal age visits priority\n", + "i dog 7.0 2.0 False\n", + "e dog 5.0 2.0 False\n", + "g python 4.5 1.0 False\n", + "j dog 3.0 1.0 False\n", + "b cat 3.0 3.0 False\n", + "a cat 2.5 1.0 False\n", + "f cat 1.5 3.0 False\n", + "c python 0.5 2.0 False\n", + "h cat NaN 1.0 False\n", + "d dog NaN 3.0 False" + ] + }, + "execution_count": 103, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# 확인용 df 출력 셀\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "5YmjKvYizyCb" + }, + "source": [ + "### 21. Given a DataFrame of random numeric values:\n", + "```python\n", + "df = pd.DataFrame(np.random.random(size=(5, 3))) # this is a 5x3 DataFrame of float values\n", + "```\n", + "\n", + "how do you subtract the row mean from each element in the row?" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": { + "id": "EeAkDWv40e9J" + }, + "outputs": [], + "source": [ + "# 랜덤 시드 고정\n", + "np.random.seed(2025)\n", + "\n", + "df = pd.DataFrame(np.random.random(size=(5, 3)))\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": { + "id": "Z24qNGpgKEVi" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
012
0-0.5164940.2358700.280624
10.0817680.024435-0.106204
2-0.047373-0.2121240.259497
30.115235-0.2305440.115309
4-0.2297310.498009-0.268278
\n", + "
" + ], + "text/plain": [ + " 0 1 2\n", + "0 -0.516494 0.235870 0.280624\n", + "1 0.081768 0.024435 -0.106204\n", + "2 -0.047373 -0.212124 0.259497\n", + "3 0.115235 -0.230544 0.115309\n", + "4 -0.229731 0.498009 -0.268278" + ] + }, + "execution_count": 112, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df=df.sub(df.mean(axis=1) , axis=0)\n", + "df" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "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.14.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}