{"id":127,"date":"2020-11-03T09:36:29","date_gmt":"2020-11-03T09:36:29","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/?post_type=chapter&#038;p=127"},"modified":"2020-12-28T16:12:45","modified_gmt":"2020-12-28T16:12:45","slug":"numpy-sissejuhatus","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/chapter\/numpy-sissejuhatus\/","title":{"raw":"Sissejuhatus","rendered":"Sissejuhatus"},"content":{"raw":"NumPy (ingl <em>Numerical Python<\/em>) on mitmem\u00f5\u00f5tmeliste j\u00e4rjendite t\u00f6\u00f6tlemiseks m\u00f5eldud Pythoni moodul, mis loodi 1995. aastal ja kandis nime <em>Numeric<\/em>. Alates aastast 2006 kannab moodul nime NumPy. Mooduli loojaks on ameeriklane Travis Oliphant, kes on andmeteadlane ja \u00e4rimees ning on \u00f5ppinud n\u00e4iteks matemaatikat ja elektrotehnikat.\r\n\r\nNumPy j\u00e4rjendid jagatakse m\u00f5\u00f5tmete j\u00e4rgi erinevatesse kategooriatesse. Selles materjalis p\u00f6\u00f6rame peamist t\u00e4helepanu \u00fche- ja kahem\u00f5\u00f5tmelistele j\u00e4rjenditele. On v\u00f5imalik t\u00f6\u00f6delda ka kolmem\u00f5\u00f5tmelistest kuni N-m\u00f5\u00f5tmeliste j\u00e4rjenditeni, kuid nende kasutamist selles materjalis ei tutvustata. K\u00e4esolev peat\u00fckk tutvustab NumPy peamisi funktsionaalsusi \u00fche ja kahem\u00f5\u00f5tmeliste j\u00e4rjendite peal. Lisaks \u00f5petame ka andmete visualiseerimist Matplotlib ja Plotly moodulite abil. Materjali loomisel on kasutatud j\u00e4rgmisi programmide ja moodulite versioone:\r\n<ul>\r\n \t<li style=\"font-weight: 300\">Python 3.8.5<\/li>\r\n \t<li style=\"font-weight: 300\">Thonny 3.2.7<\/li>\r\n \t<li style=\"font-weight: 300\">NumPy 1.19.1<\/li>\r\n \t<li style=\"font-weight: 300\">Matplotlib 3.3.1<\/li>\r\n \t<li style=\"font-weight: 300\">Plotly 4.9.0<\/li>\r\n \t<li style=\"font-weight: 300\">Windows 10 ja macOS Catalina<\/li>\r\n<\/ul>\r\n<h2>Miks kasutada NumPyt?<\/h2>\r\nT\u00e4nap\u00e4evases maailmas, kus tehisintellekti kasutatakse pea igal pool, ei oleks v\u00f5imalik masin\u00f5ppe algoritme treenida ehk tehisintellekti \u201c\u00f5petada\u201d ilma kiirete arvutuslike mooduliteta nagu n\u00e4iteks NumPy.\r\n\r\nPeamiselt kasutatakse NumPy moodulit andmeteaduses (ingl <em>data science<\/em>) ja teaduslikes arvutustes (ingl <em>scientific computing<\/em>), sest Numpy j\u00e4rjendid on kordades kiiremad kui Pythoni j\u00e4rjendid. P\u00f5hjus on selles, et lisaks Pythonile on kirjutamiseks kasutatud ka C keelt ning moodul on seet\u00f5ttu palju kiirem kui tavaline Python.\r\n<table class=\"no-lines aligncenter\" style=\"width: 100%;height: 56px\">\r\n<tbody>\r\n<tr class=\"border\" style=\"height: 14px\">\r\n<td style=\"width: 100%;height: 14px;text-align: center\" colspan=\"2\">\u00dchem\u00f5\u00f5tmelise j\u00e4rjendi elementidele arvu liitmine:<\/td>\r\n<\/tr>\r\n<tr class=\"border\" style=\"height: 14px\">\r\n<td style=\"width: 50%;height: 14px;text-align: center\"><strong>Python<\/strong><\/td>\r\n<td style=\"width: 50%;height: 14px;text-align: center\"><strong>NumPy<\/strong><\/td>\r\n<\/tr>\r\n<tr style=\"height: 14px\">\r\n<td style=\"width: 50%;height: 14px\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import time\r\n\r\npy_lst = list(range(10000))\r\n\r\npy_lst_2 = []\r\n\r\npy_t0 = time.time()\r\nfor i in py_lst:\r\ni += 3\r\npy_lst_2.append(i)\r\npy_t1 = time.time()\r\n\r\npy_aeg_1x = py_t1 - py_t0\r\n\r\n# Kulunud aeg sekundites\r\nprint(round(py_aeg_1x, 5))<\/pre>\r\n<\/td>\r\n<td style=\"width: 50%;height: 14px;text-align: left;vertical-align: top\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import numpy as np\r\nimport time\r\n\r\nnp_arr = np.array(list(range(10000)))\r\n\r\nnp_t0 = time.time()\r\nnp_arr_3 = np_arr + 3\r\nnp_tn = time.time()\r\n\r\nnp_aeg_1x = np_tn - np_t0\r\n\r\n# Kulunud aeg sekundites\r\nprint(round(np_aeg_1x, 5))<\/pre>\r\n<\/td>\r\n<\/tr>\r\n<tr style=\"height: 14px\">\r\n<td style=\"width: 50%;height: 14px\">\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n\u00a0 0.00199<\/pre>\r\n<\/td>\r\n<td style=\"width: 50%;height: 14px;text-align: left;vertical-align: top\">\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n\u00a0 0.0<\/pre>\r\n<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<span style=\"background-color: #fff2cc\"><span style=\"background-color: #f1c232\">\u00a0!\u00a0<span style=\"background-color: #fff2cc\">\u00a0<\/span><\/span>N\u00e4iteprogrammide katsetamisel v\u00f5ivad kiiruse tulemused olla igakord erinevad, sest kiirus oleneb ka arvuti enda v\u00f5imekusest.<\/span>\r\n\r\nNumPy kiire arvutamine tuleb eriti esile just v\u00e4ga suurte andmestike puhul. Eelnenud n\u00e4ites n\u00e4eme, et NumPy on kordades kiirem.\r\n\r\nKa kahem\u00f5\u00f5tmeliste j\u00e4rjendite puhul on NumPy kiire.\r\n<table style=\"border-collapse: collapse;width: 100%\" border=\"0\">\r\n<tbody>\r\n<tr>\r\n<td style=\"width: 50%;text-align: center\" colspan=\"2\">Kahem\u00f5\u00f5tmelisest j\u00e4rjendist kriteeriumile vastavate arvude leidmine:<\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"width: 50%;text-align: center\"><strong>Python<\/strong><\/td>\r\n<td style=\"width: 50%;text-align: center\"><strong>NumPy<\/strong><\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"width: 50%\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import time\r\n\r\npy_lst_2x = []\r\nfor i in range(1000):\r\n\u00a0 \u00a0 rida = []\r\n\u00a0 \u00a0 for j in range (1000):\r\n\u00a0 \u00a0 \u00a0 \u00a0 rida.append(j)\r\n\u00a0 \u00a0 py_lst_2x.append(rida)\r\n\r\npy_500 = []\r\npy_t0_2x = time.time()\r\nfor i in range(len(py_lst_2x)):\r\n\u00a0 \u00a0 for j in range(len(py_lst_2x[0])):\r\n\u00a0 \u00a0 \u00a0 \u00a0 if py_lst_2x[i][j] &gt; 500:\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 py_500.append(py_lst_2x[i][j])\r\npy_t1_2x = time.time()\r\n\r\npy_aeg_2x = py_t1_2x - py_t0_2x\r\n\r\n\r\n# Kulunud aeg sekundites\r\nprint(round(py_aeg_2x, 5))<\/pre>\r\n<\/td>\r\n<td style=\"width: 50%;text-align: left;vertical-align: top\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import numpy as np\r\nimport time\r\n\r\n\r\npy_lst_2x = []\r\nfor i in range(1000):\r\n\u00a0 \u00a0 rida = []\r\n\u00a0 \u00a0 for j in range (1000):\r\n\u00a0 \u00a0 \u00a0 \u00a0 rida.append(j)\r\n\u00a0 \u00a0 py_lst_2x.append(rida)\r\n\r\nnp_arr_2x = np.array(py_lst_2x)\r\n\r\nnp_t0_2x = time.time()\r\nnp_500 = np_arr_2x[np_arr_2x &gt; 500]\r\nnp_tn_2x = time.time()\r\n\r\nnp_aeg_2x = np_tn_2x - np_t0_2x\r\n\r\n# Kulunud aeg sekundites\r\n\r\nprint(round(np_aeg_2x, 5))<\/pre>\r\n<\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"width: 50%\">\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n\u00a0 0.25531<\/pre>\r\n<\/td>\r\n<td style=\"width: 50%\">\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n\u00a0 0.00299<\/pre>\r\n<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<span style=\"background-color: #f1c232\">\u00a0! <\/span><span style=\"background-color: #fff2cc\">\u00a0N\u00e4iteprogrammide katsetamisel v\u00f5ivad kiiruse tulemused olla igakord erinevad, sest kiirus oleneb ka arvuti enda v\u00f5imekusest.<\/span>\r\n\r\nKa lihtsate j\u00e4rjendi operatsioonide jaoks on NumPy mugavam, sest ei pea kasutama Pythonile omaseid ts\u00fckleid, kuna NumPyga toimuvad tehted otse j\u00e4rjenditel. Lisaks, t\u00e4nu sisseehitatud funktsioonidele on NumPyiga lihtne andmeid anal\u00fc\u00fcsida.\r\n<table style=\"border-collapse: collapse;width: 100%\" border=\"0\">\r\n<tbody>\r\n<tr>\r\n<td style=\"width: 50%;text-align: center\" colspan=\"2\">\u00dchem\u00f5\u00f5tmelisest j\u00e4rjendist positiivsete t\u00e4isarvude v\u00f5tmine:<\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"width: 50%;text-align: center\"><strong>Python<\/strong><\/td>\r\n<td style=\"width: 50%;text-align: center\"><strong>NumPy<\/strong><\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"width: 50%\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">b = [3, -1, -2, 4, -6, 8]\r\n\r\ntulemus = []\r\nfor element in b:\r\n\u00a0 \u00a0 if element &gt; 0:\r\n\u00a0 \u00a0 \u00a0 \u00a0 tulemus.append(element)\r\n\r\nprint(\"Tulemuslist: \", tulemus)<\/pre>\r\n<\/td>\r\n<td style=\"width: 50%;text-align: left;vertical-align: top\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import numpy as np\r\n\r\nb = np.array([3, -1, -2, 4, -6, 8])\r\n\r\nprint(\"Positiivsed arvud: \", b[b &gt; 0])<\/pre>\r\n<\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"width: 50%\">\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n\u00a0 Tulemuslist:\u00a0 [3, 4, 8]<\/pre>\r\n<\/td>\r\n<td style=\"width: 50%\">\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n\u00a0 Positiivsed arvud:\u00a0 [3 4 8]<\/pre>\r\n<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\nLisaks sellele, et NumPyd kasutakase andmeteaduses, rakendatakse seda ka erinevates programmides. N\u00e4iteks on NumPyt kasutatud heliprogrammis Pitch Perfect ning multimeediast tuntud vektorgraafika programmi Inkspace\u2019is kujutise moonutamisel.\r\n<h2>Installeerimine<\/h2>\r\nL\u00e4bivalt kasutatakse materjalides Thonnyt. Seet\u00f5ttu on installeerimise sammud kirjeldatud just selle programmi p\u00f5hjal.\r\n\r\nVideo NumPy installeerimisest Thonnys:\r\n\r\n[embed]https:\/\/www.youtube.com\/watch?v=52pU5mRimf8&amp;feature=youtu.be[\/embed]\r\n\r\nInstalleerimise sammud:\r\n<ul>\r\n \t<li style=\"font-weight: 300\">Ava Thonny programm<\/li>\r\n \t<li style=\"font-weight: 300\">Vali \u00fclevalt men\u00fc\u00fcribalt <em>Tools<\/em><\/li>\r\n \t<li style=\"font-weight: 300\">Sealt vali <em>Manage packages\u2026<\/em><\/li>\r\n \t<li style=\"font-weight: 300\">Avaneb uus aken<\/li>\r\n \t<li style=\"font-weight: 300\">Sisesta otsinguribale numpy<\/li>\r\n \t<li style=\"font-weight: 300\">Kl\u00f5psa nupul <em>Find package from PyPI<\/em><\/li>\r\n \t<li style=\"font-weight: 300\">Kui avaneb numpy informatsioon, kl\u00f5psa nupul <em>Install<\/em><\/li>\r\n \t<li style=\"font-weight: 300\">P\u00e4rast installeerimist ongi Thonny programmil moodul NumPy<\/li>\r\n \t<li style=\"font-weight: 300\">Kasutamiseks kirjuta <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">import numpy as np<\/code> programmi algusesse. Selleks, et kiiremini proovida NumPy funktsioone ja j\u00e4rjendi loomist, v\u00f5ib selle kirjutada ka otse k\u00e4sureale<\/li>\r\n<\/ul>\r\n<span style=\"background-color: #f1c232\">\u00a0! <\/span><span style=\"background-color: #fff2cc\">\u00a0<strong>np<\/strong> on levinud l\u00fchend NumPy kasutamiseks.<\/span>","rendered":"<p>NumPy (ingl <em>Numerical Python<\/em>) on mitmem\u00f5\u00f5tmeliste j\u00e4rjendite t\u00f6\u00f6tlemiseks m\u00f5eldud Pythoni moodul, mis loodi 1995. aastal ja kandis nime <em>Numeric<\/em>. Alates aastast 2006 kannab moodul nime NumPy. Mooduli loojaks on ameeriklane Travis Oliphant, kes on andmeteadlane ja \u00e4rimees ning on \u00f5ppinud n\u00e4iteks matemaatikat ja elektrotehnikat.<\/p>\n<p>NumPy j\u00e4rjendid jagatakse m\u00f5\u00f5tmete j\u00e4rgi erinevatesse kategooriatesse. Selles materjalis p\u00f6\u00f6rame peamist t\u00e4helepanu \u00fche- ja kahem\u00f5\u00f5tmelistele j\u00e4rjenditele. On v\u00f5imalik t\u00f6\u00f6delda ka kolmem\u00f5\u00f5tmelistest kuni N-m\u00f5\u00f5tmeliste j\u00e4rjenditeni, kuid nende kasutamist selles materjalis ei tutvustata. K\u00e4esolev peat\u00fckk tutvustab NumPy peamisi funktsionaalsusi \u00fche ja kahem\u00f5\u00f5tmeliste j\u00e4rjendite peal. Lisaks \u00f5petame ka andmete visualiseerimist Matplotlib ja Plotly moodulite abil. Materjali loomisel on kasutatud j\u00e4rgmisi programmide ja moodulite versioone:<\/p>\n<ul>\n<li style=\"font-weight: 300\">Python 3.8.5<\/li>\n<li style=\"font-weight: 300\">Thonny 3.2.7<\/li>\n<li style=\"font-weight: 300\">NumPy 1.19.1<\/li>\n<li style=\"font-weight: 300\">Matplotlib 3.3.1<\/li>\n<li style=\"font-weight: 300\">Plotly 4.9.0<\/li>\n<li style=\"font-weight: 300\">Windows 10 ja macOS Catalina<\/li>\n<\/ul>\n<h2>Miks kasutada NumPyt?<\/h2>\n<p>T\u00e4nap\u00e4evases maailmas, kus tehisintellekti kasutatakse pea igal pool, ei oleks v\u00f5imalik masin\u00f5ppe algoritme treenida ehk tehisintellekti \u201c\u00f5petada\u201d ilma kiirete arvutuslike mooduliteta nagu n\u00e4iteks NumPy.<\/p>\n<p>Peamiselt kasutatakse NumPy moodulit andmeteaduses (ingl <em>data science<\/em>) ja teaduslikes arvutustes (ingl <em>scientific computing<\/em>), sest Numpy j\u00e4rjendid on kordades kiiremad kui Pythoni j\u00e4rjendid. P\u00f5hjus on selles, et lisaks Pythonile on kirjutamiseks kasutatud ka C keelt ning moodul on seet\u00f5ttu palju kiirem kui tavaline Python.<\/p>\n<table class=\"no-lines aligncenter\" style=\"width: 100%;height: 56px\">\n<tbody>\n<tr class=\"border\" style=\"height: 14px\">\n<td style=\"width: 100%;height: 14px;text-align: center\" colspan=\"2\">\u00dchem\u00f5\u00f5tmelise j\u00e4rjendi elementidele arvu liitmine:<\/td>\n<\/tr>\n<tr class=\"border\" style=\"height: 14px\">\n<td style=\"width: 50%;height: 14px;text-align: center\"><strong>Python<\/strong><\/td>\n<td style=\"width: 50%;height: 14px;text-align: center\"><strong>NumPy<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 14px\">\n<td style=\"width: 50%;height: 14px\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import time\r\n\r\npy_lst = list(range(10000))\r\n\r\npy_lst_2 = []\r\n\r\npy_t0 = time.time()\r\nfor i in py_lst:\r\ni += 3\r\npy_lst_2.append(i)\r\npy_t1 = time.time()\r\n\r\npy_aeg_1x = py_t1 - py_t0\r\n\r\n# Kulunud aeg sekundites\r\nprint(round(py_aeg_1x, 5))<\/pre>\n<\/td>\n<td style=\"width: 50%;height: 14px;text-align: left;vertical-align: top\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import numpy as np\r\nimport time\r\n\r\nnp_arr = np.array(list(range(10000)))\r\n\r\nnp_t0 = time.time()\r\nnp_arr_3 = np_arr + 3\r\nnp_tn = time.time()\r\n\r\nnp_aeg_1x = np_tn - np_t0\r\n\r\n# Kulunud aeg sekundites\r\nprint(round(np_aeg_1x, 5))<\/pre>\n<\/td>\n<\/tr>\n<tr style=\"height: 14px\">\n<td style=\"width: 50%;height: 14px\">\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n\u00a0 0.00199<\/pre>\n<\/td>\n<td style=\"width: 50%;height: 14px;text-align: left;vertical-align: top\">\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n\u00a0 0.0<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"background-color: #fff2cc\"><span style=\"background-color: #f1c232\">\u00a0!\u00a0<span style=\"background-color: #fff2cc\">\u00a0<\/span><\/span>N\u00e4iteprogrammide katsetamisel v\u00f5ivad kiiruse tulemused olla igakord erinevad, sest kiirus oleneb ka arvuti enda v\u00f5imekusest.<\/span><\/p>\n<p>NumPy kiire arvutamine tuleb eriti esile just v\u00e4ga suurte andmestike puhul. Eelnenud n\u00e4ites n\u00e4eme, et NumPy on kordades kiirem.<\/p>\n<p>Ka kahem\u00f5\u00f5tmeliste j\u00e4rjendite puhul on NumPy kiire.<\/p>\n<table style=\"border-collapse: collapse;width: 100%\">\n<tbody>\n<tr>\n<td style=\"width: 50%;text-align: center\" colspan=\"2\">Kahem\u00f5\u00f5tmelisest j\u00e4rjendist kriteeriumile vastavate arvude leidmine:<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 50%;text-align: center\"><strong>Python<\/strong><\/td>\n<td style=\"width: 50%;text-align: center\"><strong>NumPy<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 50%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import time\r\n\r\npy_lst_2x = []\r\nfor i in range(1000):\r\n\u00a0 \u00a0 rida = []\r\n\u00a0 \u00a0 for j in range (1000):\r\n\u00a0 \u00a0 \u00a0 \u00a0 rida.append(j)\r\n\u00a0 \u00a0 py_lst_2x.append(rida)\r\n\r\npy_500 = []\r\npy_t0_2x = time.time()\r\nfor i in range(len(py_lst_2x)):\r\n\u00a0 \u00a0 for j in range(len(py_lst_2x[0])):\r\n\u00a0 \u00a0 \u00a0 \u00a0 if py_lst_2x[i][j] &gt; 500:\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 py_500.append(py_lst_2x[i][j])\r\npy_t1_2x = time.time()\r\n\r\npy_aeg_2x = py_t1_2x - py_t0_2x\r\n\r\n\r\n# Kulunud aeg sekundites\r\nprint(round(py_aeg_2x, 5))<\/pre>\n<\/td>\n<td style=\"width: 50%;text-align: left;vertical-align: top\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import numpy as np\r\nimport time\r\n\r\n\r\npy_lst_2x = []\r\nfor i in range(1000):\r\n\u00a0 \u00a0 rida = []\r\n\u00a0 \u00a0 for j in range (1000):\r\n\u00a0 \u00a0 \u00a0 \u00a0 rida.append(j)\r\n\u00a0 \u00a0 py_lst_2x.append(rida)\r\n\r\nnp_arr_2x = np.array(py_lst_2x)\r\n\r\nnp_t0_2x = time.time()\r\nnp_500 = np_arr_2x[np_arr_2x &gt; 500]\r\nnp_tn_2x = time.time()\r\n\r\nnp_aeg_2x = np_tn_2x - np_t0_2x\r\n\r\n# Kulunud aeg sekundites\r\n\r\nprint(round(np_aeg_2x, 5))<\/pre>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 50%\">\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n\u00a0 0.25531<\/pre>\n<\/td>\n<td style=\"width: 50%\">\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n\u00a0 0.00299<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"background-color: #f1c232\">\u00a0! <\/span><span style=\"background-color: #fff2cc\">\u00a0N\u00e4iteprogrammide katsetamisel v\u00f5ivad kiiruse tulemused olla igakord erinevad, sest kiirus oleneb ka arvuti enda v\u00f5imekusest.<\/span><\/p>\n<p>Ka lihtsate j\u00e4rjendi operatsioonide jaoks on NumPy mugavam, sest ei pea kasutama Pythonile omaseid ts\u00fckleid, kuna NumPyga toimuvad tehted otse j\u00e4rjenditel. Lisaks, t\u00e4nu sisseehitatud funktsioonidele on NumPyiga lihtne andmeid anal\u00fc\u00fcsida.<\/p>\n<table style=\"border-collapse: collapse;width: 100%\">\n<tbody>\n<tr>\n<td style=\"width: 50%;text-align: center\" colspan=\"2\">\u00dchem\u00f5\u00f5tmelisest j\u00e4rjendist positiivsete t\u00e4isarvude v\u00f5tmine:<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 50%;text-align: center\"><strong>Python<\/strong><\/td>\n<td style=\"width: 50%;text-align: center\"><strong>NumPy<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 50%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">b = [3, -1, -2, 4, -6, 8]\r\n\r\ntulemus = []\r\nfor element in b:\r\n\u00a0 \u00a0 if element &gt; 0:\r\n\u00a0 \u00a0 \u00a0 \u00a0 tulemus.append(element)\r\n\r\nprint(\"Tulemuslist: \", tulemus)<\/pre>\n<\/td>\n<td style=\"width: 50%;text-align: left;vertical-align: top\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import numpy as np\r\n\r\nb = np.array([3, -1, -2, 4, -6, 8])\r\n\r\nprint(\"Positiivsed arvud: \", b[b &gt; 0])<\/pre>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 50%\">\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n\u00a0 Tulemuslist:\u00a0 [3, 4, 8]<\/pre>\n<\/td>\n<td style=\"width: 50%\">\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n\u00a0 Positiivsed arvud:\u00a0 [3 4 8]<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Lisaks sellele, et NumPyd kasutakase andmeteaduses, rakendatakse seda ka erinevates programmides. N\u00e4iteks on NumPyt kasutatud heliprogrammis Pitch Perfect ning multimeediast tuntud vektorgraafika programmi Inkspace\u2019is kujutise moonutamisel.<\/p>\n<h2>Installeerimine<\/h2>\n<p>L\u00e4bivalt kasutatakse materjalides Thonnyt. Seet\u00f5ttu on installeerimise sammud kirjeldatud just selle programmi p\u00f5hjal.<\/p>\n<p>Video NumPy installeerimisest Thonnys:<\/p>\n<p><iframe loading=\"lazy\" id=\"oembed-1\" title=\"NumPy installeerimine Thonnys\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/52pU5mRimf8?feature=oembed&#38;rel=0\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>Installeerimise sammud:<\/p>\n<ul>\n<li style=\"font-weight: 300\">Ava Thonny programm<\/li>\n<li style=\"font-weight: 300\">Vali \u00fclevalt men\u00fc\u00fcribalt <em>Tools<\/em><\/li>\n<li style=\"font-weight: 300\">Sealt vali <em>Manage packages\u2026<\/em><\/li>\n<li style=\"font-weight: 300\">Avaneb uus aken<\/li>\n<li style=\"font-weight: 300\">Sisesta otsinguribale numpy<\/li>\n<li style=\"font-weight: 300\">Kl\u00f5psa nupul <em>Find package from PyPI<\/em><\/li>\n<li style=\"font-weight: 300\">Kui avaneb numpy informatsioon, kl\u00f5psa nupul <em>Install<\/em><\/li>\n<li style=\"font-weight: 300\">P\u00e4rast installeerimist ongi Thonny programmil moodul NumPy<\/li>\n<li style=\"font-weight: 300\">Kasutamiseks kirjuta <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">import numpy as np<\/code> programmi algusesse. Selleks, et kiiremini proovida NumPy funktsioone ja j\u00e4rjendi loomist, v\u00f5ib selle kirjutada ka otse k\u00e4sureale<\/li>\n<\/ul>\n<p><span style=\"background-color: #f1c232\">\u00a0! <\/span><span style=\"background-color: #fff2cc\">\u00a0<strong>np<\/strong> on levinud l\u00fchend NumPy kasutamiseks.<\/span><\/p>\n","protected":false},"author":16,"menu_order":1,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-127","chapter","type-chapter","status-publish","hentry"],"part":90,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/127","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/users\/16"}],"version-history":[{"count":67,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/127\/revisions"}],"predecessor-version":[{"id":233,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/127\/revisions\/233"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/parts\/90"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/127\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/media?parent=127"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapter-type?post=127"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/contributor?post=127"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/license?post=127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}