{"id":7339,"date":"2020-06-14T09:54:51","date_gmt":"2020-06-14T00:54:51","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=7339"},"modified":"2020-07-29T06:56:48","modified_gmt":"2020-07-28T21:56:48","slug":"numpy-%eb%85%b8%ed%8a%b8","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=7339","title":{"rendered":"NumPy \ub178\ud2b8"},"content":{"rendered":"<p>NumPy\ub294 \uc9c1\uad00\uc801\uc774\uc9c0\ub9cc \ub54c\ub85c\ub294 \ucd95\uc57d\uc801\uc778 \ud45c\ud604\uc2dd\uacfc \ud568\ucd95\uc801\uc778 \ucf54\ub4dc \uc548\uc5d0 \ub0b4\ud3ec\ub41c \uc758\ubbf8\uc758 \ud30c\uc545\uc774 \uba85\ud655\ud558\uac8c \uadf8\ub824\uc9c0\uc9c0 \uc54a\ub294 \uacbd\uc6b0\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ubb3c\ub860 NumPy\uc758 \ucd95\uc57d\ub41c \ud45c\ud604\uc2dd\uacfc \uadf8 \ud568\ucd95\uc801\uc778 \uc758\ubbf8\ub294 \uadf8 \uc804\uccb4\uac00 \uae30\ubcf8\uacfc \uae30\ubcf8\ub4e4\uc758 \uc5f0\uacb0\ub85c \uc644\uc131\ub41c \uac83\uc774\uae30\uc5d0 \uae30\ubcf8\uc801\uc778 \ub0b4\uc6a9\uc744 \ub354 \uc911\uc694\uc2dc\ud558\uc5ec \uae30\ub85d\ud574 \ub461\ub2c8\ub2e4.<\/p>\n<h4>#0. \ubc30\uc5f4 \uc0dd\uc131<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.empty([3, 3])\r\nprint(a)\r\n\r\nb = np.random.randn(3,3)\r\nprint(b)\r\n<\/pre>\n<p>a\uc640 b\ub294 \ubaa8\ub450 3&#215;3 \ud589\ub82c\uc785\ub2c8\ub2e4. \ucc28\uc774\uc810\uc744 \ubcf4\uba74, \uba3c\uc800 a\ub294 \ucd08\uae30\ud654\uc5c6\uc774 \ud589\ub82c\uc744 \uc0dd\uc131\ud558\ubbc0\ub85c, a\uc758 \uc694\uc18c\uac12\uc740 \uc5b4\ub5a0\ud55c \uaddc\uce59\uc131\uc774 \uc5c6\uc73c\uba70 b\ub294 \uc815\uaddc\ubd84\ud3ec\uc5d0 \ub530\ub77c \ud589\ub82c\uc758 \uc6d0\uc18c\uac12\uc744 \ucd08\uae30\ud654\ud569\ub2c8\ub2e4.<\/p>\n<h4>#1. \ubc30\uc5f4\ub85c \uc0dd\uc131<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\nx = np.array([1., 2., 3., 4.])\r\n\r\nprint(x) # output: [1. 2. 3. 4.]\r\nprint(type(x)) # output: <'numpy.ndarray'>\r\nprint(x.shape) # output: (4,)\r\nprint(np.ndim(x)) # output: 1\r\n\r\ny = np.array([\r\n    [1., 2., 3., 4.],\r\n    [9., 8., 7., 5.]\r\n])\r\n\r\nprint(y.shape) # output: (2, 4)\r\nprint(np.ndim(y)) # output: 2\r\n<\/pre>\n<h4>#2. \uc6d0\uc18c\uc758 \uc811\uadfc<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nx = np.array([\r\n    [1, 2, 3],\r\n    [4, 5, 6]\r\n])\r\n\r\nprint(x[0]) # output: [1 2 3]\r\nprint(x[0][0]) # output: 1\r\nprint(x[0][0] == x[0,0]) # output: True\r\n\r\nfor r in x:\r\n    print(r)\r\n# output:\r\n# [1 2 3]\r\n# [4 5 6]\r\n\r\n<\/pre>\n<h4>#3. \uc0b0\uc220 \uc5f0\uc0b0<\/h4>\n<p>numpy.ndarray \ud0c0\uc785 \uac1d\uccb4 \uac04\uc758 \uc0b0\uc220\uc5f0\uc0b0(+, -, *, \/)\ub294 \uc6d0\uc18c\ubcc4(element-wise product)\uc785\ub2c8\ub2e4. +, -, *, \/ \uc0b0\uc220\uc5f0\uc0b0\uc5d0 \ub300\ud55c \ub3d9\uc77c\ud55c \ub9e4\uc11c\ub4dc\ub294 \uac01\uac01 np.add, np.subtract, np.multiply, np.divide \uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\na = np.array([10,20,30])\r\nb = np.array([1,2,3])\r\n\r\nprint(a+b) # output: [11 22 33]\r\nprint(a-b) # output: [ 9 18 27]\r\nprint(a*b) # output: [10 40 90]\r\nprint(a\/b) # output: [10. 10. 10.]\r\n<\/pre>\n<p>numpy.ndarray\uacfc \ub2e8\uc77c\uac12(Scalar)\uc5d0 \ub300\ud55c \uc0b0\uc220 \uc5f0\uc0b0\uc740 \ubcf4\ub85c\ub4dc\ucf00\uc2a4\ud2b8(Boradcast) \ucc98\ub9ac\ub429\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\na = np.array([10,20,30])\r\nb = 100\r\n\r\nprint(a+b) # output: [110 120 130]\r\nprint(a-b) # output: [-90 -80 -70]\r\nprint(a*b) # output: [1000 2000 3000]\r\nprint(a\/b) # output: [0.1 0.2 0.3]\r\n<\/pre>\n<p>\ud2b9\uc815 \uc704\uce58\uc5d0 \ub300\ud574 \ud2b9\uc815\uac12\uc744 \ub354\ud560 \uc218 \uc788\ub294 np.add.at \uc774\ub77c\ub294 \ud568\uc218\uac00 \uc788\ub294\ub370, \uadf8 \uc608\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.arange(20).reshape(5,4)\r\nb = np.arange(4)\r\n\r\nprint(a)\r\n''' output:\r\n[[ 0  1  2  3]\r\n [ 4  5  6  7]\r\n [ 8  9 10 11]\r\n [12 13 14 15]\r\n [16 17 18 19]]\r\n'''\r\nprint(b) # [0 1 2 3]\r\n\r\nnp.add.at(a, 1, b)\r\nprint(a)\r\n''' output:\r\n[[ 0  1  2  3]\r\n [ 4  6  8 10]\r\n [ 8  9 10 11]\r\n [12 13 14 15]\r\n [16 17 18 19]]\r\n'''\r\n<\/pre>\n<p>np.add.at(A, idx, B)\ub294 B\ub97c A\uc758 idx \ubc88\uc9f8 \ud589\uc5d0 \ub354\ud558\ub294 \uc5f0\uc0b0\uc785\ub2c8\ub2e4.<\/p>\n<h4>#4. \ube0c\ub85c\ub4dc\ucf00\uc2a4\ud2b8<\/h4>\n<p>\uc2a4\uce7c\ub77c\ubfd0\ub9cc \uc544\ub2c8\ub77c shape\uac00 \ub2e4\ub978 \ubc30\uc5f4 \uac04\uc5d0\ub3c4 \ube0c\ub85c\ub4dc\ucf00\uc2a4\ud2b8\ub85c \ucc98\ub9ac\ub429\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\na = np.array([\r\n    [1, 2],\r\n    [3, 4],\r\n])\r\n    \r\nb = np.array([\r\n    [100],\r\n    [200]\r\n])\r\n\r\nc = np.array([\r\n    [100, 200]\r\n])\r\n\r\nprint(a+b) \r\n# output:\r\n# [[101 102]\r\n#  [203 204]]\r\n\r\nprint(a+c)\r\n# output:\r\n# [[101 202]\r\n#  [103 204]]\r\n<\/pre>\n<h4>#5. \ud589\ub82c\uc758 \uacf1(\ub0b4\uc801) \uc5f0\uc0b0<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n \r\na = np.array([\r\n    [1, 2],\r\n    [3, 4]\r\n])\r\n\r\nb = np.array([\r\n    [5, 6],\r\n    [7, 8]\r\n])\r\n\r\nc = np.dot(a, b)\r\nprint(c)\r\n# output:\r\n# [[19 22]\r\n#  [43 50]]\r\n<\/pre>\n<h4>#6. \ubc30\uc5f4 \uc694\uc18c\uc758 \ud569\uacfc \uacf1<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\na = np.array([1., 2., 3.])\r\nprint(np.sum(a)) # output: 6.0 (1 + 2 + 3)\r\nprint(np.prod(z)) # output: 6.0 (1 * 2 * 3)\r\n\r\nz = np.array([True, False, True, False]) \r\nprint(np.sum(z)) # output: 2\r\n<\/pre>\n<p>True\ub294 1\ub85c, False 0\uc73c\ub85c \ubcc0\ud658\ub418\uc5b4 \ud569\uc0b0\ub429\ub2c8\ub2e4.<\/p>\n<h4>#7. \ubc30\uc5f4 \uc694\uc18c \uc911 \ucd5c\ub300\uac12\uc758 \uc778\ub371\uc2a4 \uad6c\ud558\uae30<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\nx = np.array([\r\n    [0.1, 0.8, 0.1],\r\n    [0.3, 0.1, 0.6],\r\n    [0.2, 0.5, 0.3],\r\n    [0.8, 0.1, 0.1]\r\n])\r\n\r\ny = np.argmax(x)\r\ny0 = np.argmax(x, axis=0)\r\ny1 = np.argmax(x, axis=1)\r\n\r\nprint(y) # output: 1\r\nprint(y0) # output: [3 0 1]\r\nprint(y1) # output: [1 2 1 0]\r\n<\/pre>\n<p>np.argmax(x)\ub294 x \ubc30\uc5f4\uc744 1\ucc28\uc6d0\uc73c\ub85c \ud3c9\uba74\ud654\ub41c \ubc30\uc5f4\uc5d0 \ub300\ud574 \ucd5c\ub300\uac12\uc744 \uac16\ub294 \uc778\ub371\uc2a4\ub97c \ubc18\ud658\ud558\uace0, np.argmax(x, axis=0)\ub294 \uccab\ubc88\uc9f8 \ucd95\uc778 row \ubc29\ud5a5(\uc138\ub85c\ubc29\ud5a5)\uc73c\ub85c \uad6c\uc131\ub418\ub294 \uc694\uc18c \uc911 \ucd5c\ub300\uc778 \uc778\ub371\uc2a4\ub97c \ubc18\ud658\ud558\uba70, y1 = np.argmax(x, axis=1)\ub294 \ub450\ubc88\uc9f8 \ucd95\uc778 column \ubc29\ud5a5(\uac00\ub85c\ubc29\ud5a5)\uc73c\ub85c \uad6c\uc131\ub418\ub294 \uc694\uc18c \uc911 \ucd5c\ub300\uc778 \uc778\ub371\uc2a4\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4.<\/p>\n<h4>#8. \ubc30\uc5f4 \uc694\uc18c \uc911 \uc784\uc758\ub85c \uba87 \uac1c\ub9cc \ubf51\uc544\ub0b4\uae30<\/h4>\n<p>\uae30\uacc4\ud559\uc2b5\uc774\ub098 \uc2e0\uacbd\ub9dd \ud6c8\ub828 \ub54c \ubc29\ub300\ud55c \uc785\ub825 \ub370\uc774\ud130 \uc911 \uc77c\ubd80\ub9cc\uc744 \ubf51\uc544\ub0b4 \ud65c\uc6a9\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\uac00 \uc788\ub294\ub370, \uc774\ub97c \uc704\ud55c \ucf54\ub4dc\uc785\ub2c8\ub2e4. \uc544\ub798\ub294 \ucd1d 9\uac1c\uc758 \uc694\uc18c \uc911 3\uac1c\uc758 \uc694\uc18c\ub97c \uc784\uc758\ub85c \ubf51\uc544\ub0b4 \ubc30\uc5f4\ub85c \ubc18\ud658\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n \r\na = [10,20,30,40,50,60,70,80,90]\r\nn = np.array(a)\r\ni = np.random.choice(n.shape[0], 3)\r\nprint(i) # output: [6 5 3]\r\ns = n[i]\r\nprint(s) # output: [70 60 40]\r\n<\/pre>\n<p>\uc704\uc758 \uc608\uc5d0\uc11c \uc694\uc18c\uc758 \uc120\ud0dd\ub418\ub294 \uae30\uc900\uc740 \ub3d9\uc77c\ud569\ub2c8\ub2e4. \uc774\uc640 \ub300\uc870\uc801\uc73c\ub85c \uc694\uc18c\ub97c \uc120\ud0dd\ud558\ub294 \uae30\uc900\uc5d0 \ub300\ud574, \uac01 \uc694\uc18c\uac00 \uc120\ud0dd\ub420 \ud655\ub960\uc744 \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc544\ub798\uc758 \uc608\uac00 \ubc14\ub85c \uadf8\uac83\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n \r\nn = np.array([10,20,30,40,50,60,70,80,90])\r\np = np.array([ 0, 0, 0, 0, 1, 0, 0, 0, 0])\r\ni = np.random.choice(n.shape[0], 3, p=p)\r\nprint(i) # output: [4 4 4]\r\ns = n[i]\r\nprint(s) # output: [50 50 50]\r\n<\/pre>\n<p>\ud56d\uc0c1 \uc694\uc18c 50\ub9cc \uc120\ud0dd\ub418\ub294\ub370, \uc774\uc720\ub294 50\uc694\uc18c\uc5d0 \ub300\ud55c \uc120\ud0dd\ud655\ub960\uc744 1(100%)\ub85c \uc9c0\uc815\ud558\uace0, \ub098\uba38\uc9c0\ub294 0(0%)\ub85c \uc9c0\uc815\ud588\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.<\/p>\n<h4>#9. \ubc30\uc5f4 \uc694\uc18c\uc758 \ud615\ubcc0\ud658<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.array([-1.0, 1.0, 2.0])\r\nb = a > 0.0\r\nc = b.astype(np.int)\r\n\r\nprint(b) # output: [False  True  True]\r\nprint(c) # output: [0 1 1]\r\n<\/pre>\n<p>\uc544\ub798\ucc98\ub7fc \ubc30\uc5f4\uc744 \uc0dd\uc131\ud560 \ub54c \ud0c0\uc785\uc744 \uac15\uc81c\ub85c \uc9c0\uc815\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.array([-1.0, 1.0, 2.0])\r\nb = np.array(a > 0.0, dtype=np.int)\r\n\r\nprint(b) # output: [0 1 1]\r\n<\/pre>\n<h4>#10. Masking \uc5f0\uc0b0<\/h4>\n<p>\uc694\uc18c \ud0c0\uc785\uc774 boolean\uc778 \uc870\uac74 \ubc30\uc5f4\uc744 \uc774\uc6a9\ud574\uc11c \uc6d0\ud558\ub294 \uc704\uce58\uc758 \uc694\uc18c\uac12\ub9cc \ubcc0\uacbd\ud558\ub294 \ub9c8\uc2a4\ud0b9 \uc5f0\uc0b0\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.arange(0, 16)\r\nb = a.reshape(4,4)\r\nc = b > 8\r\nb[c] = 0\r\n<\/pre>\n<p>c\uc640 b\ub294 \uac01\uac01 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\na = [ [False False False False]\r\n      [False False False False]\r\n      [False  True  True  True]\r\n      [ True  True  True  True] ]\r\n\r\nb = [ [0 1 2 3]\r\n      [4 5 6 7]\r\n      [8 0 0 0]\r\n      [0 0 0 0] ]\r\n<\/pre>\n<h4>#11. \ubc30\uc5f4 \uc694\uc18c\uc758 \ucd5c\ub300, \ucd5c\uc18c, \ud569, \ud3c9\uade0 \uad6c\ud558\uae30<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\na = np.arange(0, 16).reshape(4,4)\r\n'''\r\na = [[ 0  1  2  3]\r\n     [ 4  5  6  7]\r\n     [ 8  9 10 11]\r\n     [12 13 14 15]]\r\n'''\r\n\r\nmax = np.max(a)   # = 15\r\nmin = np.min(a)   # = 0\r\nsum = np.sum(a)   # = 120\r\nmean = np.mean(a) # = 7.5\r\n<\/pre>\n<p>\ucd95(axis)\uc5d0 \ub300\ud55c \uc5f0\uc0b0\uc758 \uc608\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\na = np.arange(0, 16).reshape(4,4)\r\n\r\nmax = np.max(a, axis=0)   # = [12 13 14 15]\r\nmin = np.min(a, axis=0)   # = [0 1 2 3] \r\nsum = np.sum(a, axis=0)   # = [24 28 32 36] \r\nmean = np.mean(a, axis=0) # = [6. 7. 8. 9.]\r\n<\/pre>\n<p>Numpy\uc758 axis\uc5d0 \ub300\ud55c \uc774\ud574\ub97c \ub3d5\ub294 \uae00\uc740 \uc544\ub798\ub97c \ucc38\uace0\ud558\uae30 \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"uMOjZXMx6I\"><p><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=8112\">Numpy\uc758 axis\uc5d0 \ub530\ub978 \uc5f0\uc0b0<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Numpy\uc758 axis\uc5d0 \ub530\ub978 \uc5f0\uc0b0&#8221; &#8212; GIS Developer\" src=\"http:\/\/www.gisdeveloper.co.kr\/?p=8112&#038;embed=true#?secret=2dwWID2p5I#?secret=uMOjZXMx6I\" data-secret=\"uMOjZXMx6I\" width=\"525\" height=\"296\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<h4>#12. \uc8fc\uc5b4\uc9c4 \ubc94\uc704\uc5d0\uc11c \uc77c\uc815\ud55c \uac04\uaca9\uc73c\ub85c \ubc30\uc5f4 \ub9cc\ub4e4\uae30<\/h4>\n<p>\uc608\ub97c\ub4e4\uc5b4, 0\ubd80\ud130 10\uae4c\uc9c0 \uc21c\ucc28\uc801\uc73c\ub85c 3\uac1c\uc758 \uc694\uc18c\ub85c \uad6c\uc131\ub41c \ubc30\uc5f4\uc744 \uc0dd\uc131\ud558\uace0\uc790 \ud55c\ub2e4\uba74..<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.linspace(0, 10, 3) # = [ 0.  5. 10.]\r\n<\/pre>\n<h4>#13. \uc911\ubcf5\ub418\ub294 \uc694\uc18c \uc81c\uac70\ud558\uae30<\/h4>\n<p>\ubc30\uc5f4 \uc694\uc18c \uc911 \uc720\uc77c\ud55c \uac12\ub9cc\uc73c\ub85c \uad6c\uc131\ud558\uae30 \uc704\ud55c \ub0b4\uc6a9\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.array([1,2,2,3,4,2,4,5,6,7,6])\r\nb = np.unique(a) # = [1 2 3 4 5 6 7]\r\n<\/pre>\n<h4>#14. \uc778\ub371\uc2a4 \ub9ac\uc2a4\ud2b8\ub97c \ud1b5\ud55c \ud2b9\uc815 \uc6d0\uc18c \uac12 \uc5bb\uae30(Fany Indexing)<\/h4>\n<p>\ubc30\uc5f4\uc5d0 \ub300\ud55c \ub2e4\uc218\uc758 \uc778\ub371\uc2a4\ub97c \ub9ac\uc2a4\ud2b8\ub85c \uc9c0\uc815\ud558\uace0, \ud574\ub2f9 \uc778\ub371\uc2a4\uc758 \uac12\uc744 \uc5bb\ub294 \ub0b4\uc6a9\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\nmatrix = np.array([\r\n    [ 1, 2, 3 ],\r\n    [ 4, 5, 6 ],\r\n    [ 7, 8, 9 ]\r\n])\r\n\r\n# (0,1)\uacfc (2,0)\uc758 \uc704\uce58\uc5d0 \ub300\ud55c \uac12\uc744 \ucd9c\ub825\r\nprint(matrix[[0,2],[1,0]]) # = [2 7]\r\n<\/pre>\n<h4>#15. 2\ucc28\uc6d0 \ubc30\uc5f4\uc744 1\ucc28\uc6d0 \ubc30\uc5f4\ub85c \ub9cc\ub4e4\uae30<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.array([\r\n    [ 1, 2, 3, 4 ],\r\n    [ 4, 5, 6, 7 ],\r\n    [ 7, 8, 9, 1 ]\r\n])\r\n\r\nprint(a.reshape(12)) # = [1 2 3 4 4 5 6 7 7 8 9 1], \ucc38\uc870\r\nprint(a.reshape(-1)) # = [1 2 3 4 4 5 6 7 7 8 9 1], \ucc38\uc870\r\nprint(a.ravel()) # = [1 2 3 4 4 5 6 7 7 8 9 1], \ucc38\uc870\r\nprint(a.flatten()) # = [1 2 3 4 4 5 6 7 7 8 9 1], \ubcf5\uc0ac\r\n<\/pre>\n<h4>#16. \uc804\uce58\ud589\ub82c \ubc0f \ud589\ub82c\uc2dd \uad6c\ud558\uae30<\/h4>\n<p>\uc804\uce58\ud589\ub82c\uc740 \ud589\uacfc \uc5f4\uc758 \uc704\uce58\uac00 \uc11c\ub85c \ubc14\ub010 \ud589\ub82c\uc774\uba70, \ud589\ub82c\uc2dd\uc740 \uc815\ubc29\ud589\ub82c\uc5d0 \ub300\ud574\uc11c\ub9cc \uad6c\ud560 \uc218 \uc788\uc73c\uba70 \uc120\ud615 \ubcc0\ud658\uc758 \ud2b9\uc9d5\uc744 \ub098\ud0c0\ub0b4\ub294 \uc2a4\uce7c\ub77c\uac12\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.array([\r\n    [ 1, 2, 3 ],\r\n    [ 2, 4, 6 ],\r\n    [ 3, 8, 9 ]\r\n])\r\n\r\nprint(np.linalg.det(a))\r\nprint(a.T)\r\n<\/pre>\n<h4>#17. \ub300\uac01\ud589\ub82c\uc744 \ubf51\uc544\ub0b4\uac70\ub098, \ub300\uac01 \ud589\ub82c \ub9cc\ub4e4\uae30<\/h4>\n<p>\ud589\ub82c\uc758 \ub300\uac01 \uc131\ubd84\ub9cc\uc744 \ubf51\uc544\ub0b4\ub294 \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.array([\r\n    [ 1, 2, 3 ],\r\n    [ 2, 4, 6 ],\r\n    [ 3, 8, 9 ]\r\n])\r\n\r\nprint(a.diagonal(offset=0)) # = [1 4 9]\r\n<\/pre>\n<p>offset\uc758 \uae30\ubcf8\uac12\uc740 0\uc774\uba70, \uc774 \uac12\uc744 \uc870\uc815\ud558\uc5ec \ubf51\uc544\ub0bc \ub300\uac01\uc131\ubd84\uc758 \uc704\uce58\ub97c \uc870\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. np.diag(a) \uc5ed\uc2dc \ub3d9\uc77c\ud55c \uae30\ub2a5\uc778\ub370, a\uac00 1\ucc28\uc6d0 \ubc30\uc5f4\uc77c \ub54c a\ub97c \ub300\uac01\uc131\ubd84\uc73c\ub85c \ud558\ub294 \ud589\ub82c\uc744 \ub9cc\ub4ed\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.array([1, 2, 3])\r\nprint(np.diag(a))\r\n'''\r\n= [[1 0 0]\r\n   [0 2 0]\r\n   [0 0 3]]\r\n'''\r\n<\/pre>\n<h4>#18. \uc778\ub371\uc2a4\uac12\uc744 \ub2f4\uc740 \ubc30\uc5f4\ub85c \ub2e4\ub978 \ubc30\uc5f4\uc758 \uc694\uc18c\uac12 \ubf51\uc544\ub0b4\uae30<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\nW = np.arange(21).reshape(7, 3)\r\nprint(W)\r\n''' output: \r\n[[ 0  1  2]\r\n [ 3  4  5]\r\n [ 6  7  8]\r\n [ 9 10 11]\r\n [12 13 14]\r\n [15 16 17]\r\n [18 19 20]]\r\n'''\r\n\r\nidx = np.array([1,0])\r\nprint(W[idx])\r\n''' output:\r\n[[3 4 5]\r\n [0 1 2]]\r\n'''\r\n<\/pre>\n<h4>#19. \ubc30\uc5f4\uc758 \uc694\uc18c\uac12 \uc774\uc0b0\ud654<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.array([1,2,3,4,5,6,7,8])\r\nb = np.digitize(a, bins=[3,6])\r\nprint(b) # = [0 0 1 1 1 2 2 2]\r\n<\/pre>\n<p>\uc704\uc758 \uc608\ub294 [\ucd5c\uc18c,3), [3,6), [6,\ucd5c\ub300] \uad6c\uac04\uc5d0 \ud3ec\ud568\ub418\ub294 \uc694\uc18c\ub97c \uac01\uac01 0, 1, 2\ub85c \uc774\uc0b0\ud654\uc2dc\ud0b5\ub2c8\ub2e4. np.digitize \ud568\uc218\uc758 \uc778\uc790 \uc911 right=True\ub85c \uc9c0\uc815\ud558\uba74 \uc774\uc0b0\ud654\ub97c \uc704\ud55c \uad6c\uac04\uc744 [\ucd5c\uc18c,3], (3,6], (6,\ucd5c\ub300]\uc73c\ub85c \ubcc0\uacbd\ub429\ub2c8\ub2e4.<\/p>\n<h4>#20. \ubc30\uc5f4 \uc694\uc18c \uc804\uccb4\uc5d0 \ub300\ud55c \uc9c0\uc815 \ud45c\ud604(&#8230;)<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.empty((3,3,3))\r\n\r\nprint('a =',a)\r\n'''Output:\r\na = [[[-2.82281278e+170  1.08844231e-311  6.95255452e-310]\r\n  [ 1.12941561e+028  1.08844231e-311  6.95255452e-310]\r\n  [-1.23638776e+273  1.08844231e-311  6.95255452e-310]]\r\n\r\n [[ 1.82340557e-026  1.08844231e-311  6.95255452e-310]\r\n  [-1.08726484e+173 -1.68404675e-310  6.95255452e-310]\r\n  [-9.41689305e-154  1.08844231e-311  6.95255452e-310]]\r\n\r\n [[-6.02914348e-006  1.08844231e-311  6.95255452e-310]\r\n  [-4.46357303e-063  1.08844231e-311  6.95255452e-310]\r\n  [ 1.70128236e+132  1.08844232e-311  6.95255452e-310]]]\r\n'''\r\n\r\nprint('a[...] =',a[...])\r\n'''Output:\r\na = [[[-2.82281278e+170  1.08844231e-311  6.95255452e-310]\r\n  [ 1.12941561e+028  1.08844231e-311  6.95255452e-310]\r\n  [-1.23638776e+273  1.08844231e-311  6.95255452e-310]]\r\n\r\n [[ 1.82340557e-026  1.08844231e-311  6.95255452e-310]\r\n  [-1.08726484e+173 -1.68404675e-310  6.95255452e-310]\r\n  [-9.41689305e-154  1.08844231e-311  6.95255452e-310]]\r\n\r\n [[-6.02914348e-006  1.08844231e-311  6.95255452e-310]\r\n  [-4.46357303e-063  1.08844231e-311  6.95255452e-310]\r\n  [ 1.70128236e+132  1.08844232e-311  6.95255452e-310]]]\r\n'''\r\n\r\nprint('a[0,...] =',a[0,...])\r\n'''Output:\r\na[0,...] = [[-2.82281278e+170  1.08844231e-311  6.95255452e-310]\r\n [ 1.12941561e+028  1.08844231e-311  6.95255452e-310]\r\n [-1.23638776e+273  1.08844231e-311  6.95255452e-310]]\r\n'''\r\n\r\nprint('a[0,0,...] =',a[0,0,...])\r\n'''Output:\r\na[0,0,...] = [-2.82281278e+170  1.08844231e-311  6.95255452e-310]\r\n'''\r\n\r\nprint('a[0,0,0] =',a[0,0,0])\r\n'''Output:\r\na[0,0,0] = -2.8228127844826624e+170\r\n'''\r\n<\/pre>\n<h4>#21. NaN \uac12 \uc0ad\uc81c\ud558\uae30<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.array(\r\n    [\r\n        [1,     2], \r\n        [3,     4], \r\n        [np.nan,4], \r\n        [2,np.nan], \r\n        [4,     5]\r\n    ]\r\n)\r\n\r\nb = a[~np.isnan(a).any(axis=1)]\r\nprint(b)\r\n'''Output:\r\n[[1. 2.]\r\n [3. 4.]\r\n [4. 5.]]\r\n'''\r\n<\/pre>\n<h4>#22. \ud2b9\uc815\ud55c \uac12 \ub300\uccb4\ud558\uae30<\/h4>\n<p>\uc608\ub97c\ub4e4\uc5b4, \ubc30\uc5f4 \uc694\uc18c \uc911\uc5d0 \uac12\uc774 2\uc778 \ud56d\ubaa9\uc744 100\uc73c\ub85c \ubcc0\uacbd\ud558\uace0\uc790 \ud55c\ub2e4\uba74 \ub2e4\uc74c \ucf54\ub4dc\uc758 \uc608\uc640 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\nX = np.array(\r\n    [\r\n        [0, 1, 1],\r\n        [1, 2, 3],\r\n        [2, 3, 5],\r\n        [3, 2, 1],\r\n        [4, 1, 6],\r\n    ]\r\n)\r\n\r\nX = np.where(X==2, 100, X)\r\nprint(X)\r\n''' Output:\r\n[[  0   1   1]\r\n [  1 100   3]\r\n [100   3   5]\r\n [  3 100   1]\r\n [  4   1   6]]\r\n'''\r\n<\/pre>\n<h4>#23. \ub450 \ubc30\uc5f4\uc744 \ud569\uce58\uae30<\/h4>\n<p>\uc5ec\uae30\uc11c \uc18c\uac1c\ud560 \ubc30\uc5f4\uc744 \ud569\uce58\ub294 \ub118\ud30c\uc774\uc758 \ud568\uc218\uc5d0\ub294 3\uac00\uc9c0\ub85c, vstack, hstack, concatenate\uac00 \uc788\uc2b5\ub2c8\ub2e4. vstack\uc740 Vertical Stack\uc73c\ub85c \uc218\uc9c1\ubc29\ud5a5\uc73c\ub85c \uc313\uc544 \ud569\uce58\ub294 \uac83\uc774\uace0, hstack\uc740 Horizontal Stack\uc73c\ub85c \uc218\ud3c9\ubc29\ud5a5\uc73c\ub85c \uc313\uc544 \ud569\uce58\ub294 \uac83\uc785\ub2c8\ub2e4. \uadf8\ub9ac\uace0 concatenate\uc740 \ud569\uce58\uace0\uc790 \ud558\ub294 \ubc30\uc5f4\uc5d0 \ub9de\uac8c \ud569\uce58\ub294 \uac83\uc785\ub2c8\ub2e4. \uad6c\uccb4\uc801\uc778 \ub0b4\uc6a9\uc740 \uc544\ub798\uc758 \uc608\uc81c \ucf54\ub4dc\ub97c \ud1b5\ud574 \uba85\ud655\ud558\uac8c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\nX = np.array(\r\n    [\r\n        [0, 1, 2],\r\n        [3, 4, 5],\r\n        [6, 7, 8]\r\n    ]\r\n)\r\n\r\nY = np.array(\r\n    [\r\n        [100, 101, 102],\r\n        [103, 104, 105],\r\n        [106, 107, 108]\r\n    ]\r\n)\r\n\r\nV = np.vstack((X, Y))\r\nprint(V)\r\n'''Output:\r\n[[  0   1   2]\r\n [  3   4   5]\r\n [  6   7   8]\r\n [100 101 102]\r\n [103 104 105]\r\n [106 107 108]]\r\n'''\r\n\r\nH = np.hstack((X, Y))\r\nprint(H)\r\n'''Output:\r\n[[  0   1   2 100 101 102]\r\n [  3   4   5 103 104 105]\r\n [  6   7   8 106 107 108]]\r\n'''\r\n\r\nC = np.concatenate((X, Y))\r\nprint(C)\r\n'''Output\r\n[[  0   1   2]\r\n [  3   4   5]\r\n [  6   7   8]\r\n [100 101 102]\r\n [103 104 105]\r\n [106 107 108]]\r\n'''\r\n<\/pre>\n<p>concatenate\uc5d0 \ub300\ud574 \uc880\ub354 \uad6c\uccb4\uc801\uc73c\ub85c \ud30c\uc545\ud558\uae30 \uc704\ud574 \ub2e4\uc74c \uc608\ub97c \ub4e4\uc5b4\ubd05\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\nX = np.array([0,1,2])\r\nY = np.array([100,101,102])\r\nC = np.concatenate((X, Y))\r\nprint(C)\r\n'''Output:\r\n[  0   1   2 100 101 102]\r\n'''\r\n\r\nX = np.array([[0],[1],[2]])\r\nY = np.array([[100],[101],[102]])\r\nC = np.concatenate((X, Y))\r\nprint(C)\r\n'''Output:\r\n[[  0]\r\n [  1]\r\n [  2]\r\n [100]\r\n [101]\r\n [102]]\r\n'''\r\n<\/pre>\n<h4>#24. \ubc30\uc5f4 \uc694\uc18c \ub4a4\uc9d1\uae30<\/h4>\n<p>\ubc30\uc5f4\uc744 \uad6c\uc131\ud558\uace0 \uc788\ub294 \uc694\uc18c\ub4e4\uc758 \uad6c\uc131 \uc21c\uc11c\ub97c \ub4a4\uc9d1\uace0\uc790 \ud558\ub294 \uacbd\uc6b0\uc5d0 \ub300\ud55c \uc608\uc785\ub2c8\ub2e4. \uba3c\uc800 \uac04\ub2e8\uc774 1\ucc28\uc6d0 \ubc30\uc5f4\uc5d0 \ub300\ud55c \uacbd\uc6b0\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\nA = np.array([0,1,2,3,4,5,6,7,8,9])\r\nAR = A[::-1]\r\nprint(AR) # = [9 8 7 6 5 4 3 2 1 0]\r\n<\/pre>\n<p>\uc774\uc81c 2\ucc28\uc6d0 \ubc30\uc5f4\uc5d0 \ub300\ud574 \uc0b4\ud3b4\ubcf4\uba74, \uba3c\uc800 Row \ubca1\ud130\ub97c \ub2e8\uc704\ub85c \ub4a4\uc9d1\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\nB = np.array(\r\n    [\r\n        [0,1,2,3,4],\r\n        [1,2,3,4,5],\r\n        [2,3,4,5,6],\r\n        [3,4,5,6,7]\r\n    ]\r\n)\r\n\r\nBR = B[::-1]\r\nprint(BR)\r\n'''Output:\r\n[[3 4 5 6 7]\r\n [2 3 4 5 6]\r\n [1 2 3 4 5]\r\n [0 1 2 3 4]]\r\n'''\r\n<\/pre>\n<p>\ub2e4\uc74c\uc740 Row \ubca1\ud130\ub97c \uad6c\uc131\ud558\ub294 \uc694\uc18c\ub4e4\uc744 \ub4a4\uc9d1\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\nB = np.array(\r\n    [\r\n        [0,1,2,3,4],\r\n        [1,2,3,4,5],\r\n        [2,3,4,5,6],\r\n        [3,4,5,6,7]\r\n    ]\r\n)\r\n\r\nBR = B[...,::-1]\r\nprint(BR)\r\n'''Output:\r\n[[4 3 2 1 0]\r\n [5 4 3 2 1]\r\n [6 5 4 3 2]\r\n [7 6 5 4 3]]\r\n'''\r\n<\/pre>\n<p>\ub2e4\uc74c\uc740 Row \ubca1\ud130\ub97c \ub2e8\uc704\ub85c \ub4a4\uc9d1\uc74c\uacfc \ub3d9\uc2dc\uc5d0 Row \ubca1\ud130\ub97c \uad6c\uc131\ud558\ub294 \uc694\uc18c\ub3c4 \ub4a4\uc9d1\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\nB = np.array(\r\n    [\r\n        [0,1,2,3,4],\r\n        [1,2,3,4,5],\r\n        [2,3,4,5,6],\r\n        [3,4,5,6,7]\r\n    ]\r\n)\r\n\r\nBR = B[...,::-1][::-1]\r\nprint(BR)\r\n'''Output:\r\n[[7 6 5 4 3]\r\n [6 5 4 3 2]\r\n [5 4 3 2 1]\r\n [4 3 2 1 0]]\r\n'''\r\n<\/pre>\n<h4>#25. numpy.flip \ud568\uc218\ub97c \uc774\uc6a9\ud55c \ubc30\uc5f4 \uc694\uc18c \ub4a4\uc9d1\uae30<\/h4>\n<p>flip \ud568\uc218\ub97c \ud1b5\ud574 \uc880\ub354 \uc27d\uace0 \uc9c1\uad00\uc801\uc73c\ub85c \ubc30\uc5f4 \uc694\uc18c\ub97c \ub4a4\uc9d1\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. 3\ucc28\uc6d0 \uc774\uc0c1\uc758 \ubc30\uc5f4\uc5d0 \ub300\ud574\uc11c \ub4a4\uc9d1\uc744\ub54c \uc880\ub354 \uc9c1\uad00\uc801\uc785\ub2c8\ub2e4. \ucf54\ub4dc\ub294 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\nB = np.array(\r\n    [\r\n        [0,1,2,3,4],\r\n        [1,2,3,4,5],\r\n        [2,3,4,5,6],\r\n        [3,4,5,6,7]\r\n    ]\r\n)\r\n\r\nprint(np.flip(B,0)) # \ucd95(Axis) 0\uc5d0 \ub300\ud574 \ub4a4\uc9d1\uae30\r\n'''output:\r\n[[3 4 5 6 7]\r\n [2 3 4 5 6]\r\n [1 2 3 4 5]\r\n [0 1 2 3 4]]\r\n'''\r\n\r\nprint(np.flip(B,1)) # \ucd95 1\uc5d0 \ub300\ud574 \ub4a4\uc9d1\uae30\r\n'''output:\r\n[[4 3 2 1 0]\r\n [5 4 3 2 1]\r\n [6 5 4 3 2]\r\n [7 6 5 4 3]]\r\n'''\r\n\r\nprint(np.flip(B)) # \ubaa8\ub4e0 \ucd95\uc5d0 \ub300\ud574 \ub4a4\uc9d1\uae30 \uc544\ub798\uc758 \ucf54\ub4dc\uc640 \ub3d9\uc77c\ud568\r\nprint(np.flip(B, (0, 1)))\r\n'''output:\r\n[[7 6 5 4 3]\r\n [6 5 4 3 2]\r\n [5 4 3 2 1]\r\n [4 3 2 1 0]]\r\n'''\r\n<\/pre>\n<h4>#26. \uc5b4\ub5a4 \ubc30\uc5f4\ub85c\ubd80\ud130 \uc6d0\ud558\ub294 \ub370\uc774\ud130\ub97c \ubf51\uc544\ub0b4 \uc0c8\ub85c\uc6b4 \ubc30\uc5f4 \uad6c\uc131\ud558\uae30<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\nA = np.array(\r\n    [\r\n        [0,1,2,3,4],\r\n        [1,2,3,4,5],\r\n        [2,3,4,5,6],\r\n        [3,4,5,6,7]\r\n    ]\r\n)\r\n\r\nB = A[..., [0,2]]\r\nprint(B)\r\n'''output:\r\n[[0 2]\r\n [1 3]\r\n [2 4]\r\n [3 5]]\r\n'''\r\n\r\nC = A[[0,2], ...]\r\nprint(C)\r\n'''output:\r\n[[0 1 2 3 4]\r\n [2 3 4 5 6]]\r\n'''\r\n<\/pre>\n<p>B\ub294 A\uc5d0 \ub300\ud574\uc11c \uc5f4(Column) \uc778\ub371\uc2a4 0, 2\uc5d0 \ub300\ud55c \ub370\uc774\ud130\ub9cc\uc744 \ubf51\uc544\ub0b8 \ubc30\uc5f4\uc774\uace0, C\ub294 A\uc5d0 \ub300\ud574\uc11c \ud589(Row) \uc778\ub371\uc2a4 0, 2\uc5d0 \ub300\ud55c \ub370\uc774\ud130\ub9cc\uc744 \ubf51\uc544\ub0b8 \ubc30\uc5f4\uc785\ub2c8\ub2e4.<\/p>\n<h4>#27. \ubc30\uc5f4 \uc694\uc18c\uc758 \ubc18\ubcf5<\/h4>\n<p>Numpy\uc758 repeat \ud568\uc218\ub294 3\uac1c\uc758 \uc778\uc790\ub97c \ubc1b\uc2b5\ub2c8\ub2e4. \uccab\ubc88\uc9f8\ub294 \ubc18\ubcf5\ud558\uace0\uc790 \ud558\ub294 \ub370\uc774\ud130\uc774\uace0, \ub450\ubc88\uc9f8\ub294 \ubc18\ubcf5 \ud69f\uc218\uc774\uba70 \uc138\ubc88\uc9f8\ub294 \ubc18\ubcf5\ud558\uace0\uc790 \ud558\ub294 \ucd95(Axis)\ub85c \uc120\ud0dd \uc778\uc790\uc785\ub2c8\ub2e4. <\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n \r\na = np.repeat(3, 4)\r\nprint(a) # Output: [3 3 3 3]\r\n\r\nx = np.array(\r\n    [\r\n        [1, 2],\r\n        [3, 4]\r\n    ]\r\n)\r\n\r\nb = np.repeat(x, 2)\r\nprint(b) # Output: [1 1 2 2 3 3 4 4]\r\n\r\nc = np.repeat(x, 3, axis=1)\r\nprint(c) \r\n''' Output:\r\n[[1 1 1 2 2 2]\r\n [3 3 3 4 4 4]]\r\n'''\r\n\r\nd = np.repeat(x, 3, axis=0)\r\nprint(d)\r\n''' Output:\r\n[[1 2]\r\n [1 2]\r\n [1 2]\r\n [3 4]\r\n [3 4]\r\n [3 4]]\r\n'''\r\n\r\ne = np.repeat(x, [1, 2], axis=0)\r\nprint(e)\r\n''' Output:\r\n[[1 2]\r\n [3 4]\r\n [3 4]]\r\n'''\r\n\r\nf = np.repeat(x, [1, 2], axis=1)\r\nprint(f)\r\n''' Output:\r\n[[1 2 2]\r\n [3 4 4]\r\n'''\r\n<\/pre>\n<h4>#28. \ub450 \ubc30\uc5f4\uac04\uc758 \ub300\uc18c \ube44\uad50<\/h4>\n<p>\ub450 \ubc30\uc5f4\uc758 \uad6c\uc131 \uc694\uc18c\uc5d0 \ub300\ud574 \ub3d9\uc77c\ud55c \uc704\uce58\uc758 \uc694\uc18c\uc5d0 \ub300\ud55c \ud06c\uac70\ub098 \uc791\uc740\uc9c0\uc5d0 \ub300\ud55c \ube44\uad50\ub97c \uc704\ud55c \uc608\uc81c\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.greater([4,2], [2,2])\r\nprint(a) # [True, False]\r\n<\/pre>\n<p>geater \ud568\uc218 \uc774\uc678\uc5d0\ub3c4 \ub2e4\uc591\ud55c \ube44\uad50\ub97c \uc704\ud574 greater_equal, less, less_equal, equal, not_equal \ud568\uc218\uac00 \uc81c\uacf5\ub429\ub2c8\ub2e4.<\/p>\n<h4>#29. \ubc30\uc5f4 \uc694\uc18c\uac12\uc758 \ucd5c\uc18c\uac12 \uc870\uc815\ud558\uae30<\/h4>\n<p>\ubc30\uc5f4\uc744 \uad6c\uc131\ud558\ub294 \uc694\uc18c\uac12\uc744 \ud2b9\uc815\ud55c \uac12 \uc774\ud558\uc77c \uacbd\uc6b0 \uadf8 \ud2b9\uc885\ud55c \uac12\uc73c\ub85c \ubcc0\uacbd\ud558\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.array([\r\n    [1,2,3],\r\n    [4,5,6],\r\n    [7,8,9],\r\n])\r\n\r\nb = np.maximum(a, 5)\r\nprint(b)\r\n''' Output:\r\n[[5 5 5]\r\n [5 5 6]\r\n [7 8 9]]\r\n'''\r\n<\/pre>\n<h4>#30. \uc8fc\uc5b4\uc9c4 \ubc94\uc704\uc758 \uac12(0\uc774\uc0c1\uc758 \uc815\uc218)\uc744 \ubb34\uc791\uc704 \uc11e\uc5b4 \ubc18\ud658<\/h4>\n<p>0~9\uae4c\uc9c0\uc758 \uac12\uc744 \ubb34\uc791\uc704\ub85c \uc11e\uc5b4 \ubc18\ud658\ud558\ub294 \ucf54\ub4dc\uc758 \uc608\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.random.permutation(10)\r\nprint(a) # [6 8 5 7 3 2 1 4 0 9]\r\n<\/pre>\n<p>np.random.permutation \ud568\uc218\ub97c \uc0ac\uc6a9\ud588\uc73c\uba70, \uc778\uc790\ub294 \ubc94\uc704 \uac12\uc758 \uad6c\uc131 \uac2f\uc218\uc785\ub2c8\ub2e4. \uc8fc\ub85c \uc778\ub371\uc2a4\uac12\uc744 \uc11e\ub294 \uc6a9\ub3c4\ub85c \ud65c\uc6a9\ub429\ub2c8\ub2e4.<\/p>\n<h4>#31. \ub450 \ubc30\uc5f4\uc744 \ud569\uce58\ub294 \ub610 \ub2e4\ub978 \ubc29\uc2dd<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n \r\na = np.array([1, 2])\r\nb = np.array([3, 4])\r\n\r\nc = np.c_[a,b]\r\nprint(c)\r\n''' output:\r\n[[1 3]\r\n [2 4]]\r\n'''\r\n\r\nvs = np.vstack([a,b])\r\nprint(vs)\r\n''' output:\r\n[[1 2]\r\n [3 4]]\r\n'''\r\n\r\nr = np.r_[a,b]\r\nprint(r)\r\n''' output:\r\n[1 2 3 4]\r\n'''\r\n\r\nhs = np.hstack([a,b])\r\nprint(hs)\r\n''' output:\r\n[1 2 3 4]\r\n'''\r\n\r\na = np.array([[1, 2],\r\n              [3, 4]])\r\n\r\nb = np.array([[5, 6],\r\n              [7, 8]])\r\n\r\nc = np.c_[a,b]\r\nprint(c)\r\n''' output:\r\n[[1 2 5 6]\r\n [3 4 7 8]]\r\n'''\r\n\r\nvs = np.vstack([a,b])\r\nprint(vs)\r\n''' output:\r\n[[1 2]\r\n [3 4]\r\n [5 6]\r\n [7 8]]\r\n'''\r\nr = np.r_[a,b]\r\nprint(r)\r\n''' output:\r\n[[1 2]\r\n [3 4]\r\n [5 6]\r\n [7 8]]\r\n'''\r\n\r\nhs = np.hstack([a,b])\r\nprint(hs)\r\n''' output:\r\n[[1 2 5 6]\r\n [3 4 7 8]]\r\n'''\r\n<\/pre>\n<h4>#32. \ucc28\uc6d0 \ud655\uc7a5<\/h4>\n<p>\uc6d0\ud558\ub294 \ucd95(Axis)\uc5d0 \ub300\ud55c \ucc28\uc6d0 \ud655\uc7a5\uc744 \uc704\ud55c np.expand_dims \ud568\uc218 \uc608\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\nx = np.array(\r\n    [\r\n        [1, 2, 3],\r\n        [4, 5, 6],\r\n    ]\r\n)\r\n\r\nz = np.expand_dims(x, axis=0)\r\nprint(z)\r\n''' output\r\n[[[1 2 3]\r\n  [4 5 6]]]\r\n'''\r\n\r\nt = x.reshape(-1,x.shape[0],x.shape[1])\r\nprint(t)\r\n''' output\r\n[[[1 2 3]\r\n  [4 5 6]]]\r\n'''\r\n<\/pre>\n<p>\uc704\uc758 \uc608\ub97c \ubcf4\uba74, \ub9ce\uc740 \uacbd\uc6b0 reshape\uc744 \ud1b5\ud574 np.expand_dims\ub97c \ub300\uc2e0\ud560 \uc218 \uc788\uc74c\uc744 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h4>#33. \ud2b9\uc815 \uac12\uc744 \uac00\uc9c0\ub294 \uc694\uc18c \uc778\ub371\uc2a4 \uc5bb\uae30<\/h4>\n<p>\ubc30\uc5f4\uc744 \uad6c\uc131\ud558\ub294 \uc5b4\ub5a4 \uac12\uc744 \uac00\uc9c0\ub294 \uc694\uc18c\uc758 \uc778\ub371\uc2a4\ub97c \uc5bb\uae30 \uc704\ud55c np.argwhere \ud568\uc218\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.array([3, 2, 1, 5, 9, 8, 4, 5, 6, 7])\r\nprint(np.argwhere(a == 5)) \r\n\r\n''' output:\r\n[[3]\r\n [7]]\r\n '''\r\n<\/pre>\n<p>\uc774 \ud568\uc218\ub294 \uc870\uac74\uc744 \ub9cc\uc871\ud558\ub294 \ud56d\ubaa9\uc758 \uc778\ub371\uc2a4\ub97c \ubc18\ud658\ud558\ub294\ub370, \uc544\ub798\ub294 2\ucc28\uc6d0 \uad6c\uc870\uc77c \uacbd\uc6b0\uc5d0 \ub300\ud55c \uc608\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\nz = np.arange(16).reshape(4,4)\r\nprint(z)\r\n''' output:\r\n[[ 0  1  2  3]\r\n [ 4  5  6  7]\r\n [ 8  9 10 11]\r\n [12 13 14 15]]\r\n'''\r\nprint(z%3==0)\r\n''' output:\r\n[[ True False False  True]\r\n [False False  True False]\r\n [False  True False False]\r\n [ True False False  True]]\r\n'''\r\nprint(np.argwhere(z%3==0))\r\n''' output:\r\n[[0 0]\r\n [0 3]\r\n [1 2]\r\n [2 1]\r\n [3 0]\r\n [3 3]]\r\n'''\r\n<\/pre>\n<p>\uc704\uc758 \uacb0\uacfc\uc5d0\uc11c \ubcf4\ub294 \uac83\ucc98\ub7fc, \uc870\uac74\uc744 \ub9cc\uc871\ud558\ub294 \ud56d\ubaa9\uc5d0 \ub300\ud55c 2\ucc28\uc6d0 \ubc30\uc5f4\uc5d0\uc11c\uc758 \uc778\ub371\uc2a4\ub97c \uacb0\uacfc\ub85c \ubc18\ud658\ud569\ub2c8\ub2e4.<\/p>\n<h4>#34. \ubc30\uc5f4\uc744 \uac00\ub85c \ubc29\ud5a5\uc73c\ub85c \uc798\ub77c \uc7ac\uad6c\uc131\ud558\uae30<\/h4>\n<p>\uc608\ub97c\ub4e4\uc5b4, 4&#215;4 \ud589\ub82c\uc774 \uc788\ub2e4\uace0 \ud560\ub54c \uc774\ub97c 4&#215;2 \ud589\ub82c 2\uac1c\ub85c \ub098\ub220 \uc7ac\uad6c\uc131\ud558\uace0\uc790 \ud560\ub54c hsplit \ud568\uc218\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np \r\n\r\na = np.arange(16).reshape(4,4) \r\nprint(a)\r\n''' output\r\n[[ 0  1  2  3]\r\n [ 4  5  6  7]\r\n [ 8  9 10 11]\r\n [12 13 14 15]]\r\n'''\r\n\r\nb = np.hsplit(a,2) \r\nprint(b)\r\n''' output\r\n[array([[ 0,  1],\r\n       [ 4,  5],\r\n       [ 8,  9],\r\n       [12, 13]]), \r\n array([[ 2,  3],\r\n       [ 6,  7],\r\n       [10, 11],\r\n       [14, 15]])]\r\n'''\r\n<\/pre>\n<h4>#35. \ubc30\uc5f4 \uc694\uc18c\ub4e4\uc758 \uc21c\ucc28\uc801 \ub204\uc801\uac12 \uacc4\uc0b0\ud558\uae30<\/h4>\n<p>\ubc30\uc5f4\uc744 \uad6c\uc131\ud558\ub294 \uc694\uc18c\ub4e4\uc744 \uacc4\uc18d \ub204\uc801\ud55c \uadf8 \uacb0\uacfc\ub97c \uc5bb\uae30 \uc704\ud574 numpy\uc758 cumsum \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uba70, \uc608\uc81c\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport numpy as np\r\n\r\na = np.array([[1, 2, 3], [4, 5, 6]])\r\nprint(np.cumsum(a))\r\n''' output\r\n[ 1  3  6 10 15 21]\r\n'''\r\n<\/pre>\n<p>cumsum \ud568\uc218\uc758 \uacb0\uacfc\uc5d0\ub294 \uc785\ub825 \ubc30\uc5f4\uc758 \ucc28\uc6d0\uc774 \ubb34\uc2dc\ub418\uc5b4 1\ucc28\uc6d0\uc73c\ub85c \ubc18\ud658\ub429\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>NumPy\ub294 \uc9c1\uad00\uc801\uc774\uc9c0\ub9cc \ub54c\ub85c\ub294 \ucd95\uc57d\uc801\uc778 \ud45c\ud604\uc2dd\uacfc \ud568\ucd95\uc801\uc778 \ucf54\ub4dc \uc548\uc5d0 \ub0b4\ud3ec\ub41c \uc758\ubbf8\uc758 \ud30c\uc545\uc774 \uba85\ud655\ud558\uac8c \uadf8\ub824\uc9c0\uc9c0 \uc54a\ub294 \uacbd\uc6b0\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ubb3c\ub860 NumPy\uc758 \ucd95\uc57d\ub41c \ud45c\ud604\uc2dd\uacfc \uadf8 \ud568\ucd95\uc801\uc778 \uc758\ubbf8\ub294 \uadf8 \uc804\uccb4\uac00 \uae30\ubcf8\uacfc \uae30\ubcf8\ub4e4\uc758 \uc5f0\uacb0\ub85c \uc644\uc131\ub41c \uac83\uc774\uae30\uc5d0 \uae30\ubcf8\uc801\uc778 \ub0b4\uc6a9\uc744 \ub354 \uc911\uc694\uc2dc\ud558\uc5ec \uae30\ub85d\ud574 \ub461\ub2c8\ub2e4. #0. \ubc30\uc5f4 \uc0dd\uc131 import numpy as np a = np.empty([3, 3]) print(a) b = np.random.randn(3,3) print(b) a\uc640 b\ub294 \ubaa8\ub450 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=7339\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;NumPy \ub178\ud2b8&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[131],"tags":[],"class_list":["post-7339","post","type-post","status-publish","format-standard","hentry","category-python"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/7339","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7339"}],"version-history":[{"count":59,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/7339\/revisions"}],"predecessor-version":[{"id":10049,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/7339\/revisions\/10049"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7339"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7339"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7339"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}