├── .ipynb_checkpoints └── NumPy-checkpoint.ipynb └── NumPy.ipynb /.ipynb_checkpoints/NumPy-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# NumPy\n", 8 | "\n", 9 | "Numpy(Numerical Python) is the core library for scientific computing in Python. It provides a high-performance multidimensional array object, and tools for working with arrays. It contains the data structures needed for storing and accessing arrays. It has simple operations and functions for computation of arrays. In addition to numeric data types, NumPy can store other data types such as strings. Unlike lists, NumPy must have the same data types for all the items.\n" 10 | ] 11 | }, 12 | { 13 | "cell_type": "code", 14 | "execution_count": 380, 15 | "metadata": {}, 16 | "outputs": [], 17 | "source": [ 18 | "# How ot import numpy\n", 19 | "import numpy as np" 20 | ] 21 | }, 22 | { 23 | "cell_type": "code", 24 | "execution_count": 381, 25 | "metadata": {}, 26 | "outputs": [], 27 | "source": [ 28 | "# Let us import matplot.lib and seaborn for data visualization\n", 29 | "\n", 30 | "import matplotlib.pyplot as plt\n", 31 | "import seaborn as sns\n", 32 | "sns.set()" 33 | ] 34 | }, 35 | { 36 | "cell_type": "code", 37 | "execution_count": 382, 38 | "metadata": {}, 39 | "outputs": [], 40 | "source": [ 41 | "## import stats for some statistical methods\n", 42 | "from scipy import stats" 43 | ] 44 | }, 45 | { 46 | "cell_type": "code", 47 | "execution_count": 383, 48 | "metadata": {}, 49 | "outputs": [ 50 | { 51 | "name": "stdout", 52 | "output_type": "stream", 53 | "text": [ 54 | "NumPy: 1.19.2\n" 55 | ] 56 | } 57 | ], 58 | "source": [ 59 | "# How check the version of numpy package\n", 60 | "print('NumPy:', np.__version__)\n" 61 | ] 62 | }, 63 | { 64 | "cell_type": "markdown", 65 | "metadata": {}, 66 | "source": [ 67 | "## Using Numpy to calculate statistical measures\n", 68 | "It is easy to calcualte the statistical measures such as mean, median, standard deviation, varience etc" 69 | ] 70 | }, 71 | { 72 | "cell_type": "code", 73 | "execution_count": 15, 74 | "metadata": {}, 75 | "outputs": [], 76 | "source": [ 77 | "# A set of age of students in python class\n", 78 | "\n", 79 | "data = [19, 20, 22, 33, 45, 60, 25, 24, 40, 20, 15, 22, 24, 26, 26, 28, 27, 24, 35, 40, 40, 24, 38, 40, 28, 23]" 80 | ] 81 | }, 82 | { 83 | "cell_type": "code", 84 | "execution_count": 16, 85 | "metadata": {}, 86 | "outputs": [ 87 | { 88 | "data": { 89 | "text/plain": [ 90 | "29.53846153846154" 91 | ] 92 | }, 93 | "execution_count": 16, 94 | "metadata": {}, 95 | "output_type": "execute_result" 96 | } 97 | ], 98 | "source": [ 99 | "np.mean(data)" 100 | ] 101 | }, 102 | { 103 | "cell_type": "code", 104 | "execution_count": 17, 105 | "metadata": {}, 106 | "outputs": [ 107 | { 108 | "data": { 109 | "text/plain": [ 110 | "26.0" 111 | ] 112 | }, 113 | "execution_count": 17, 114 | "metadata": {}, 115 | "output_type": "execute_result" 116 | } 117 | ], 118 | "source": [ 119 | "np.median(data)" 120 | ] 121 | }, 122 | { 123 | "cell_type": "code", 124 | "execution_count": 18, 125 | "metadata": {}, 126 | "outputs": [ 127 | { 128 | "data": { 129 | "text/plain": [ 130 | "9.919796714847806" 131 | ] 132 | }, 133 | "execution_count": 18, 134 | "metadata": {}, 135 | "output_type": "execute_result" 136 | } 137 | ], 138 | "source": [ 139 | "np.std(data)" 140 | ] 141 | }, 142 | { 143 | "cell_type": "code", 144 | "execution_count": 19, 145 | "metadata": {}, 146 | "outputs": [ 147 | { 148 | "data": { 149 | "text/plain": [ 150 | "98.40236686390533" 151 | ] 152 | }, 153 | "execution_count": 19, 154 | "metadata": {}, 155 | "output_type": "execute_result" 156 | } 157 | ], 158 | "source": [ 159 | "np.var(data)" 160 | ] 161 | }, 162 | { 163 | "cell_type": "code", 164 | "execution_count": 21, 165 | "metadata": {}, 166 | "outputs": [ 167 | { 168 | "data": { 169 | "text/plain": [ 170 | "ModeResult(mode=array([24]), count=array([4]))" 171 | ] 172 | }, 173 | "execution_count": 21, 174 | "metadata": {}, 175 | "output_type": "execute_result" 176 | } 177 | ], 178 | "source": [ 179 | "# numpy do not have mode method\n", 180 | "stats.mode(data)" 181 | ] 182 | }, 183 | { 184 | "cell_type": "markdown", 185 | "metadata": {}, 186 | "source": [ 187 | "## Creating of NumPy Arrays\n", 188 | "We can change Python list and tuple to NumPy array" 189 | ] 190 | }, 191 | { 192 | "cell_type": "markdown", 193 | "metadata": {}, 194 | "source": [ 195 | "### Creating NumPy array from Python lists" 196 | ] 197 | }, 198 | { 199 | "cell_type": "code", 200 | "execution_count": 112, 201 | "metadata": {}, 202 | "outputs": [ 203 | { 204 | "name": "stdout", 205 | "output_type": "stream", 206 | "text": [ 207 | "Type : \n", 208 | "[1, 2, 3, 4, 5]\n" 209 | ] 210 | } 211 | ], 212 | "source": [ 213 | "# creating pyton list\n", 214 | "python_list = [1, 2, 3, 4, 5]\n", 215 | "\n", 216 | "# Checking data types\n", 217 | "print('Type : ', type(python_list))\n", 218 | "print(python_list)" 219 | ] 220 | }, 221 | { 222 | "cell_type": "code", 223 | "execution_count": 113, 224 | "metadata": {}, 225 | "outputs": [ 226 | { 227 | "name": "stdout", 228 | "output_type": "stream", 229 | "text": [ 230 | "[[0, 1, 2], [3, 4, 5], [6, 7, 8]]\n", 231 | "\n" 232 | ] 233 | } 234 | ], 235 | "source": [ 236 | "two_dim_list = [[0, 1, 2], [3,4,5],[6,7,8]]\n", 237 | "print(two_dim_list)\n", 238 | "print(type(two_dim_list))" 239 | ] 240 | }, 241 | { 242 | "cell_type": "code", 243 | "execution_count": 114, 244 | "metadata": {}, 245 | "outputs": [ 246 | { 247 | "name": "stdout", 248 | "output_type": "stream", 249 | "text": [ 250 | "Type: \n", 251 | "[1 2 3 4 5]\n" 252 | ] 253 | } 254 | ], 255 | "source": [ 256 | "np_arr_from_list = np.array(python_list)\n", 257 | "print('Type:', type(np_arr_from_list))\n", 258 | "print(np_arr_from_list)" 259 | ] 260 | }, 261 | { 262 | "cell_type": "code", 263 | "execution_count": 115, 264 | "metadata": {}, 265 | "outputs": [ 266 | { 267 | "name": "stdout", 268 | "output_type": "stream", 269 | "text": [ 270 | "[[0 1 2]\n", 271 | " [3 4 5]\n", 272 | " [6 7 8]]\n" 273 | ] 274 | } 275 | ], 276 | "source": [ 277 | "np_arr_from_two_dim_list = np.array(two_dim_list)\n", 278 | "print(np_arr_from_two_dim_lst)" 279 | ] 280 | }, 281 | { 282 | "cell_type": "markdown", 283 | "metadata": {}, 284 | "source": [ 285 | "### Creatign float NumPy arrays\n", 286 | "It is possible to create a numpy array with different data types with dtype " 287 | ] 288 | }, 289 | { 290 | "cell_type": "code", 291 | "execution_count": 116, 292 | "metadata": {}, 293 | "outputs": [ 294 | { 295 | "name": "stdout", 296 | "output_type": "stream", 297 | "text": [ 298 | "[1, 2, 3, 4, 5]\n", 299 | "[1. 2. 3. 4. 5.]\n", 300 | "\n" 301 | ] 302 | } 303 | ], 304 | "source": [ 305 | "# Python list\n", 306 | "python_list = [1,2,3,4,5]\n", 307 | "print(python_list)\n", 308 | "\n", 309 | "numpy_array_from_list2 = np.array(python_list, dtype='float')\n", 310 | "print(numpy_array_from_list2)\n", 311 | "print(type(numpy_array_from_list2))" 312 | ] 313 | }, 314 | { 315 | "cell_type": "markdown", 316 | "metadata": {}, 317 | "source": [ 318 | "### Creating Boolean NumPy Arrays\n", 319 | "Creating a boolean a NumPy array from list" 320 | ] 321 | }, 322 | { 323 | "cell_type": "code", 324 | "execution_count": 117, 325 | "metadata": {}, 326 | "outputs": [ 327 | { 328 | "name": "stdout", 329 | "output_type": "stream", 330 | "text": [ 331 | "\n", 332 | "[False True True False False]\n" 333 | ] 334 | } 335 | ], 336 | "source": [ 337 | "numpy_bool_array = np.array([0, 1, -1, 0, 0], dtype=bool)\n", 338 | "print(type(numpy_bool_array))\n", 339 | "print(numpy_bool_array)" 340 | ] 341 | }, 342 | { 343 | "cell_type": "markdown", 344 | "metadata": {}, 345 | "source": [ 346 | "### Creating NumPy array with different data types" 347 | ] 348 | }, 349 | { 350 | "cell_type": "code", 351 | "execution_count": 118, 352 | "metadata": {}, 353 | "outputs": [ 354 | { 355 | "name": "stdout", 356 | "output_type": "stream", 357 | "text": [ 358 | "[1 2 3 4 5]\n", 359 | "[1. 2. 3. 4. 5.]\n", 360 | "[ True True True False True True True True]\n", 361 | "[1.+0.j 2.+0.j 3.+0.j 4.+0.j 5.+0.j]\n", 362 | "['1' '2' '3' '4' '5.0']\n" 363 | ] 364 | } 365 | ], 366 | "source": [ 367 | "np_int_arr = np.array([1,2,3,4,5.0], dtype = 'int')\n", 368 | "np_float_arr = np.array([1,2,3,4,5.0], dtype = 'float')\n", 369 | "np_bool_arr = np.array([-3, -2, -1, 0,2,3,4,5.0], dtype = 'bool')\n", 370 | "np_complex_arr = np.array([1, 2,3,4,5.0], dtype = 'complex')\n", 371 | "np_str_arr = np.array([1,2,3,4,5.0], dtype = 'str')\n", 372 | "\n", 373 | "print(np_int_arr)\n", 374 | "print(np_float_arr)\n", 375 | "print(np_bool_arr)\n", 376 | "print(np_complex_arr)\n", 377 | "print(np_str_arr)" 378 | ] 379 | }, 380 | { 381 | "cell_type": "markdown", 382 | "metadata": {}, 383 | "source": [ 384 | "### Creating Multidimensional Array Using NumPy\n", 385 | "It is possible to create a multidimensional array using Python list of lists" 386 | ] 387 | }, 388 | { 389 | "cell_type": "code", 390 | "execution_count": 119, 391 | "metadata": {}, 392 | "outputs": [ 393 | { 394 | "name": "stdout", 395 | "output_type": "stream", 396 | "text": [ 397 | "[[0 1 2]\n", 398 | " [3 4 5]\n", 399 | " [6 7 8]]\n" 400 | ] 401 | } 402 | ], 403 | "source": [ 404 | "two_dim_list = [[0,1,2], [3,4,5], [6,7,8]]\n", 405 | "np_two_dim_arr = np.array(two_dim_list)\n", 406 | "print(np_two_dim_arr)" 407 | ] 408 | }, 409 | { 410 | "cell_type": "markdown", 411 | "metadata": {}, 412 | "source": [ 413 | "## Converting NumPy array to list" 414 | ] 415 | }, 416 | { 417 | "cell_type": "code", 418 | "execution_count": 120, 419 | "metadata": {}, 420 | "outputs": [ 421 | { 422 | "name": "stdout", 423 | "output_type": "stream", 424 | "text": [ 425 | "[1 2 3 4 5]\n", 426 | "[[0, 1, 2], [3, 4, 5], [6, 7, 8]]\n" 427 | ] 428 | } 429 | ], 430 | "source": [ 431 | "print(np_arr_from_list)\n", 432 | "np_to_list = np_arr_from_list.tolist()\n", 433 | "np_two_dim_to_list = np_two_dim_arr.tolist()\n", 434 | "print(np_two_dim_to_list )" 435 | ] 436 | }, 437 | { 438 | "cell_type": "code", 439 | "execution_count": 121, 440 | "metadata": {}, 441 | "outputs": [ 442 | { 443 | "name": "stdout", 444 | "output_type": "stream", 445 | "text": [ 446 | "[1, 2, 3, 4, 5]\n", 447 | "\n" 448 | ] 449 | } 450 | ], 451 | "source": [ 452 | "print(np_to_list)\n", 453 | "print(type(np_to_list))" 454 | ] 455 | }, 456 | { 457 | "cell_type": "code", 458 | "execution_count": 122, 459 | "metadata": {}, 460 | "outputs": [ 461 | { 462 | "name": "stdout", 463 | "output_type": "stream", 464 | "text": [ 465 | "[[0, 1, 2], [3, 4, 5], [6, 7, 8]]\n" 466 | ] 467 | } 468 | ], 469 | "source": [ 470 | "print(np_two_dim_to_list)" 471 | ] 472 | }, 473 | { 474 | "cell_type": "markdown", 475 | "metadata": {}, 476 | "source": [ 477 | "## Creating NumPy Array from Tuples" 478 | ] 479 | }, 480 | { 481 | "cell_type": "code", 482 | "execution_count": 123, 483 | "metadata": {}, 484 | "outputs": [ 485 | { 486 | "name": "stdout", 487 | "output_type": "stream", 488 | "text": [ 489 | "\n" 490 | ] 491 | } 492 | ], 493 | "source": [ 494 | "python_tuple = (1,2,3,4,5)\n", 495 | "print(type(python_tuple))" 496 | ] 497 | }, 498 | { 499 | "cell_type": "code", 500 | "execution_count": 124, 501 | "metadata": {}, 502 | "outputs": [ 503 | { 504 | "name": "stdout", 505 | "output_type": "stream", 506 | "text": [ 507 | "\n", 508 | "numpy_array_from_tuple: [1 2 3 4 5]\n" 509 | ] 510 | } 511 | ], 512 | "source": [ 513 | "numpy_array_from_tuple = np.array(python_tuple)\n", 514 | "print(type(numpy_array_from_tuple))\n", 515 | "print('numpy_array_from_tuple:',numpy_array_from_tuple)" 516 | ] 517 | }, 518 | { 519 | "cell_type": "markdown", 520 | "metadata": {}, 521 | "source": [ 522 | "### NumPy array attributes\n", 523 | "*ndim*, *shape*, *size*, *dtype*\n" 524 | ] 525 | }, 526 | { 527 | "cell_type": "code", 528 | "execution_count": 391, 529 | "metadata": {}, 530 | "outputs": [], 531 | "source": [ 532 | "def get_np_array_info(a):\n", 533 | " print(f\"It has dim: {a.ndim} \\nshape: {a.shape} \\nsize {a.size}: \\ndtype {a.dtype}:\")\n", 534 | " print(a)" 535 | ] 536 | }, 537 | { 538 | "cell_type": "code", 539 | "execution_count": 392, 540 | "metadata": {}, 541 | "outputs": [ 542 | { 543 | "name": "stdout", 544 | "output_type": "stream", 545 | "text": [ 546 | "It has dim: 2 \n", 547 | "shape: (3, 3) \n", 548 | "size 9: \n", 549 | "dtype int32:\n", 550 | "[[0 1 2]\n", 551 | " [3 4 5]\n", 552 | " [6 7 8]]\n" 553 | ] 554 | } 555 | ], 556 | "source": [ 557 | "two_dim_list = [[0,1,2], [3,4,5], [6,7,8]]\n", 558 | "np_two_dim_arr = np.array(two_dim_list)\n", 559 | "get_np_array_info(np_two_dim_arr)" 560 | ] 561 | }, 562 | { 563 | "cell_type": "markdown", 564 | "metadata": {}, 565 | "source": [ 566 | "## Shape of NumPy Array\n", 567 | "The NumPy *shape* method provide the shape of the array as a tuple. The first is the row and the second is the column. If the array is just one dimensional it returns the size of the array(n,)." 568 | ] 569 | }, 570 | { 571 | "cell_type": "code", 572 | "execution_count": 393, 573 | "metadata": {}, 574 | "outputs": [ 575 | { 576 | "name": "stdout", 577 | "output_type": "stream", 578 | "text": [ 579 | "[1 2 3 4 5]\n" 580 | ] 581 | } 582 | ], 583 | "source": [ 584 | "print(np_arr_from_list)" 585 | ] 586 | }, 587 | { 588 | "cell_type": "code", 589 | "execution_count": 394, 590 | "metadata": {}, 591 | "outputs": [ 592 | { 593 | "name": "stdout", 594 | "output_type": "stream", 595 | "text": [ 596 | "Shape of numpy_array_from_list: (5,)\n" 597 | ] 598 | } 599 | ], 600 | "source": [ 601 | "print('Shape of numpy_array_from_list: ', np_arr_from_list.shape)" 602 | ] 603 | }, 604 | { 605 | "cell_type": "code", 606 | "execution_count": 395, 607 | "metadata": {}, 608 | "outputs": [ 609 | { 610 | "data": { 611 | "text/plain": [ 612 | "array([[0, 1, 2],\n", 613 | " [3, 4, 5],\n", 614 | " [6, 7, 8]])" 615 | ] 616 | }, 617 | "execution_count": 395, 618 | "metadata": {}, 619 | "output_type": "execute_result" 620 | } 621 | ], 622 | "source": [ 623 | "np_two_dim_arr" 624 | ] 625 | }, 626 | { 627 | "cell_type": "code", 628 | "execution_count": 396, 629 | "metadata": {}, 630 | "outputs": [ 631 | { 632 | "name": "stdout", 633 | "output_type": "stream", 634 | "text": [ 635 | "She of numpy_two_dimensional_array: (3, 3)\n" 636 | ] 637 | } 638 | ], 639 | "source": [ 640 | "print('She of numpy_two_dimensional_array: ', np_two_dim_arr.shape)" 641 | ] 642 | }, 643 | { 644 | "cell_type": "markdown", 645 | "metadata": {}, 646 | "source": [ 647 | "## Size of a NumPy array\n", 648 | "In NumPy to know the number of items in a NumPy array list we use size" 649 | ] 650 | }, 651 | { 652 | "cell_type": "code", 653 | "execution_count": 397, 654 | "metadata": {}, 655 | "outputs": [ 656 | { 657 | "name": "stdout", 658 | "output_type": "stream", 659 | "text": [ 660 | "[1 2 3 4 5]\n" 661 | ] 662 | } 663 | ], 664 | "source": [ 665 | "print(np_arr_from_list)" 666 | ] 667 | }, 668 | { 669 | "cell_type": "code", 670 | "execution_count": 398, 671 | "metadata": {}, 672 | "outputs": [ 673 | { 674 | "name": "stdout", 675 | "output_type": "stream", 676 | "text": [ 677 | "Size: 5\n" 678 | ] 679 | } 680 | ], 681 | "source": [ 682 | "print('Size: ', np_arr_from_list.size)" 683 | ] 684 | }, 685 | { 686 | "cell_type": "code", 687 | "execution_count": 399, 688 | "metadata": {}, 689 | "outputs": [ 690 | { 691 | "name": "stdout", 692 | "output_type": "stream", 693 | "text": [ 694 | "[[0 1 2]\n", 695 | " [3 4 5]\n", 696 | " [6 7 8]]\n" 697 | ] 698 | } 699 | ], 700 | "source": [ 701 | "print(np_two_dim_arr)" 702 | ] 703 | }, 704 | { 705 | "cell_type": "code", 706 | "execution_count": 400, 707 | "metadata": {}, 708 | "outputs": [ 709 | { 710 | "name": "stdout", 711 | "output_type": "stream", 712 | "text": [ 713 | "Size: 9\n" 714 | ] 715 | } 716 | ], 717 | "source": [ 718 | "print('Size: ', np_two_dim_arr.size)" 719 | ] 720 | }, 721 | { 722 | "cell_type": "markdown", 723 | "metadata": {}, 724 | "source": [ 725 | "## Data Type of NumPy Array\n", 726 | "Type of data types: str, int, float, complex, bool, list, None" 727 | ] 728 | }, 729 | { 730 | "cell_type": "code", 731 | "execution_count": 401, 732 | "metadata": {}, 733 | "outputs": [ 734 | { 735 | "name": "stdout", 736 | "output_type": "stream", 737 | "text": [ 738 | "[-3 -2 -1 0 1 2 3]\n", 739 | "int32\n", 740 | "[-3. -2. -1. 0. 1. 2. 3.]\n", 741 | "float64\n" 742 | ] 743 | } 744 | ], 745 | "source": [ 746 | "int_lists = [-3, -2, -1, 0, 1, 2,3]\n", 747 | "int_arr = np.array(int_lists)\n", 748 | "print(int_arr)\n", 749 | "print(int_arr.dtype)\n", 750 | "float_arr = np.array(int_lists, dtype=float)\n", 751 | "print(float_arr)\n", 752 | "print(float_arr.dtype)" 753 | ] 754 | }, 755 | { 756 | "cell_type": "markdown", 757 | "metadata": {}, 758 | "source": [ 759 | "## Mathematical Operation Using NumPy\n", 760 | "Numpy array is not like exactly like python list. To do mathematical operation in pyhton list we have to loop through the items but numpy can allow to do any mathematical operation without looping. Mathematical Operation:\n", 761 | "\n", 762 | "- Addition (+) \n", 763 | "- Subtraction (-) \n", 764 | "- Multiplication (*) \n", 765 | "- Division (/) \n", 766 | "- Modules (%) \n", 767 | "- Floor Division(//) \n", 768 | "- Exponential(**) " 769 | ] 770 | }, 771 | { 772 | "cell_type": "markdown", 773 | "metadata": {}, 774 | "source": [ 775 | "### Addition\n", 776 | "Adding to scalar value is easy but add some value on a python list is not an easy operation. However, numPy array made it easy to do arithemtic operation without a use of any loops." 777 | ] 778 | }, 779 | { 780 | "cell_type": "code", 781 | "execution_count": 402, 782 | "metadata": {}, 783 | "outputs": [ 784 | { 785 | "name": "stdout", 786 | "output_type": "stream", 787 | "text": [ 788 | "original array: [1 2 3 4 5]\n", 789 | "[11 12 13 14 15]\n" 790 | ] 791 | } 792 | ], 793 | "source": [ 794 | "# Mathematical Operation\n", 795 | "# Addition\n", 796 | "np_arr_from_list = np.array([1, 2, 3, 4, 5])\n", 797 | "print('original array: ', np_arr_from_list)\n", 798 | "ten_plus_original = numpy_array_from_list + 10\n", 799 | "print(ten_plus_original)" 800 | ] 801 | }, 802 | { 803 | "cell_type": "markdown", 804 | "metadata": {}, 805 | "source": [ 806 | "### Subtraction" 807 | ] 808 | }, 809 | { 810 | "cell_type": "code", 811 | "execution_count": 403, 812 | "metadata": {}, 813 | "outputs": [ 814 | { 815 | "name": "stdout", 816 | "output_type": "stream", 817 | "text": [ 818 | "original array: [1 2 3 4 5]\n", 819 | "[-9 -8 -7 -6 -5]\n" 820 | ] 821 | } 822 | ], 823 | "source": [ 824 | "# Subtraction\n", 825 | "numpy_array_from_list = np.array([1, 2, 3, 4, 5])\n", 826 | "print('original array: ', numpy_array_from_list)\n", 827 | "ten_minus_original = numpy_array_from_list - 10\n", 828 | "print(ten_minus_original)" 829 | ] 830 | }, 831 | { 832 | "cell_type": "markdown", 833 | "metadata": {}, 834 | "source": [ 835 | "### Multiplication\n" 836 | ] 837 | }, 838 | { 839 | "cell_type": "code", 840 | "execution_count": 404, 841 | "metadata": {}, 842 | "outputs": [ 843 | { 844 | "name": "stdout", 845 | "output_type": "stream", 846 | "text": [ 847 | "original array: [1 2 3 4 5]\n", 848 | "[10 20 30 40 50]\n" 849 | ] 850 | } 851 | ], 852 | "source": [ 853 | "numpy_array_from_list = np.array([1, 2, 3, 4, 5])\n", 854 | "print('original array: ', numpy_array_from_list)\n", 855 | "ten_times_original = numpy_array_from_list * 10\n", 856 | "print(ten_times_original)" 857 | ] 858 | }, 859 | { 860 | "cell_type": "code", 861 | "execution_count": 405, 862 | "metadata": {}, 863 | "outputs": [ 864 | { 865 | "name": "stdout", 866 | "output_type": "stream", 867 | "text": [ 868 | "[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23\n", 869 | " 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47\n", 870 | " 48 49]\n", 871 | "[ 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46\n", 872 | " 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94\n", 873 | " 96 98]\n" 874 | ] 875 | }, 876 | { 877 | "data": { 878 | "image/png": "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\n", 879 | "text/plain": [ 880 | "
" 881 | ] 882 | }, 883 | "metadata": {}, 884 | "output_type": "display_data" 885 | } 886 | ], 887 | "source": [ 888 | "# let's seee some use cases\n", 889 | "\n", 890 | "x = np.array(range(0,50))\n", 891 | "y = x * 2\n", 892 | "print(x)\n", 893 | "print(y)\n", 894 | "plt.scatter(x,y, c='brown')\n", 895 | "plt.title('X vs Y')\n", 896 | "plt.xlabel('X Axis')\n", 897 | "plt.ylabel('Y Axis')\n", 898 | "plt.show()" 899 | ] 900 | }, 901 | { 902 | "cell_type": "markdown", 903 | "metadata": {}, 904 | "source": [ 905 | "### Division" 906 | ] 907 | }, 908 | { 909 | "cell_type": "code", 910 | "execution_count": 406, 911 | "metadata": {}, 912 | "outputs": [ 913 | { 914 | "name": "stdout", 915 | "output_type": "stream", 916 | "text": [ 917 | "original array: [1 2 3 4 5]\n", 918 | "[0.1 0.2 0.3 0.4 0.5]\n" 919 | ] 920 | } 921 | ], 922 | "source": [ 923 | "# Division\n", 924 | "np_arr_from_list = np.array([1, 2, 3, 4, 5])\n", 925 | "print('original array: ', np_arr_from_list)\n", 926 | "ten_times_original = np_arr_from_list / 10\n", 927 | "print(ten_times_original)" 928 | ] 929 | }, 930 | { 931 | "cell_type": "code", 932 | "execution_count": 407, 933 | "metadata": {}, 934 | "outputs": [ 935 | { 936 | "name": "stdout", 937 | "output_type": "stream", 938 | "text": [ 939 | "original array: [1 2 3 4 5]\n", 940 | "[1 2 0 1 2]\n" 941 | ] 942 | } 943 | ], 944 | "source": [ 945 | "### Modulus\n", 946 | "# Modulus; Finding the remainder\n", 947 | "np_arr_from_list = np.array([1, 2, 3, 4, 5])\n", 948 | "print('original array: ', np_arr_from_list)\n", 949 | "ten_times_original = np_arr_from_list % 3\n", 950 | "print(ten_times_original)" 951 | ] 952 | }, 953 | { 954 | "cell_type": "markdown", 955 | "metadata": {}, 956 | "source": [ 957 | "### Floor Division" 958 | ] 959 | }, 960 | { 961 | "cell_type": "code", 962 | "execution_count": 408, 963 | "metadata": {}, 964 | "outputs": [ 965 | { 966 | "name": "stdout", 967 | "output_type": "stream", 968 | "text": [ 969 | "original array: [ 1 2 3 4 5 11]\n", 970 | "[0 0 0 0 0 1]\n" 971 | ] 972 | } 973 | ], 974 | "source": [ 975 | "# Floor division: the division result without the remainder\n", 976 | "numpy_array_from_list = np.array([1, 2, 3, 4, 5, 11])\n", 977 | "print('original array: ', numpy_array_from_list)\n", 978 | "ten_times_original = numpy_array_from_list // 10\n", 979 | "print(ten_times_original)" 980 | ] 981 | }, 982 | { 983 | "cell_type": "markdown", 984 | "metadata": {}, 985 | "source": [ 986 | "### Exponential" 987 | ] 988 | }, 989 | { 990 | "cell_type": "code", 991 | "execution_count": 409, 992 | "metadata": {}, 993 | "outputs": [ 994 | { 995 | "name": "stdout", 996 | "output_type": "stream", 997 | "text": [ 998 | "original array: [1 2 3 4 5]\n", 999 | "[ 1 4 9 16 25]\n" 1000 | ] 1001 | } 1002 | ], 1003 | "source": [ 1004 | "# Exponential is finding some number the power of another:\n", 1005 | "numpy_array_from_list = np.array([1, 2, 3, 4, 5])\n", 1006 | "print('original array: ', numpy_array_from_list)\n", 1007 | "ten_times_original = numpy_array_from_list ** 2\n", 1008 | "print(ten_times_original)" 1009 | ] 1010 | }, 1011 | { 1012 | "cell_type": "markdown", 1013 | "metadata": {}, 1014 | "source": [ 1015 | "## Converting Data Types\n", 1016 | "We can convert the data types of numpy array" 1017 | ] 1018 | }, 1019 | { 1020 | "cell_type": "markdown", 1021 | "metadata": {}, 1022 | "source": [ 1023 | "### Converting Data Types from Int to Float" 1024 | ] 1025 | }, 1026 | { 1027 | "cell_type": "code", 1028 | "execution_count": 410, 1029 | "metadata": {}, 1030 | "outputs": [ 1031 | { 1032 | "name": "stdout", 1033 | "output_type": "stream", 1034 | "text": [ 1035 | "[1 2 3 4]\n" 1036 | ] 1037 | } 1038 | ], 1039 | "source": [ 1040 | "np_int_arr = np.array([1,2,3,4])\n", 1041 | "print(np_int_arr)" 1042 | ] 1043 | }, 1044 | { 1045 | "cell_type": "code", 1046 | "execution_count": 411, 1047 | "metadata": {}, 1048 | "outputs": [], 1049 | "source": [ 1050 | "np_float_arr = np_int_arr.astype('float')" 1051 | ] 1052 | }, 1053 | { 1054 | "cell_type": "code", 1055 | "execution_count": 144, 1056 | "metadata": {}, 1057 | "outputs": [ 1058 | { 1059 | "name": "stdout", 1060 | "output_type": "stream", 1061 | "text": [ 1062 | "[1. 2. 3. 4.]\n" 1063 | ] 1064 | } 1065 | ], 1066 | "source": [ 1067 | "print(np_float_arr)" 1068 | ] 1069 | }, 1070 | { 1071 | "cell_type": "markdown", 1072 | "metadata": {}, 1073 | "source": [ 1074 | "### Converting Data Types \n" 1075 | ] 1076 | }, 1077 | { 1078 | "cell_type": "code", 1079 | "execution_count": 145, 1080 | "metadata": {}, 1081 | "outputs": [], 1082 | "source": [ 1083 | "# to int\n", 1084 | "np_int_arr = np_float_arr.astype('int')" 1085 | ] 1086 | }, 1087 | { 1088 | "cell_type": "code", 1089 | "execution_count": 146, 1090 | "metadata": {}, 1091 | "outputs": [ 1092 | { 1093 | "name": "stdout", 1094 | "output_type": "stream", 1095 | "text": [ 1096 | "[1 2 3 4]\n" 1097 | ] 1098 | } 1099 | ], 1100 | "source": [ 1101 | "print(np_int_arr)" 1102 | ] 1103 | }, 1104 | { 1105 | "cell_type": "code", 1106 | "execution_count": 147, 1107 | "metadata": {}, 1108 | "outputs": [ 1109 | { 1110 | "name": "stdout", 1111 | "output_type": "stream", 1112 | "text": [ 1113 | "[1. 2. 3. 4.]\n" 1114 | ] 1115 | } 1116 | ], 1117 | "source": [ 1118 | "#to float\n", 1119 | "\n", 1120 | "np_float_arr = np_int_arr.astype('float')\n", 1121 | "print(np_float_arr)" 1122 | ] 1123 | }, 1124 | { 1125 | "cell_type": "code", 1126 | "execution_count": 148, 1127 | "metadata": {}, 1128 | "outputs": [ 1129 | { 1130 | "name": "stdout", 1131 | "output_type": "stream", 1132 | "text": [ 1133 | "[ True True False True True True]\n" 1134 | ] 1135 | } 1136 | ], 1137 | "source": [ 1138 | "# Converting Data Types Int to Boolean\n", 1139 | "np_bool_arr = np.array([-3, -2, 0, 1,2,3]).astype('bool')\n", 1140 | "print(np_bool_arr)\n" 1141 | ] 1142 | }, 1143 | { 1144 | "cell_type": "code", 1145 | "execution_count": 149, 1146 | "metadata": {}, 1147 | "outputs": [ 1148 | { 1149 | "name": "stdout", 1150 | "output_type": "stream", 1151 | "text": [ 1152 | "['1' '2' '3' '4']\n" 1153 | ] 1154 | } 1155 | ], 1156 | "source": [ 1157 | "# int to string\n", 1158 | "np_str_arr = np_int_arr.astype('str')\n", 1159 | "print(np_str_arr)" 1160 | ] 1161 | }, 1162 | { 1163 | "cell_type": "markdown", 1164 | "metadata": {}, 1165 | "source": [ 1166 | "## Multi-dimensional Arrays" 1167 | ] 1168 | }, 1169 | { 1170 | "cell_type": "code", 1171 | "execution_count": 150, 1172 | "metadata": {}, 1173 | "outputs": [ 1174 | { 1175 | "name": "stdout", 1176 | "output_type": "stream", 1177 | "text": [ 1178 | "\n", 1179 | "[[1 2 3]\n", 1180 | " [4 5 6]\n", 1181 | " [7 8 9]]\n", 1182 | "Shape: (3, 3)\n", 1183 | "Size: 9\n", 1184 | "Data type: int32\n" 1185 | ] 1186 | } 1187 | ], 1188 | "source": [ 1189 | "# 2 Dimension Array\n", 1190 | "two_dim_arr = np.array([(1,2,3),(4,5,6), (7,8,9)])\n", 1191 | "print(type (two_dim_arr))\n", 1192 | "print(two_dim_arr)\n", 1193 | "print('Shape: ', two_dim_arr.shape)\n", 1194 | "print('Size:', two_dim_arr.size)\n", 1195 | "print('Data type:', two_dim_arr.dtype)" 1196 | ] 1197 | }, 1198 | { 1199 | "cell_type": "markdown", 1200 | "metadata": {}, 1201 | "source": [ 1202 | "## Getting items from a numpy array" 1203 | ] 1204 | }, 1205 | { 1206 | "cell_type": "code", 1207 | "execution_count": 155, 1208 | "metadata": {}, 1209 | "outputs": [ 1210 | { 1211 | "name": "stdout", 1212 | "output_type": "stream", 1213 | "text": [ 1214 | "First row: [1 2 3]\n", 1215 | "Second row: [4 5 6]\n", 1216 | "Third row: [7 8 9]\n" 1217 | ] 1218 | } 1219 | ], 1220 | "source": [ 1221 | "# 2 Dimension Array\n", 1222 | "two_dim_arr = np.array([[1,2,3],[4,5,6], [7,8,9]])\n", 1223 | "first_row = two_dim_arr[0]\n", 1224 | "second_row = two_dim_arr[1]\n", 1225 | "third_row = two_dim_arr[2]\n", 1226 | "print('First row:', first_row)\n", 1227 | "print('Second row:', second_row)\n", 1228 | "print('Third row: ', third_row)" 1229 | ] 1230 | }, 1231 | { 1232 | "cell_type": "code", 1233 | "execution_count": 156, 1234 | "metadata": {}, 1235 | "outputs": [ 1236 | { 1237 | "name": "stdout", 1238 | "output_type": "stream", 1239 | "text": [ 1240 | "First column: [1 4 7]\n", 1241 | "Second column: [2 5 8]\n", 1242 | "Third column: [3 6 9]\n", 1243 | "[[1 2 3]\n", 1244 | " [4 5 6]\n", 1245 | " [7 8 9]]\n" 1246 | ] 1247 | } 1248 | ], 1249 | "source": [ 1250 | "first_column= two_dim_arr[:,0]\n", 1251 | "second_column = two_dim_arr[:,1]\n", 1252 | "third_column = two_dim_arr[:,2]\n", 1253 | "print('First column:', first_column)\n", 1254 | "print('Second column:', second_column)\n", 1255 | "print('Third column: ', third_column)\n", 1256 | "print(two_dimension_array)" 1257 | ] 1258 | }, 1259 | { 1260 | "cell_type": "markdown", 1261 | "metadata": {}, 1262 | "source": [ 1263 | "## Slicing Numpy array\n", 1264 | "Slicing in numpy is similar to slicing in python list" 1265 | ] 1266 | }, 1267 | { 1268 | "cell_type": "code", 1269 | "execution_count": 153, 1270 | "metadata": {}, 1271 | "outputs": [ 1272 | { 1273 | "name": "stdout", 1274 | "output_type": "stream", 1275 | "text": [ 1276 | "[[1 2]\n", 1277 | " [4 5]]\n", 1278 | "\n" 1279 | ] 1280 | } 1281 | ], 1282 | "source": [ 1283 | "two_dim_arr = np.array([[1,2,3],[4,5,6], [7,8,9]])\n", 1284 | "first_two_rows_and_columns = two_dim_arr[0:2, 0:2]\n", 1285 | "print(first_two_rows_and_columns)\n", 1286 | "print(type(two_dimension_array))" 1287 | ] 1288 | }, 1289 | { 1290 | "cell_type": "code", 1291 | "execution_count": 154, 1292 | "metadata": {}, 1293 | "outputs": [ 1294 | { 1295 | "data": { 1296 | "text/plain": [ 1297 | "array([9])" 1298 | ] 1299 | }, 1300 | "execution_count": 154, 1301 | "metadata": {}, 1302 | "output_type": "execute_result" 1303 | } 1304 | ], 1305 | "source": [ 1306 | "two_dimension_array[2, 2:]" 1307 | ] 1308 | }, 1309 | { 1310 | "cell_type": "code", 1311 | "execution_count": 175, 1312 | "metadata": {}, 1313 | "outputs": [ 1314 | { 1315 | "data": { 1316 | "text/plain": [ 1317 | "array([[ 1, 2, 3, 7],\n", 1318 | " [ 4, 5, 6, 15],\n", 1319 | " [ 7, 8, 9, 24],\n", 1320 | " [10, 11, 12, 33]])" 1321 | ] 1322 | }, 1323 | "execution_count": 175, 1324 | "metadata": {}, 1325 | "output_type": "execute_result" 1326 | } 1327 | ], 1328 | "source": [ 1329 | "# Slicing out the middle four items\n", 1330 | "\n", 1331 | "two_dim_arr_2= np.array([[1,2,3,7],[4,5,6, 15], [7,8,9,24], [10,11,12, 33]])\n", 1332 | "two_dim_arr_2" 1333 | ] 1334 | }, 1335 | { 1336 | "cell_type": "code", 1337 | "execution_count": 176, 1338 | "metadata": {}, 1339 | "outputs": [ 1340 | { 1341 | "data": { 1342 | "text/plain": [ 1343 | "array([[5, 6],\n", 1344 | " [8, 9]])" 1345 | ] 1346 | }, 1347 | "execution_count": 176, 1348 | "metadata": {}, 1349 | "output_type": "execute_result" 1350 | } 1351 | ], 1352 | "source": [ 1353 | "two_dim_arr_2[1:3, 1:3]" 1354 | ] 1355 | }, 1356 | { 1357 | "cell_type": "code", 1358 | "execution_count": 177, 1359 | "metadata": {}, 1360 | "outputs": [ 1361 | { 1362 | "data": { 1363 | "text/plain": [ 1364 | "array([[ 1, 2, 3, 7],\n", 1365 | " [ 4, 25, 25, 15],\n", 1366 | " [ 7, 25, 25, 24],\n", 1367 | " [10, 11, 12, 33]])" 1368 | ] 1369 | }, 1370 | "execution_count": 177, 1371 | "metadata": {}, 1372 | "output_type": "execute_result" 1373 | } 1374 | ], 1375 | "source": [ 1376 | "# Assigning \n", 1377 | "two_dim_arr_2[1:3, 1:3] = 25\n", 1378 | "two_dim_arr_2" 1379 | ] 1380 | }, 1381 | { 1382 | "cell_type": "markdown", 1383 | "metadata": {}, 1384 | "source": [ 1385 | "## How to reverse the rows and the whole array?" 1386 | ] 1387 | }, 1388 | { 1389 | "cell_type": "code", 1390 | "execution_count": 178, 1391 | "metadata": {}, 1392 | "outputs": [ 1393 | { 1394 | "data": { 1395 | "text/plain": [ 1396 | "array([[1, 2, 3],\n", 1397 | " [4, 5, 6],\n", 1398 | " [7, 8, 9]])" 1399 | ] 1400 | }, 1401 | "execution_count": 178, 1402 | "metadata": {}, 1403 | "output_type": "execute_result" 1404 | } 1405 | ], 1406 | "source": [ 1407 | "two_dim_arr[::]" 1408 | ] 1409 | }, 1410 | { 1411 | "cell_type": "code", 1412 | "execution_count": 179, 1413 | "metadata": {}, 1414 | "outputs": [ 1415 | { 1416 | "data": { 1417 | "text/plain": [ 1418 | "array([[7, 8, 9],\n", 1419 | " [4, 5, 6],\n", 1420 | " [1, 2, 3]])" 1421 | ] 1422 | }, 1423 | "execution_count": 179, 1424 | "metadata": {}, 1425 | "output_type": "execute_result" 1426 | } 1427 | ], 1428 | "source": [ 1429 | "two_dim_arr[::-1]" 1430 | ] 1431 | }, 1432 | { 1433 | "cell_type": "markdown", 1434 | "metadata": {}, 1435 | "source": [ 1436 | "## Reverse the row and column positions\n" 1437 | ] 1438 | }, 1439 | { 1440 | "cell_type": "code", 1441 | "execution_count": 184, 1442 | "metadata": {}, 1443 | "outputs": [ 1444 | { 1445 | "data": { 1446 | "text/plain": [ 1447 | "array([[9, 8, 7],\n", 1448 | " [6, 5, 4],\n", 1449 | " [3, 2, 1]])" 1450 | ] 1451 | }, 1452 | "execution_count": 184, 1453 | "metadata": {}, 1454 | "output_type": "execute_result" 1455 | } 1456 | ], 1457 | "source": [ 1458 | "two_dim_arr = np.array([[1,2,3],[4,5,6], [7,8,9]])\n", 1459 | "two_dim_arr[::-1,::-1]" 1460 | ] 1461 | }, 1462 | { 1463 | "cell_type": "code", 1464 | "execution_count": 185, 1465 | "metadata": {}, 1466 | "outputs": [ 1467 | { 1468 | "data": { 1469 | "text/plain": [ 1470 | "array([[9, 8, 7],\n", 1471 | " [6, 5, 4],\n", 1472 | " [3, 2, 1]])" 1473 | ] 1474 | }, 1475 | "execution_count": 185, 1476 | "metadata": {}, 1477 | "output_type": "execute_result" 1478 | } 1479 | ], 1480 | "source": [ 1481 | "two_dim_arr[::-1, ::-1]" 1482 | ] 1483 | }, 1484 | { 1485 | "cell_type": "code", 1486 | "execution_count": 182, 1487 | "metadata": {}, 1488 | "outputs": [], 1489 | "source": [ 1490 | "## How to represent missing values" 1491 | ] 1492 | }, 1493 | { 1494 | "cell_type": "code", 1495 | "execution_count": 186, 1496 | "metadata": {}, 1497 | "outputs": [ 1498 | { 1499 | "name": "stdout", 1500 | "output_type": "stream", 1501 | "text": [ 1502 | "[[1 2 3]\n", 1503 | " [4 5 6]\n", 1504 | " [7 8 9]]\n", 1505 | "[[ 1 2 3]\n", 1506 | " [ 4 55 44]\n", 1507 | " [ 7 8 9]]\n" 1508 | ] 1509 | } 1510 | ], 1511 | "source": [ 1512 | "print(two_dim_arr)\n", 1513 | "two_dim_arr[1,1] = 55\n", 1514 | "two_dim_arr[1,2] =44\n", 1515 | "print(two_dim_arr)" 1516 | ] 1517 | }, 1518 | { 1519 | "cell_type": "markdown", 1520 | "metadata": {}, 1521 | "source": [ 1522 | "### NumPy Zeros" 1523 | ] 1524 | }, 1525 | { 1526 | "cell_type": "code", 1527 | "execution_count": 187, 1528 | "metadata": {}, 1529 | "outputs": [ 1530 | { 1531 | "data": { 1532 | "text/plain": [ 1533 | "array([[0, 0, 0],\n", 1534 | " [0, 0, 0],\n", 1535 | " [0, 0, 0]])" 1536 | ] 1537 | }, 1538 | "execution_count": 187, 1539 | "metadata": {}, 1540 | "output_type": "execute_result" 1541 | } 1542 | ], 1543 | "source": [ 1544 | "# Numpy Zeroes\n", 1545 | "# numpy.zeros(shape, dtype=float, order='C')\n", 1546 | "numpy_zeroes = np.zeros((3,3),dtype=int)\n", 1547 | "numpy_zeroes" 1548 | ] 1549 | }, 1550 | { 1551 | "cell_type": "markdown", 1552 | "metadata": {}, 1553 | "source": [ 1554 | "### Numpy ones\n" 1555 | ] 1556 | }, 1557 | { 1558 | "cell_type": "code", 1559 | "execution_count": 188, 1560 | "metadata": {}, 1561 | "outputs": [ 1562 | { 1563 | "name": "stdout", 1564 | "output_type": "stream", 1565 | "text": [ 1566 | "[[1 1 1 1 1]\n", 1567 | " [1 1 1 1 1]\n", 1568 | " [1 1 1 1 1]]\n" 1569 | ] 1570 | } 1571 | ], 1572 | "source": [ 1573 | "# Numpy ones\n", 1574 | "numpy_ones = np.ones((3,5),dtype=int,order='C')\n", 1575 | "print(numpy_ones)" 1576 | ] 1577 | }, 1578 | { 1579 | "cell_type": "code", 1580 | "execution_count": 189, 1581 | "metadata": {}, 1582 | "outputs": [], 1583 | "source": [ 1584 | "twos = numpy_ones * 2" 1585 | ] 1586 | }, 1587 | { 1588 | "cell_type": "code", 1589 | "execution_count": 190, 1590 | "metadata": {}, 1591 | "outputs": [ 1592 | { 1593 | "name": "stdout", 1594 | "output_type": "stream", 1595 | "text": [ 1596 | "[[2 2 2 2 2]\n", 1597 | " [2 2 2 2 2]\n", 1598 | " [2 2 2 2 2]]\n" 1599 | ] 1600 | } 1601 | ], 1602 | "source": [ 1603 | "print(twos)" 1604 | ] 1605 | }, 1606 | { 1607 | "cell_type": "markdown", 1608 | "metadata": {}, 1609 | "source": [ 1610 | "### NumPy Full to create identical itmes\n" 1611 | ] 1612 | }, 1613 | { 1614 | "cell_type": "code", 1615 | "execution_count": 191, 1616 | "metadata": {}, 1617 | "outputs": [ 1618 | { 1619 | "name": "stdout", 1620 | "output_type": "stream", 1621 | "text": [ 1622 | "[[4 4 4 4 4]\n", 1623 | " [4 4 4 4 4]\n", 1624 | " [4 4 4 4 4]]\n" 1625 | ] 1626 | } 1627 | ], 1628 | "source": [ 1629 | "np_full = np.full((3, 5), fill_value=4)\n", 1630 | "print(np_full)" 1631 | ] 1632 | }, 1633 | { 1634 | "cell_type": "markdown", 1635 | "metadata": {}, 1636 | "source": [ 1637 | "### NumPy Eye\n", 1638 | "\n", 1639 | "The eye function creates an identity matrix, that is, a matrix with elements on the diagonal are set to one, and non-diagonal elements are set to zero:" 1640 | ] 1641 | }, 1642 | { 1643 | "cell_type": "code", 1644 | "execution_count": 193, 1645 | "metadata": {}, 1646 | "outputs": [ 1647 | { 1648 | "name": "stdout", 1649 | "output_type": "stream", 1650 | "text": [ 1651 | "[[1 0 0]\n", 1652 | " [0 1 0]\n", 1653 | " [0 0 1]]\n" 1654 | ] 1655 | } 1656 | ], 1657 | "source": [ 1658 | "np_eye = np.eye(3, dtype=int)\n", 1659 | "print(np_eye)" 1660 | ] 1661 | }, 1662 | { 1663 | "cell_type": "code", 1664 | "execution_count": 194, 1665 | "metadata": {}, 1666 | "outputs": [ 1667 | { 1668 | "name": "stdout", 1669 | "output_type": "stream", 1670 | "text": [ 1671 | "[[1 0 0 0 0]\n", 1672 | " [0 1 0 0 0]\n", 1673 | " [0 0 1 0 0]\n", 1674 | " [0 0 0 1 0]\n", 1675 | " [0 0 0 0 1]]\n" 1676 | ] 1677 | } 1678 | ], 1679 | "source": [ 1680 | "np_eye2 = np.eye(5, dtype=int)\n", 1681 | "print(np_eye2)" 1682 | ] 1683 | }, 1684 | { 1685 | "cell_type": "markdown", 1686 | "metadata": {}, 1687 | "source": [ 1688 | "### NumPy Empty\n", 1689 | "The NumPy *empty* method returns a new array of given shape and type, with random values." 1690 | ] 1691 | }, 1692 | { 1693 | "cell_type": "code", 1694 | "execution_count": 197, 1695 | "metadata": {}, 1696 | "outputs": [ 1697 | { 1698 | "data": { 1699 | "text/plain": [ 1700 | "array([[4.94065646e-324, 0.00000000e+000, 8.48798316e-314,\n", 1701 | " 0.00000000e+000],\n", 1702 | " [ nan, 1.48219694e-323, 8.48798316e-314,\n", 1703 | " 4.24399158e-314]])" 1704 | ] 1705 | }, 1706 | "execution_count": 197, 1707 | "metadata": {}, 1708 | "output_type": "execute_result" 1709 | } 1710 | ], 1711 | "source": [ 1712 | "np.empty((2, 4))" 1713 | ] 1714 | }, 1715 | { 1716 | "cell_type": "code", 1717 | "execution_count": 198, 1718 | "metadata": {}, 1719 | "outputs": [ 1720 | { 1721 | "data": { 1722 | "text/plain": [ 1723 | "array([[ 0, 1074266112],\n", 1724 | " [ 0, 1074266112]])" 1725 | ] 1726 | }, 1727 | "execution_count": 198, 1728 | "metadata": {}, 1729 | "output_type": "execute_result" 1730 | } 1731 | ], 1732 | "source": [ 1733 | "np.empty((2, 2), dtype=int)" 1734 | ] 1735 | }, 1736 | { 1737 | "cell_type": "markdown", 1738 | "metadata": {}, 1739 | "source": [ 1740 | "### Reshape" 1741 | ] 1742 | }, 1743 | { 1744 | "cell_type": "code", 1745 | "execution_count": 208, 1746 | "metadata": {}, 1747 | "outputs": [ 1748 | { 1749 | "name": "stdout", 1750 | "output_type": "stream", 1751 | "text": [ 1752 | "[0 1 2 3 4 5 6 7 8]\n", 1753 | "[[0 1 2]\n", 1754 | " [3 4 5]\n", 1755 | " [6 7 8]]\n" 1756 | ] 1757 | } 1758 | ], 1759 | "source": [ 1760 | "nums = np.arange(9)\n", 1761 | "print(nums)\n", 1762 | "new_arr = nums.reshape(3, 3)\n", 1763 | "print(new_arr)" 1764 | ] 1765 | }, 1766 | { 1767 | "cell_type": "code", 1768 | "execution_count": 209, 1769 | "metadata": {}, 1770 | "outputs": [ 1771 | { 1772 | "name": "stdout", 1773 | "output_type": "stream", 1774 | "text": [ 1775 | "[ 0 1 2 3 4 5 6 7 8 9 10 11]\n", 1776 | "[[ 0 1 2 3]\n", 1777 | " [ 4 5 6 7]\n", 1778 | " [ 8 9 10 11]]\n" 1779 | ] 1780 | } 1781 | ], 1782 | "source": [ 1783 | "nums = np.arange(12)\n", 1784 | "print(nums)\n", 1785 | "new_arr = nums.reshape(3, 4)\n", 1786 | "print(new_arr)" 1787 | ] 1788 | }, 1789 | { 1790 | "cell_type": "code", 1791 | "execution_count": 210, 1792 | "metadata": {}, 1793 | "outputs": [ 1794 | { 1795 | "name": "stdout", 1796 | "output_type": "stream", 1797 | "text": [ 1798 | "[[1 2 3]\n", 1799 | " [4 5 6]]\n", 1800 | "(2, 3)\n", 1801 | "[[1 2]\n", 1802 | " [3 4]\n", 1803 | " [5 6]]\n", 1804 | "[1 2 3 4 5 6]\n" 1805 | ] 1806 | } 1807 | ], 1808 | "source": [ 1809 | "# Reshape\n", 1810 | "# numpy.reshape(), numpy.flatten()\n", 1811 | "first_shape = np.array([(1,2,3), (4,5,6)])\n", 1812 | "print(first_shape)\n", 1813 | "print(first_shape.shape)\n", 1814 | "reshaped = first_shape.reshape(3,2)\n", 1815 | "print(reshaped)\n", 1816 | "flattened = reshaped.flatten()\n", 1817 | "print(flattened)\n" 1818 | ] 1819 | }, 1820 | { 1821 | "cell_type": "markdown", 1822 | "metadata": {}, 1823 | "source": [ 1824 | "### Concatenating Numpy arrays\n", 1825 | "By default the NumPy concatenate method joins the arrays along axis 0. To join the arrays horizontally, add parameter axis=1:" 1826 | ] 1827 | }, 1828 | { 1829 | "cell_type": "code", 1830 | "execution_count": 422, 1831 | "metadata": {}, 1832 | "outputs": [ 1833 | { 1834 | "name": "stdout", 1835 | "output_type": "stream", 1836 | "text": [ 1837 | "[0 1 2 3 4]\n" 1838 | ] 1839 | } 1840 | ], 1841 | "source": [ 1842 | "x = np.arange(2)\n", 1843 | "y = np.arange(2, 5)\n", 1844 | "z = np.concatenate((x, y))\n", 1845 | "print(z)" 1846 | ] 1847 | }, 1848 | { 1849 | "cell_type": "code", 1850 | "execution_count": 423, 1851 | "metadata": {}, 1852 | "outputs": [ 1853 | { 1854 | "name": "stdout", 1855 | "output_type": "stream", 1856 | "text": [ 1857 | "[[1 2 3]\n", 1858 | " [4 5 6]\n", 1859 | " [7 8 9]]\n" 1860 | ] 1861 | } 1862 | ], 1863 | "source": [ 1864 | "x = np.arange(1, 10).reshape(3,3)\n", 1865 | "print(x)" 1866 | ] 1867 | }, 1868 | { 1869 | "cell_type": "code", 1870 | "execution_count": 425, 1871 | "metadata": {}, 1872 | "outputs": [ 1873 | { 1874 | "name": "stdout", 1875 | "output_type": "stream", 1876 | "text": [ 1877 | "[[1 2 3 1 2 3]\n", 1878 | " [4 5 6 4 5 6]\n", 1879 | " [7 8 9 7 8 9]]\n" 1880 | ] 1881 | } 1882 | ], 1883 | "source": [ 1884 | "# concant\n", 1885 | "print(np.concatenate((x, x), axis=1))" 1886 | ] 1887 | }, 1888 | { 1889 | "cell_type": "markdown", 1890 | "metadata": {}, 1891 | "source": [ 1892 | "### Horizontal Stack" 1893 | ] 1894 | }, 1895 | { 1896 | "cell_type": "code", 1897 | "execution_count": 211, 1898 | "metadata": {}, 1899 | "outputs": [ 1900 | { 1901 | "name": "stdout", 1902 | "output_type": "stream", 1903 | "text": [ 1904 | "[5 7 9]\n", 1905 | "Horizontal Append: [1 2 3 4 5 6]\n" 1906 | ] 1907 | } 1908 | ], 1909 | "source": [ 1910 | " ## Horitzontal Stack\n", 1911 | "np_list_one = np.array([1,2,3])\n", 1912 | "np_list_two = np.array([4,5,6])\n", 1913 | "print(np_list_one + np_list_two)\n", 1914 | "print('Horizontal Append:', np.hstack((np_list_one, np_list_two)))" 1915 | ] 1916 | }, 1917 | { 1918 | "cell_type": "markdown", 1919 | "metadata": {}, 1920 | "source": [ 1921 | "### Vertical Stack" 1922 | ] 1923 | }, 1924 | { 1925 | "cell_type": "code", 1926 | "execution_count": 212, 1927 | "metadata": {}, 1928 | "outputs": [ 1929 | { 1930 | "name": "stdout", 1931 | "output_type": "stream", 1932 | "text": [ 1933 | "Vertical Append: [[1 2 3]\n", 1934 | " [4 5 6]]\n" 1935 | ] 1936 | } 1937 | ], 1938 | "source": [ 1939 | " ## Vertical Stack\n", 1940 | "print('Vertical Append:', np.vstack((np_list_one, np_list_two)))" 1941 | ] 1942 | }, 1943 | { 1944 | "cell_type": "markdown", 1945 | "metadata": {}, 1946 | "source": [ 1947 | "## Generating Random Numbers" 1948 | ] 1949 | }, 1950 | { 1951 | "cell_type": "code", 1952 | "execution_count": 224, 1953 | "metadata": {}, 1954 | "outputs": [ 1955 | { 1956 | "data": { 1957 | "text/plain": [ 1958 | "0.7725994942663019" 1959 | ] 1960 | }, 1961 | "execution_count": 224, 1962 | "metadata": {}, 1963 | "output_type": "execute_result" 1964 | } 1965 | ], 1966 | "source": [ 1967 | "# Generate a random float number between 0 and 0.999..\n", 1968 | "random_float = np.random.random()\n", 1969 | "random_float" 1970 | ] 1971 | }, 1972 | { 1973 | "cell_type": "code", 1974 | "execution_count": 225, 1975 | "metadata": {}, 1976 | "outputs": [ 1977 | { 1978 | "data": { 1979 | "text/plain": [ 1980 | "array([0.86088443, 0.19384869, 0.71472838, 0.4162142 , 0.97043783])" 1981 | ] 1982 | }, 1983 | "execution_count": 225, 1984 | "metadata": {}, 1985 | "output_type": "execute_result" 1986 | } 1987 | ], 1988 | "source": [ 1989 | " # Generate a random numpy array of float numbers\n", 1990 | "random_floats = np.random.random(5)\n", 1991 | "random_floats" 1992 | ] 1993 | }, 1994 | { 1995 | "cell_type": "code", 1996 | "execution_count": 226, 1997 | "metadata": {}, 1998 | "outputs": [ 1999 | { 2000 | "data": { 2001 | "text/plain": [ 2002 | "1" 2003 | ] 2004 | }, 2005 | "execution_count": 226, 2006 | "metadata": {}, 2007 | "output_type": "execute_result" 2008 | } 2009 | ], 2010 | "source": [ 2011 | "# Generating a random integers between 0 and 10\n", 2012 | "\n", 2013 | "random_int = np.random.randint(0, 11)\n", 2014 | "random_int" 2015 | ] 2016 | }, 2017 | { 2018 | "cell_type": "code", 2019 | "execution_count": null, 2020 | "metadata": {}, 2021 | "outputs": [], 2022 | "source": [ 2023 | "# Random numbers between [0,1) of shape 2,3\n", 2024 | "np_random_nums = np.random.random(size=(2, 3))\n", 2025 | "print(np_random_nums)\n" 2026 | ] 2027 | }, 2028 | { 2029 | "cell_type": "code", 2030 | "execution_count": 227, 2031 | "metadata": {}, 2032 | "outputs": [ 2033 | { 2034 | "data": { 2035 | "text/plain": [ 2036 | "array([0.06400357, 0.42148779, 0.25501439, 0.33199159, 0.22413825,\n", 2037 | " 0.20147948])" 2038 | ] 2039 | }, 2040 | "execution_count": 227, 2041 | "metadata": {}, 2042 | "output_type": "execute_result" 2043 | } 2044 | ], 2045 | "source": [ 2046 | "np_random_nums.shape\n", 2047 | "np_random_nums.flatten()" 2048 | ] 2049 | }, 2050 | { 2051 | "cell_type": "code", 2052 | "execution_count": 234, 2053 | "metadata": {}, 2054 | "outputs": [ 2055 | { 2056 | "data": { 2057 | "text/plain": [ 2058 | "array([[0.93857347, 0.38148417],\n", 2059 | " [0.28117651, 0.75796414]])" 2060 | ] 2061 | }, 2062 | "execution_count": 234, 2063 | "metadata": {}, 2064 | "output_type": "execute_result" 2065 | } 2066 | ], 2067 | "source": [ 2068 | "## Random numbers between [0, 1] of shape 2, 2\n", 2069 | "rand = np.random.rand(2,2)\n", 2070 | "rand" 2071 | ] 2072 | }, 2073 | { 2074 | "cell_type": "code", 2075 | "execution_count": 235, 2076 | "metadata": {}, 2077 | "outputs": [ 2078 | { 2079 | "data": { 2080 | "text/plain": [ 2081 | "array([6, 8, 8, 2])" 2082 | ] 2083 | }, 2084 | "execution_count": 235, 2085 | "metadata": {}, 2086 | "output_type": "execute_result" 2087 | } 2088 | ], 2089 | "source": [ 2090 | " # Generating a random integers between 2 and 11, and creating a one row array\n", 2091 | "random_int = np.random.randint(2,10, size=4)\n", 2092 | "random_int" 2093 | ] 2094 | }, 2095 | { 2096 | "cell_type": "code", 2097 | "execution_count": 236, 2098 | "metadata": {}, 2099 | "outputs": [ 2100 | { 2101 | "data": { 2102 | "text/plain": [ 2103 | "array([[2, 7, 2],\n", 2104 | " [5, 2, 2],\n", 2105 | " [8, 9, 9]])" 2106 | ] 2107 | }, 2108 | "execution_count": 236, 2109 | "metadata": {}, 2110 | "output_type": "execute_result" 2111 | } 2112 | ], 2113 | "source": [ 2114 | "# Generating a random integers between 0 and 10, [0, 10)\n", 2115 | "random_int = np.random.randint(2,10, size=(3,3))\n", 2116 | "random_int" 2117 | ] 2118 | }, 2119 | { 2120 | "cell_type": "code", 2121 | "execution_count": 379, 2122 | "metadata": {}, 2123 | "outputs": [ 2124 | { 2125 | "data": { 2126 | "text/plain": [ 2127 | "array([[3, 2, 5],\n", 2128 | " [3, 2, 8],\n", 2129 | " [6, 4, 8]])" 2130 | ] 2131 | }, 2132 | "execution_count": 379, 2133 | "metadata": {}, 2134 | "output_type": "execute_result" 2135 | } 2136 | ], 2137 | "source": [ 2138 | "# Generating a random integers between 0 and 10, [0, 10)\n", 2139 | "random_int = np.random.randint(2,10,(3,3))\n", 2140 | "random_int" 2141 | ] 2142 | }, 2143 | { 2144 | "cell_type": "code", 2145 | "execution_count": 237, 2146 | "metadata": {}, 2147 | "outputs": [ 2148 | { 2149 | "name": "stdout", 2150 | "output_type": "stream", 2151 | "text": [ 2152 | "['i' 'u' 'e' 'o' 'o' 'i' 'o' 'o' 'o' 'e']\n" 2153 | ] 2154 | } 2155 | ], 2156 | "source": [ 2157 | "print(np.random.choice(['a', 'e', 'i', 'o', 'u'], size=10))" 2158 | ] 2159 | }, 2160 | { 2161 | "cell_type": "code", 2162 | "execution_count": 242, 2163 | "metadata": {}, 2164 | "outputs": [ 2165 | { 2166 | "name": "stdout", 2167 | "output_type": "stream", 2168 | "text": [ 2169 | "['y' 't' 'y' 'P' 'h']\n" 2170 | ] 2171 | } 2172 | ], 2173 | "source": [ 2174 | "print(np.random.choice(list('Python'), size=5))" 2175 | ] 2176 | }, 2177 | { 2178 | "cell_type": "code", 2179 | "execution_count": 256, 2180 | "metadata": {}, 2181 | "outputs": [ 2182 | { 2183 | "name": "stdout", 2184 | "output_type": "stream", 2185 | "text": [ 2186 | "6iyALODrQBQMT9FzekHPSkDg\n", 2187 | "24\n" 2188 | ] 2189 | } 2190 | ], 2191 | "source": [ 2192 | "id = np.random.choice(list('abcdefghijklmnopkrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'), size=24).tolist()\n", 2193 | "id = ''.join(id)\n", 2194 | "print(id)\n", 2195 | "print(len(id))" 2196 | ] 2197 | }, 2198 | { 2199 | "cell_type": "markdown", 2200 | "metadata": {}, 2201 | "source": [ 2202 | "### Generating random data" 2203 | ] 2204 | }, 2205 | { 2206 | "cell_type": "code", 2207 | "execution_count": 280, 2208 | "metadata": {}, 2209 | "outputs": [ 2210 | { 2211 | "name": "stdout", 2212 | "output_type": "stream", 2213 | "text": [ 2214 | "[-4.84126607e-01 -7.59972341e-01 -2.78277129e-01 -6.98134459e-01\n", 2215 | " -5.03255576e-01 -1.01803718e-01 -1.26386154e-02 -4.21013460e-02\n", 2216 | " -2.29533603e-01 -8.63796735e-01 -5.32052900e-01 -3.17144832e-02\n", 2217 | " -6.46990408e-01 -8.40503451e-01 -8.08687444e-01 -4.50651678e-01\n", 2218 | " -9.78298188e-01 -2.29738560e-01 -6.07430977e-01 -7.76641785e-01\n", 2219 | " -7.08403321e-01 -1.96855920e-01 -9.62818858e-01 -2.28679146e-01\n", 2220 | " -2.37703087e-01 -9.18458781e-01 -1.68963611e-01 -8.27957836e-01\n", 2221 | " -8.63567631e-01 -8.33598804e-01 -9.97241991e-01 -4.66543311e-01\n", 2222 | " -6.31024148e-01 -8.56746769e-01 -1.31271423e-01 -4.93798334e-01\n", 2223 | " -6.51291931e-01 -4.67279422e-01 -1.90788098e-01 -8.29065194e-01\n", 2224 | " -1.34323391e-01 -4.14555204e-01 -3.84468105e-01 -4.11457827e-01\n", 2225 | " -7.78680881e-01 -8.15261461e-01 -5.22647684e-01 -6.43657265e-01\n", 2226 | " -7.59163651e-01 -4.18730704e-01 -1.43815410e-01 -4.43102264e-01\n", 2227 | " -9.34767706e-02 -2.83204992e-01 -9.95627224e-02 -7.98289273e-01\n", 2228 | " -4.12663400e-01 -6.45322251e-01 -2.56294893e-01 -5.50120332e-01\n", 2229 | " -5.87818843e-01 -8.57021217e-01 -6.45445525e-01 -3.32196555e-01\n", 2230 | " -4.91227431e-01 -4.80868085e-01 -3.51834128e-01 -7.24162448e-01\n", 2231 | " -7.79253739e-01 -3.22414203e-02 -8.62168698e-01 -9.19001815e-01\n", 2232 | " -2.96349654e-01 -3.52874678e-01 -6.29026748e-01 -9.23213754e-01\n", 2233 | " -7.20470057e-01 -9.37775430e-01 -1.08786946e-02 -3.04592647e-01\n", 2234 | " -5.68106900e-01 -8.02700269e-02 -4.34554248e-01 -2.88725028e-01\n", 2235 | " -4.93230256e-01 -1.73522048e-01 -1.75535067e-02 -5.87872139e-01\n", 2236 | " -8.52702672e-01 -5.98155482e-01 -2.02288082e-01 -9.99813286e-01\n", 2237 | " -4.54052179e-02 -3.37485525e-01 -6.89352162e-01 -5.10178630e-01\n", 2238 | " -7.35927256e-01 -5.64068716e-01 -3.61780900e-01 -3.25922711e-01\n", 2239 | " -6.77226656e-01 -9.77033760e-01 -6.22805679e-01 -6.24622002e-01\n", 2240 | " -5.87975581e-01 -3.42745268e-02 -2.99030244e-02 -8.51285867e-01\n", 2241 | " -8.65673900e-02 -2.15403563e-02 -7.43352493e-01 -2.58976100e-01\n", 2242 | " -8.24545150e-01 -5.28034361e-01 -3.92795402e-01 -8.20411520e-01\n", 2243 | " -4.52815906e-01 -2.61168705e-01 -3.32582240e-01 -3.69253506e-01\n", 2244 | " -8.79567758e-01 -4.36104859e-02 -8.59082959e-01 -3.87761991e-01\n", 2245 | " -8.70468599e-01 -4.60296661e-01 -1.32566370e-01 -3.69714568e-01\n", 2246 | " -9.14133137e-02 -3.41455733e-01 -5.44600301e-01 -5.33137732e-01\n", 2247 | " -7.88362489e-01 -4.61389719e-02 -6.89074005e-01 -6.00054120e-01\n", 2248 | " -9.70210456e-01 -6.11993889e-01 -8.83294243e-01 -8.08574460e-01\n", 2249 | " -2.10461694e-01 -5.27809936e-01 -1.62260920e-01 -6.77151094e-01\n", 2250 | " -6.16803900e-01 -1.67865411e-01 -9.32368467e-01 -1.79577548e-01\n", 2251 | " -7.94610042e-01 -3.45069618e-01 -4.67130504e-01 -2.10714511e-01\n", 2252 | " -2.33502126e-01 -4.24595991e-01 -4.19310701e-01 -2.65638973e-01\n", 2253 | " -3.89436755e-01 -4.41008364e-01 -5.02304647e-01 -4.24901944e-02\n", 2254 | " -7.78760054e-01 -5.62905754e-01 -5.81212605e-01 -4.13443595e-01\n", 2255 | " -3.16217073e-01 -7.77228895e-01 -4.38142383e-01 -7.96112042e-02\n", 2256 | " -7.65652907e-01 -8.89196029e-01 -7.20767585e-01 -4.47259264e-01\n", 2257 | " -5.47518517e-01 -5.59614275e-01 -3.45801435e-01 -8.35146013e-02\n", 2258 | " -8.14137347e-01 -6.51426366e-01 -6.14834986e-01 -8.46629653e-01\n", 2259 | " -1.09495245e-01 -6.75565831e-02 -7.91999812e-04 -7.62791937e-01\n", 2260 | " -9.28248098e-01 -8.51626427e-01 -1.79134350e-01 -7.03218197e-02\n", 2261 | " -6.44101923e-01 -3.75038290e-02 -2.03048407e-01 -6.46507282e-01\n", 2262 | " -1.49047085e-01 -3.58994300e-01 -5.53516417e-01 -5.48074417e-01\n", 2263 | " -3.78802324e-02 -7.06977164e-01 -3.30305168e-01 -1.95789814e-01\n", 2264 | " -6.14616548e-01 -5.35709987e-01 -3.57728630e-01 -4.12218774e-01\n", 2265 | " -2.66774128e-01 -1.44353479e-01 -4.58256682e-01 -4.05804074e-02\n", 2266 | " -7.18864410e-01 -9.33243201e-01 -6.15646268e-01 -3.59070572e-02\n", 2267 | " -2.36066635e-01 -8.03108010e-01 -2.02943629e-02 -2.97582660e-01\n", 2268 | " -2.00764074e-01 -9.46130896e-01 -2.77342585e-01 -5.16373694e-01\n", 2269 | " -2.05073682e-01 -2.83942288e-01 -8.23581239e-01 -8.12799515e-02\n", 2270 | " -4.22293537e-01 -6.14273890e-01 -7.72293603e-01 -2.16460805e-01\n", 2271 | " -2.92976092e-02 -2.64479626e-01 -3.90136385e-01 -4.96637901e-02\n", 2272 | " -2.88428400e-01 -5.43527352e-01 -6.78346159e-01 -8.11294634e-01\n", 2273 | " -1.26319250e-01 -2.77110780e-01 -2.19210864e-02 -9.24796619e-01\n", 2274 | " -6.85275942e-01 -5.93537458e-01 -3.74576484e-02 -4.09213416e-01\n", 2275 | " -3.19916216e-01 -7.29137631e-01 -7.42511693e-01 -6.57228284e-01\n", 2276 | " -9.16003053e-01 -6.04844069e-02 -5.94838941e-01 -7.99498383e-01\n", 2277 | " -6.56185965e-01 -8.04210962e-01 -7.44160722e-01 -2.42404033e-01\n", 2278 | " -7.61977955e-01 -3.01156569e-01 -4.06634481e-01 -8.54917106e-01\n", 2279 | " -2.36291387e-01 -1.47127505e-01 -4.40125419e-02 -4.10006506e-02\n", 2280 | " -2.93629203e-01 -7.08655461e-01 -9.62088332e-01 -6.09769581e-01\n", 2281 | " -2.66873392e-01 -5.93613870e-02 -8.86459638e-01 -4.57758060e-01\n", 2282 | " -5.25226282e-01 -9.54271696e-01 -3.49322580e-01 -1.27420307e-01\n", 2283 | " -5.38147393e-01 -4.76734277e-01 -8.22210131e-01 -8.78881510e-01\n", 2284 | " -3.86152157e-01 -2.83589875e-01 -7.12496627e-01 -5.00549493e-01\n", 2285 | " -4.19406121e-02 -9.66676457e-01 -7.64186584e-01 -8.96946746e-01\n", 2286 | " -1.78007567e-01 -7.75654541e-03 -8.40270993e-01 -2.48099097e-01\n", 2287 | " -7.12621025e-01 -6.71255349e-01 -7.01519055e-02 -2.87476863e-01\n", 2288 | " -1.87925496e-01 -5.45238562e-01 -6.72737322e-01 -8.61693254e-01\n", 2289 | " -3.74621820e-01 -3.20164926e-01 -6.96025709e-02 -8.74846062e-01\n", 2290 | " -2.62939554e-01 -4.53459984e-01 -5.42669893e-01 -2.47081620e-01\n", 2291 | " -3.92724485e-01 -8.97245556e-01 -5.80843602e-01 -4.32980636e-03\n", 2292 | " -2.32444776e-01 -2.37419622e-01 -7.77938644e-02 -2.70614532e-01\n", 2293 | " -1.52015310e-01 -5.98916586e-01 -5.99855341e-01 -4.29681746e-02\n", 2294 | " -2.42506360e-01 -5.28684547e-01 -5.10403370e-01 -9.83409248e-01\n", 2295 | " -7.70266411e-01 -5.28697812e-01 -7.06201261e-01 -1.81839140e-02\n", 2296 | " -8.84477780e-01 -4.94442003e-01 -9.90087401e-01 -7.27481613e-01\n", 2297 | " -7.75569133e-01 -3.94910675e-01 -1.12781054e-01 -4.33556503e-01\n", 2298 | " -3.55897455e-01 -7.20076618e-01 -6.91133511e-01 -5.00994757e-01\n", 2299 | " -4.31440337e-01 -4.53671079e-01 -7.39953653e-01 -8.54026610e-01\n", 2300 | " -6.31627636e-01 -2.15880518e-01 -4.03866980e-01 -8.18126960e-01\n", 2301 | " -7.66782260e-01 -9.58077726e-02 -6.03812153e-01 -1.46299105e-01\n", 2302 | " -2.25289025e-02 -6.42132701e-01 -9.87082317e-01 -2.72211249e-01\n", 2303 | " -5.14561865e-01 -1.12578184e-01 -8.30770910e-01 -7.56752450e-01\n", 2304 | " -5.28358264e-01 -8.64224210e-01 -6.39666002e-01 -9.84436275e-01\n", 2305 | " -1.98219569e-01 -8.99295918e-01 -4.04142056e-01 -7.37768687e-01\n", 2306 | " -9.69985029e-01 -8.90304847e-01 -3.00784832e-01 -1.08937686e-01\n", 2307 | " -9.45322251e-01 -7.18563356e-01 -6.01568294e-01 -2.13173785e-02\n", 2308 | " -5.57332052e-01 -1.75139123e-01 -7.18880124e-01 -5.31830292e-01\n", 2309 | " -1.74138360e-01 -2.31307910e-01 -7.61433974e-01 -7.47282512e-01\n", 2310 | " -4.51527015e-01 -6.19849952e-02 -8.80072062e-01 -2.27938012e-01\n", 2311 | " -2.62399455e-01 -1.49224353e-01 -1.10799632e-01 -1.16574543e-01\n", 2312 | " -9.90841014e-02 -1.92951598e-02 -6.67570459e-01 -7.09886713e-02\n", 2313 | " -5.24396885e-02 -3.51817721e-01 -3.35409256e-01 -6.41441445e-01\n", 2314 | " -2.54696074e-01 -3.97439054e-01 -2.13681023e-01 -8.46486394e-01\n", 2315 | " -1.85407342e-01 -2.76618381e-01 -4.54054694e-01 -7.40283486e-01\n", 2316 | " -9.02325795e-01 -5.15166683e-01 -8.55378441e-01 -2.38226833e-01\n", 2317 | " -7.54410668e-02 -1.79678696e-01 -6.69541091e-01 -8.53995651e-01\n", 2318 | " -9.92086747e-01 -3.36341868e-01 -8.12387921e-01 -2.83445676e-01\n", 2319 | " -4.24567186e-01 -5.29982517e-01 -2.32460758e-01 -1.89337771e-02\n", 2320 | " -8.71405855e-01 -4.49481312e-01 -6.86777115e-01 -9.72044620e-01\n", 2321 | " -9.70653733e-01 -4.22377995e-01 -9.17084557e-01 -9.56071738e-01\n", 2322 | " -8.27121466e-01 -5.40135320e-01 -4.99232341e-01 -8.47334803e-02\n", 2323 | " -5.80330816e-01 -8.92221186e-01 -7.69084076e-01 -5.45913138e-02\n", 2324 | " -4.04847962e-01 -6.44657384e-01 -1.07288482e-01 -6.99425794e-01\n", 2325 | " -1.18905300e-01 -8.78866267e-01 -6.17706428e-02 -6.23136426e-02\n", 2326 | " -6.54730151e-01 -9.82451240e-01 -6.46958566e-01 -8.19188985e-01\n", 2327 | " -7.33932899e-01 -3.74317123e-01 -5.56901814e-01 -2.63687308e-01\n", 2328 | " -3.62962962e-01 -6.99442794e-01 -6.76123461e-01 -2.01853593e-01\n", 2329 | " -4.67836952e-01 -8.72619407e-01 -4.13276883e-01 -8.62021061e-01\n", 2330 | " -1.31291835e-01 -8.70729805e-01 -3.30591880e-01 -1.03189628e-01\n", 2331 | " -9.01876475e-01 -4.69767820e-01 -4.19091263e-02 -7.22057221e-01\n", 2332 | " -7.18932060e-01 -5.29947600e-01 -5.22967063e-02 -1.98986308e-01\n", 2333 | " -7.28814367e-01 -7.68414644e-01 -8.01383250e-01 -5.70274500e-01\n", 2334 | " -1.92094322e-01 -8.47697794e-01 -3.82940321e-01 -5.27709614e-01\n", 2335 | " -3.53679190e-01 -5.96514802e-01 -2.40177789e-01 -6.78992473e-01\n", 2336 | " -2.77832607e-01 -4.03416197e-02 -4.20758249e-01 -3.65439332e-01\n", 2337 | " -4.75198800e-01 -5.14049623e-01 -8.31453180e-01 -3.12451042e-01\n", 2338 | " -3.93828136e-01 -4.47114240e-01 -6.93573021e-01 -6.05508592e-01\n", 2339 | " -5.66806144e-01 -3.42514904e-01 -2.74106373e-01 -6.87046543e-01\n", 2340 | " -3.85263503e-01 -6.29625731e-01 -5.14788327e-01 -9.18082500e-01\n", 2341 | " -4.21322376e-01 -1.03557881e-01 -4.65946535e-02 -6.65364869e-01\n", 2342 | " -8.29873899e-01 -2.33594041e-02 -2.03294998e-01 -7.06823548e-01\n", 2343 | " -9.95509956e-01 -7.35795736e-01 -4.50547331e-02 -5.25733207e-01\n", 2344 | " -7.05685986e-01 -6.57607284e-01 -7.70803165e-01 -4.34695594e-01\n", 2345 | " -7.82832936e-01 -3.04108447e-01 -5.27236887e-01 -8.40990193e-01\n", 2346 | " -1.15936584e-02 -6.02270237e-01 -6.10560332e-01 -5.57146551e-01\n", 2347 | " -7.82428902e-01 -3.71726915e-02 -5.75500945e-01 -4.13836606e-01\n", 2348 | " -6.60779182e-01 -5.19442306e-01 -9.59095782e-02 -8.32386484e-01\n", 2349 | " -2.06598413e-01 -5.37863594e-01 -7.43058815e-01 -3.13530240e-01\n", 2350 | " -7.55667425e-01 -8.46625552e-01 -6.69843852e-01 -7.07117070e-01\n", 2351 | " -2.69630236e-01 -2.33995258e-01 -8.94168177e-01 -2.32119845e-01\n", 2352 | " -7.43431604e-01 -7.73443791e-01 -2.94247636e-01 -1.26247691e-01\n", 2353 | " -3.92758451e-01 -6.08694949e-02 -3.34573569e-01 -1.45354533e-01\n", 2354 | " -4.79377810e-01 -1.14279378e-01 -8.84852052e-01 -6.13598959e-01\n", 2355 | " -7.10589531e-01 -8.50764153e-01 -8.50586080e-01 -5.57135705e-01\n", 2356 | " -5.57564467e-01 -8.92882537e-02 -5.89097077e-02 -9.80923403e-01\n", 2357 | " -7.40865275e-01 -9.91553861e-01 -1.18587375e-01 -4.67889802e-01\n", 2358 | " -8.38865439e-01 -1.69526898e-01 -9.28258674e-01 -1.46375176e-01\n", 2359 | " -9.83841184e-01 -5.45109647e-01 -6.46033176e-01 -3.51001337e-01\n", 2360 | " -4.49783983e-01 -6.46193769e-01 -1.39413501e-02 -5.70656204e-01\n", 2361 | " -5.15304040e-01 -3.71189541e-01 -9.00839348e-01 -1.18579536e-01\n", 2362 | " -4.33997380e-01 -3.24310787e-01 -7.73603484e-02 -3.57658994e-01\n", 2363 | " -9.28265485e-01 -9.16421463e-01 -4.31768734e-01 -8.83334783e-01\n", 2364 | " -9.57115518e-01 -6.16338013e-01 -2.18875783e-02 -4.50289751e-01\n", 2365 | " -1.15188106e-01 -5.47144420e-01 -6.93445429e-02 -9.70085455e-01\n", 2366 | " -2.80549889e-01 -4.46421116e-02 -5.30433268e-01 -7.46144953e-01\n", 2367 | " -3.48495778e-01 -6.18025917e-01 -6.61457730e-01 -6.42612132e-01\n", 2368 | " -5.88330579e-01 -5.49104801e-01 -8.33295333e-01 -3.23726241e-01\n", 2369 | " -1.59801909e-01 -2.65707922e-01 -5.80414731e-01 -8.33863625e-01\n", 2370 | " -2.88180788e-01 -9.47340787e-01 -4.98053627e-01 -5.02039654e-02\n", 2371 | " -6.48504444e-01 -2.66326015e-01 -6.52934195e-02 -8.83829246e-01\n", 2372 | " -3.90849183e-01 -4.36851129e-01 -5.06417190e-01 -4.88946100e-01\n", 2373 | " -6.01212390e-01 -8.64307152e-01 -7.89879172e-01 -9.43628463e-01\n", 2374 | " -1.68895738e-01 -9.84794689e-01 -7.72814420e-01 -1.57539788e-01\n", 2375 | " -8.39766304e-02 -6.76521922e-01 -3.17244649e-01 -9.73506738e-01\n", 2376 | " -6.13286098e-02 -7.88243602e-01 -8.49908659e-01 -9.08263854e-01\n", 2377 | " -3.31119126e-01 -6.67762684e-01 -4.73106327e-01 -1.72567175e-02\n", 2378 | " -8.74916233e-01 -4.30733759e-01 -7.08618796e-01 -4.39379605e-01\n", 2379 | " -1.30282792e-01 -3.26600614e-01 -5.90292994e-02 -2.56687701e-01\n", 2380 | " -4.89712982e-01 -8.61272975e-01 -8.96239652e-01 -6.80384954e-01\n", 2381 | " -6.44314441e-01 -1.79274860e-01 -4.96402254e-01 -4.79175728e-01\n", 2382 | " -2.82039134e-03 -3.66044108e-01 -4.16858093e-01 -1.71733063e-01\n", 2383 | " -8.47947435e-01 -1.39170206e-01 -7.34291460e-01 -7.08305107e-01\n", 2384 | " -3.22849108e-01 -8.78838543e-01 -8.20567037e-01 -2.98921303e-02\n", 2385 | " -3.73173313e-01 -7.46028102e-01 -1.00253262e-01 -6.50442224e-01\n", 2386 | " -8.45276681e-01 -1.96779660e-02 -8.84150673e-01 -4.27004243e-01\n", 2387 | " -2.49925389e-01 -6.86074100e-02 -8.89969000e-01 -4.72194771e-01\n", 2388 | " -8.67482668e-01 -2.27952650e-01 -7.95707606e-01 -7.73294737e-01\n", 2389 | " -1.55595556e-03 -1.54809564e-01 -3.49462023e-01 -3.59482183e-01\n", 2390 | " -4.01933898e-01 -4.78942362e-02 -1.41250089e-01 -3.89278053e-01\n", 2391 | " -8.63371036e-01 -6.31239153e-01 -3.84456895e-02 -8.78461767e-01\n", 2392 | " -9.00836549e-01 -9.69037566e-01 -3.77515126e-01 -6.84809355e-01\n", 2393 | " -9.72736135e-02 -2.88452555e-02 -7.35343924e-01 -1.33546907e-01\n", 2394 | " -6.35320408e-01 -7.46392621e-01 -4.03112196e-01 -8.73293791e-02\n", 2395 | " -8.64889903e-01 -7.49258173e-01 -9.62955413e-01 -6.97771928e-01\n", 2396 | " -2.87791686e-01 -8.97265700e-01 -7.00833506e-01 -4.47034675e-01\n", 2397 | " -2.08871393e-01 -1.07947263e-02 -5.73826746e-01 -4.78217934e-01\n", 2398 | " -1.27078461e-01 -5.31420652e-01 -7.86139316e-01 -1.10529716e-01\n", 2399 | " -2.70640277e-01 -6.23057558e-01 -5.12374939e-01 -7.98161867e-01\n", 2400 | " -9.54554358e-01 -6.76709472e-01 -3.65915855e-01 -7.17279757e-01\n", 2401 | " -1.47350429e-02 -8.98681829e-01 -3.54953603e-01 -4.53801033e-01\n", 2402 | " -9.96798601e-01 -1.59615328e-01 -5.92531517e-01 -4.85765821e-01\n", 2403 | " -2.74631545e-01 -2.76626379e-01 -2.02738730e-01 -8.85659002e-01\n", 2404 | " -3.46165272e-02 -1.29813416e-01 -1.14868044e-01 -3.48864146e-01\n", 2405 | " -7.10627243e-01 -2.95945843e-01 -2.26758967e-01 -7.70753813e-01\n", 2406 | " -1.44708655e-01 -5.09381500e-01 -7.67175708e-01 -3.35858008e-02\n", 2407 | " -7.74077861e-02 -2.83462580e-01 -4.59584257e-01 -6.32904302e-01\n", 2408 | " -1.17728578e-01 -2.26521497e-01 -2.32764850e-01 -4.93161250e-01\n", 2409 | " -9.59049054e-01 -4.41799054e-01 -1.52058122e-01 -4.92744878e-01\n", 2410 | " -2.58093278e-01 -5.27241258e-01 -4.40285428e-01 -9.53860462e-01\n", 2411 | " -6.89619899e-01 -1.01814186e-01 -6.91248549e-01 -5.46438320e-01\n", 2412 | " -4.30322942e-01 -2.34536805e-01 -7.51868295e-01 -9.27322121e-01\n", 2413 | " -1.40260345e-01 -2.85813706e-01 -2.28618943e-01 -8.29180507e-01\n", 2414 | " -5.27556004e-01 -5.44042160e-01 -4.96627090e-01 -8.17071947e-02\n", 2415 | " -8.31222274e-03 -9.68354239e-01 -8.15666367e-01 -1.59442809e-01\n", 2416 | " -9.12428224e-01 -2.44878162e-02 -2.95587787e-01 -9.88607944e-01\n", 2417 | " -3.01998835e-01 -6.91380041e-01 -4.98548826e-01 -8.60292486e-01\n", 2418 | " -3.96487956e-01 -7.86594676e-01 -7.17174647e-01 -3.03942041e-01\n", 2419 | " -8.01189946e-01 -7.11210063e-01 -9.13114329e-01 -3.99608293e-01\n", 2420 | " -7.60107970e-01 -1.18451161e-01 -4.08632678e-01 -7.78243759e-01\n", 2421 | " -9.92712803e-01 -8.83258096e-01 -7.69469421e-01 -4.47487947e-01\n", 2422 | " -8.06951466e-01 -3.17296972e-01 -9.11222697e-01 -6.00268142e-01\n", 2423 | " -7.63412155e-01 -1.97138922e-01 -8.72047104e-01 -8.79399509e-01\n", 2424 | " -2.18479345e-01 -6.48213520e-01 -2.12759140e-01 -3.35306233e-01\n", 2425 | " -9.11789507e-01 -2.89508349e-02 -6.95327996e-02 -1.98152574e-01\n", 2426 | " -1.61626433e-01 -3.79480016e-01 -7.99436947e-02 -5.84212487e-01\n", 2427 | " -1.06575846e-01 -5.41725700e-01 -2.18218961e-01 -5.24400304e-01\n", 2428 | " -3.02783512e-01 -5.67361540e-01 -6.18802563e-01 -3.47970818e-01\n", 2429 | " -2.18223151e-01 -9.18545005e-01 -7.35909953e-01 -4.11355143e-01\n", 2430 | " -7.06112573e-01 -4.18982602e-01 -6.60586257e-03 -1.14897631e-01\n", 2431 | " -4.22328481e-01 -9.31699458e-01 -1.77138245e-01 -4.83673530e-02\n", 2432 | " -8.72215964e-01 -3.81009855e-01 -8.51751879e-01 -8.88679795e-01\n", 2433 | " -6.33050534e-01 -7.47042885e-01 -2.64014486e-01 -7.73801667e-01\n", 2434 | " -1.53687327e-01 -7.59445105e-01 -3.40582166e-01 -8.25242497e-01\n", 2435 | " -4.18143384e-01 -4.96197899e-01 -4.28619423e-01 -6.15061360e-01\n", 2436 | " -6.96942745e-02 -6.89492206e-01 -9.18735731e-02 -2.52900410e-01\n", 2437 | " -6.33610962e-01 -5.41402721e-01 -1.27202849e-01 -8.19529458e-01\n", 2438 | " -8.45731997e-01 -4.32621397e-01 -1.83230836e-02 -5.00125928e-01\n", 2439 | " -3.84794287e-01 -3.74185363e-01 -3.10025923e-01 -3.26197429e-01\n", 2440 | " -1.24718074e-01 -5.67003823e-01 -5.29965979e-02 -2.21769745e-01\n", 2441 | " -7.25775735e-01 -7.10658078e-01 -6.01422356e-01 -2.91527352e-02\n", 2442 | " -9.76589767e-01 -9.19705645e-01 -5.65063763e-01 -4.03316694e-01\n", 2443 | " -5.98594022e-02 -2.05568916e-01 -9.61826197e-01 -9.02861477e-01\n", 2444 | " -8.45636553e-01 -2.03399391e-01 -6.69235011e-01 -2.01066302e-01\n", 2445 | " -9.95296744e-01 -4.39295186e-01 -3.70560303e-01 -4.83517838e-01\n", 2446 | " -1.78513546e-01 -6.24123053e-01 -3.92063197e-01 -8.84922594e-01\n", 2447 | " -2.33499232e-01 -8.73266324e-01 -2.43178990e-01 -6.82833443e-01\n", 2448 | " -9.85354109e-01 -5.50968791e-01 -2.84408461e-01 -9.88142637e-02\n", 2449 | " -2.37460377e-01 -4.50668003e-01 -6.43129892e-01 -4.41694636e-01\n", 2450 | " -1.14977745e-01 -1.37620882e-01 -9.90312373e-01 -3.26475047e-01\n", 2451 | " -8.46868273e-01 -1.96237070e-01 -1.54987143e-01 -1.36492337e-01\n", 2452 | " -7.09406552e-01 -3.50489269e-01 -9.03504805e-01 -2.55719509e-02\n", 2453 | " -5.90578669e-01 -4.54983934e-01 -4.96136711e-01 -3.64032030e-01\n", 2454 | " -9.21841881e-01 -9.10071160e-01 -9.22250918e-01 -8.15934303e-01\n", 2455 | " -5.97292786e-01 -6.03233237e-01 -6.88624573e-01 -2.31763757e-01\n", 2456 | " -1.55518699e-01 -9.06701036e-01 -8.71255863e-01 -9.81714753e-01\n", 2457 | " -8.63961749e-01 -6.36297275e-01 -3.90008474e-01 -5.20415160e-01\n", 2458 | " -2.76023078e-02 -9.89672080e-01 -3.22224862e-01 -8.21914829e-01\n", 2459 | " -5.72124289e-01 -2.70209842e-01 -9.42281019e-01 -9.17496535e-01\n", 2460 | " -2.35644862e-01 -5.93425265e-01 -1.15296273e-01 -5.35889137e-01\n", 2461 | " -3.12760262e-01 -2.69351728e-01 -4.97593758e-01 -1.26119005e-01\n", 2462 | " -3.90964198e-01 -8.35955409e-01 -5.38431571e-01 -9.48307929e-01\n", 2463 | " -6.03073641e-03 -9.42792441e-01 -7.24338781e-01 -3.25833720e-01]\n" 2464 | ] 2465 | } 2466 | ], 2467 | "source": [ 2468 | "s = np.random.uniform(-1,0,1000)\n", 2469 | "print(s)" 2470 | ] 2471 | }, 2472 | { 2473 | "cell_type": "code", 2474 | "execution_count": 281, 2475 | "metadata": {}, 2476 | "outputs": [ 2477 | { 2478 | "data": { 2479 | "image/png": "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\n", 2480 | "text/plain": [ 2481 | "
" 2482 | ] 2483 | }, 2484 | "metadata": {}, 2485 | "output_type": "display_data" 2486 | } 2487 | ], 2488 | "source": [ 2489 | "count, bins, ignored = plt.hist(s, 10, density=True)\n", 2490 | "plt.plot(bins, np.ones_like(bins), linewidth=2, color='r')\n", 2491 | "plt.show()" 2492 | ] 2493 | }, 2494 | { 2495 | "cell_type": "code", 2496 | "execution_count": 284, 2497 | "metadata": {}, 2498 | "outputs": [ 2499 | { 2500 | "data": { 2501 | "text/plain": [ 2502 | "array([67.48391689, 86.22734027, 64.4573722 , ..., 81.69069191,\n", 2503 | " 95.92935352, 76.198769 ])" 2504 | ] 2505 | }, 2506 | "execution_count": 284, 2507 | "metadata": {}, 2508 | "output_type": "execute_result" 2509 | } 2510 | ], 2511 | "source": [ 2512 | "# np.random.normal(mu, sigma, size)\n", 2513 | "# mu - mean, sigma - sigma -standard deviation, size - number of obsevations\n", 2514 | "normal_array = np.random.normal(79, 15, 10000)\n", 2515 | "normal_array" 2516 | ] 2517 | }, 2518 | { 2519 | "cell_type": "code", 2520 | "execution_count": 285, 2521 | "metadata": {}, 2522 | "outputs": [ 2523 | { 2524 | "data": { 2525 | "image/png": "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\n", 2526 | "text/plain": [ 2527 | "
" 2528 | ] 2529 | }, 2530 | "metadata": {}, 2531 | "output_type": "display_data" 2532 | } 2533 | ], 2534 | "source": [ 2535 | "plt.hist(normal_array,bins=50, color='lightgreen', density=True)\n", 2536 | "plt.show()" 2537 | ] 2538 | }, 2539 | { 2540 | "cell_type": "markdown", 2541 | "metadata": {}, 2542 | "source": [ 2543 | "### Maintaining the same generated data" 2544 | ] 2545 | }, 2546 | { 2547 | "cell_type": "markdown", 2548 | "metadata": {}, 2549 | "source": [ 2550 | "Sometimes we would not like to generate a new set of data instead we would like to keep what we created. To keep the created data we can use the *seed* method." 2551 | ] 2552 | }, 2553 | { 2554 | "cell_type": "code", 2555 | "execution_count": 286, 2556 | "metadata": {}, 2557 | "outputs": [ 2558 | { 2559 | "name": "stdout", 2560 | "output_type": "stream", 2561 | "text": [ 2562 | "[5 0 3 3 7 9 3 5 2 4 7 6 8 8 1 6 7 7 8 1 5]\n" 2563 | ] 2564 | } 2565 | ], 2566 | "source": [ 2567 | "np.random.seed(0)\n", 2568 | "integers = np.random.randint(0, 10, 21)\n", 2569 | "print(integers)\n" 2570 | ] 2571 | }, 2572 | { 2573 | "cell_type": "code", 2574 | "execution_count": 287, 2575 | "metadata": {}, 2576 | "outputs": [ 2577 | { 2578 | "name": "stdout", 2579 | "output_type": "stream", 2580 | "text": [ 2581 | "[-0.94154201 1.94603199 -2.55629824 2.87474136 -0.15540913 2.17926033\n", 2582 | " 0.19308534 2.83733422 2.33654627 1.89437189 2.17097407 4.7644489\n", 2583 | " -0.81204747 0.53289068 -2.71142745 -0.22820506 -1.68846173 1.41128162\n", 2584 | " -0.79757235 -1.65439307 -0.8314894 -1.04902439 1.62620254 -0.45850126\n", 2585 | " 4.32343475 -1.91386286 0.13462166 0.41299767 -0.91376265 -2.11995153]\n" 2586 | ] 2587 | } 2588 | ], 2589 | "source": [ 2590 | "data = np.random.normal(0, 2, 30)\n", 2591 | "print(data)" 2592 | ] 2593 | }, 2594 | { 2595 | "cell_type": "code", 2596 | "execution_count": 288, 2597 | "metadata": {}, 2598 | "outputs": [ 2599 | { 2600 | "data": { 2601 | "text/plain": [ 2602 | "array([2, 2, 6, 1, 3, 9, 6, 1, 0, 1, 9, 0, 0, 9, 3, 4, 0, 0, 4, 1, 7])" 2603 | ] 2604 | }, 2605 | "execution_count": 288, 2606 | "metadata": {}, 2607 | "output_type": "execute_result" 2608 | } 2609 | ], 2610 | "source": [ 2611 | "generator = np.random.RandomState(seed=123) # RandomState is a class, so we give the seed to its constructor\n", 2612 | "generator.randint(0, 10, 21)" 2613 | ] 2614 | }, 2615 | { 2616 | "cell_type": "markdown", 2617 | "metadata": {}, 2618 | "source": [ 2619 | "## Matrix in NumPy" 2620 | ] 2621 | }, 2622 | { 2623 | "cell_type": "code", 2624 | "execution_count": 289, 2625 | "metadata": {}, 2626 | "outputs": [], 2627 | "source": [ 2628 | "four_by_four_matrix = np.matrix(np.ones((4,4), dtype=float))" 2629 | ] 2630 | }, 2631 | { 2632 | "cell_type": "code", 2633 | "execution_count": 290, 2634 | "metadata": {}, 2635 | "outputs": [ 2636 | { 2637 | "data": { 2638 | "text/plain": [ 2639 | "matrix([[1., 1., 1., 1.],\n", 2640 | " [1., 1., 1., 1.],\n", 2641 | " [1., 1., 1., 1.],\n", 2642 | " [1., 1., 1., 1.]])" 2643 | ] 2644 | }, 2645 | "execution_count": 290, 2646 | "metadata": {}, 2647 | "output_type": "execute_result" 2648 | } 2649 | ], 2650 | "source": [ 2651 | "four_by_four_matrix" 2652 | ] 2653 | }, 2654 | { 2655 | "cell_type": "code", 2656 | "execution_count": 291, 2657 | "metadata": {}, 2658 | "outputs": [ 2659 | { 2660 | "data": { 2661 | "text/plain": [ 2662 | "matrix([[1., 1., 1., 1.],\n", 2663 | " [1., 1., 1., 1.],\n", 2664 | " [2., 2., 2., 2.],\n", 2665 | " [1., 1., 1., 1.]])" 2666 | ] 2667 | }, 2668 | "execution_count": 291, 2669 | "metadata": {}, 2670 | "output_type": "execute_result" 2671 | } 2672 | ], 2673 | "source": [ 2674 | "np.asarray(four_by_four_matrix)[2] = 2\n", 2675 | "four_by_four_matrix" 2676 | ] 2677 | }, 2678 | { 2679 | "cell_type": "code", 2680 | "execution_count": 297, 2681 | "metadata": {}, 2682 | "outputs": [ 2683 | { 2684 | "name": "stdout", 2685 | "output_type": "stream", 2686 | "text": [ 2687 | "[[2. 2. 2. 2.]\n", 2688 | " [2. 2. 2. 2.]\n", 2689 | " [4. 4. 4. 4.]\n", 2690 | " [2. 2. 2. 2.]]\n", 2691 | "[[4. 4. 4. 4.]\n", 2692 | " [4. 4. 4. 4.]\n", 2693 | " [8. 8. 8. 8.]\n", 2694 | " [4. 4. 4. 4.]]\n" 2695 | ] 2696 | } 2697 | ], 2698 | "source": [ 2699 | "A = four_by_four_matrix * 2\n", 2700 | "B = four_by_four_matrix * 4\n", 2701 | "print(A)\n", 2702 | "print(B)" 2703 | ] 2704 | }, 2705 | { 2706 | "cell_type": "code", 2707 | "execution_count": 299, 2708 | "metadata": {}, 2709 | "outputs": [ 2710 | { 2711 | "name": "stdout", 2712 | "output_type": "stream", 2713 | "text": [ 2714 | "[[ 6. 6. 6. 6.]\n", 2715 | " [ 6. 6. 6. 6.]\n", 2716 | " [12. 12. 12. 12.]\n", 2717 | " [ 6. 6. 6. 6.]]\n" 2718 | ] 2719 | } 2720 | ], 2721 | "source": [ 2722 | "A_plus_B = A + B\n", 2723 | "print(A_plus_B)" 2724 | ] 2725 | }, 2726 | { 2727 | "cell_type": "code", 2728 | "execution_count": 301, 2729 | "metadata": {}, 2730 | "outputs": [ 2731 | { 2732 | "name": "stdout", 2733 | "output_type": "stream", 2734 | "text": [ 2735 | "[[-2. -2. -2. -2.]\n", 2736 | " [-2. -2. -2. -2.]\n", 2737 | " [-4. -4. -4. -4.]\n", 2738 | " [-2. -2. -2. -2.]]\n" 2739 | ] 2740 | } 2741 | ], 2742 | "source": [ 2743 | "A_minus_B = A - B\n", 2744 | "print(A_minus_B)" 2745 | ] 2746 | }, 2747 | { 2748 | "cell_type": "code", 2749 | "execution_count": 302, 2750 | "metadata": {}, 2751 | "outputs": [ 2752 | { 2753 | "name": "stdout", 2754 | "output_type": "stream", 2755 | "text": [ 2756 | "[[-2. -2. -2. -2.]\n", 2757 | " [-2. -2. -2. -2.]\n", 2758 | " [-4. -4. -4. -4.]\n", 2759 | " [-2. -2. -2. -2.]]\n" 2760 | ] 2761 | } 2762 | ], 2763 | "source": [ 2764 | "A_times_B = A - B\n", 2765 | "print(A_times_B)" 2766 | ] 2767 | }, 2768 | { 2769 | "cell_type": "code", 2770 | "execution_count": 304, 2771 | "metadata": {}, 2772 | "outputs": [ 2773 | { 2774 | "data": { 2775 | "text/plain": [ 2776 | "matrix([[-2., -2., -4., -2.],\n", 2777 | " [-2., -2., -4., -2.],\n", 2778 | " [-2., -2., -4., -2.],\n", 2779 | " [-2., -2., -4., -2.]])" 2780 | ] 2781 | }, 2782 | "execution_count": 304, 2783 | "metadata": {}, 2784 | "output_type": "execute_result" 2785 | } 2786 | ], 2787 | "source": [ 2788 | "np.transpose(A_times_B)" 2789 | ] 2790 | }, 2791 | { 2792 | "cell_type": "markdown", 2793 | "metadata": {}, 2794 | "source": [ 2795 | "### Numpy numpy.arange()\n", 2796 | "\n", 2797 | "#### What is arrange?\n", 2798 | "Sometimes, you want to create values that are evenly spaced within a defined interval. For instance, you want to create values from 1 to 10; you can use numpy.arange() function" 2799 | ] 2800 | }, 2801 | { 2802 | "cell_type": "code", 2803 | "execution_count": 306, 2804 | "metadata": {}, 2805 | "outputs": [ 2806 | { 2807 | "data": { 2808 | "text/plain": [ 2809 | "range(0, 11, 2)" 2810 | ] 2811 | }, 2812 | "execution_count": 306, 2813 | "metadata": {}, 2814 | "output_type": "execute_result" 2815 | } 2816 | ], 2817 | "source": [ 2818 | "# creating list using range(starting, stop, step)\n", 2819 | "lst = range(0, 11, 2)\n", 2820 | "lst" 2821 | ] 2822 | }, 2823 | { 2824 | "cell_type": "code", 2825 | "execution_count": 307, 2826 | "metadata": {}, 2827 | "outputs": [ 2828 | { 2829 | "name": "stdout", 2830 | "output_type": "stream", 2831 | "text": [ 2832 | "0\n", 2833 | "2\n", 2834 | "4\n", 2835 | "6\n", 2836 | "8\n", 2837 | "10\n" 2838 | ] 2839 | } 2840 | ], 2841 | "source": [ 2842 | "for l in lst:\n", 2843 | " print(l)" 2844 | ] 2845 | }, 2846 | { 2847 | "cell_type": "code", 2848 | "execution_count": 308, 2849 | "metadata": {}, 2850 | "outputs": [ 2851 | { 2852 | "data": { 2853 | "text/plain": [ 2854 | "array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,\n", 2855 | " 17, 18, 19])" 2856 | ] 2857 | }, 2858 | "execution_count": 308, 2859 | "metadata": {}, 2860 | "output_type": "execute_result" 2861 | } 2862 | ], 2863 | "source": [ 2864 | "# Similar to range arange numpy.arange(start, stop, step)\n", 2865 | "whole_numbers = np.arange(0, 20, 1)\n", 2866 | "whole_numbers" 2867 | ] 2868 | }, 2869 | { 2870 | "cell_type": "code", 2871 | "execution_count": 309, 2872 | "metadata": {}, 2873 | "outputs": [ 2874 | { 2875 | "data": { 2876 | "text/plain": [ 2877 | "array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n", 2878 | " 18, 19])" 2879 | ] 2880 | }, 2881 | "execution_count": 309, 2882 | "metadata": {}, 2883 | "output_type": "execute_result" 2884 | } 2885 | ], 2886 | "source": [ 2887 | "natural_numbers = np.arange(1, 20, 1)\n", 2888 | "natural_numbers" 2889 | ] 2890 | }, 2891 | { 2892 | "cell_type": "code", 2893 | "execution_count": 310, 2894 | "metadata": {}, 2895 | "outputs": [ 2896 | { 2897 | "data": { 2898 | "text/plain": [ 2899 | "array([ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19])" 2900 | ] 2901 | }, 2902 | "execution_count": 310, 2903 | "metadata": {}, 2904 | "output_type": "execute_result" 2905 | } 2906 | ], 2907 | "source": [ 2908 | "odd_numbers = np.arange(1, 20, 2)\n", 2909 | "odd_numbers" 2910 | ] 2911 | }, 2912 | { 2913 | "cell_type": "code", 2914 | "execution_count": 311, 2915 | "metadata": {}, 2916 | "outputs": [ 2917 | { 2918 | "data": { 2919 | "text/plain": [ 2920 | "array([ 2, 4, 6, 8, 10, 12, 14, 16, 18])" 2921 | ] 2922 | }, 2923 | "execution_count": 311, 2924 | "metadata": {}, 2925 | "output_type": "execute_result" 2926 | } 2927 | ], 2928 | "source": [ 2929 | "even_numbers = np.arange(2, 20, 2)\n", 2930 | "even_numbers" 2931 | ] 2932 | }, 2933 | { 2934 | "cell_type": "markdown", 2935 | "metadata": {}, 2936 | "source": [ 2937 | "### Creating sequence of numbers using linspace" 2938 | ] 2939 | }, 2940 | { 2941 | "cell_type": "code", 2942 | "execution_count": 312, 2943 | "metadata": {}, 2944 | "outputs": [ 2945 | { 2946 | "data": { 2947 | "text/plain": [ 2948 | "array([1. , 1.44444444, 1.88888889, 2.33333333, 2.77777778,\n", 2949 | " 3.22222222, 3.66666667, 4.11111111, 4.55555556, 5. ])" 2950 | ] 2951 | }, 2952 | "execution_count": 312, 2953 | "metadata": {}, 2954 | "output_type": "execute_result" 2955 | } 2956 | ], 2957 | "source": [ 2958 | "# numpy.linspace(start, end, size, endpoint) the end is included by default\n", 2959 | "# numpy.logspace() in Python with Example\n", 2960 | "# For instance, it can be used to create 10 values from 1 to 5 evenly spaced.\n", 2961 | "np.linspace(1.0, 5.0, num=10)" 2962 | ] 2963 | }, 2964 | { 2965 | "cell_type": "code", 2966 | "execution_count": 321, 2967 | "metadata": {}, 2968 | "outputs": [ 2969 | { 2970 | "data": { 2971 | "text/plain": [ 2972 | "array([1. , 1.8, 2.6, 3.4, 4.2])" 2973 | ] 2974 | }, 2975 | "execution_count": 321, 2976 | "metadata": {}, 2977 | "output_type": "execute_result" 2978 | } 2979 | ], 2980 | "source": [ 2981 | "# not to include the last value in the interval\n", 2982 | "np.linspace(1.0, 5.0, num=5, endpoint=False)" 2983 | ] 2984 | }, 2985 | { 2986 | "cell_type": "code", 2987 | "execution_count": 326, 2988 | "metadata": {}, 2989 | "outputs": [ 2990 | { 2991 | "data": { 2992 | "image/png": "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\n", 2993 | "text/plain": [ 2994 | "
" 2995 | ] 2996 | }, 2997 | "metadata": {}, 2998 | "output_type": "display_data" 2999 | } 3000 | ], 3001 | "source": [ 3002 | "x = np.linspace(-10, 10, num=50)\n", 3003 | "y = 2 * x + 2\n", 3004 | "plt.scatter(x, y)\n", 3005 | "plt.show()" 3006 | ] 3007 | }, 3008 | { 3009 | "cell_type": "code", 3010 | "execution_count": 330, 3011 | "metadata": {}, 3012 | "outputs": [ 3013 | { 3014 | "data": { 3015 | "image/png": "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\n", 3016 | "text/plain": [ 3017 | "
" 3018 | ] 3019 | }, 3020 | "metadata": {}, 3021 | "output_type": "display_data" 3022 | } 3023 | ], 3024 | "source": [ 3025 | "x = np.linspace(-10, 10, num=50)\n", 3026 | "y = x ** 2\n", 3027 | "plt.scatter(x, y)\n", 3028 | "plt.show()" 3029 | ] 3030 | }, 3031 | { 3032 | "cell_type": "code", 3033 | "execution_count": 333, 3034 | "metadata": {}, 3035 | "outputs": [ 3036 | { 3037 | "data": { 3038 | "image/png": "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AQUFBdDpdHavEUJg165d+Mc//oHQ0FBs27YN9957r0/ram1txcqVK22POzs70d7ejo8//thuv8uXLyM9PR133XUXAGDixIl4/fXXfVrLQCUlJXjhhRcQExMDAFiwYAE2btxot09PTw+eeuop1NfXY8SIEdi9ezemT5+uaF11dXXYsWMHent7ER0djd///ve488477fbxd3sdOnQIe/bsQV9fHx577DE88sgjdtvPnj2Lp556Cl1dXUhISMCWLVsQHq7sqVRYWIjKykoAgMFgwObNmx22v/feexg3bhwA4Ec/+pFD3Ur56U9/ira2NlsbbN26FXPnzrVtD0R7HThwAG+99Zbt8ZdffonMzEw888wztuf82WY3btzAww8/jL1792Ly5MmoqanBjh07YDabkZKS4nAuAsCVK1ewadMmtLa2YurUqdi9ezdGjx7t/psLDeno6BBPPvmkmDNnjnjxxRdtz2/ZskW8/PLLQgghSkpKxIYNGxxeW1lZKX7xi1+I/v5+ceHCBbF48WLR29urWK39/f3i0UcfFWVlZQ7bqqqqxG9/+1vF3tuZrVu3ikOHDg26z2uvvWar68SJE+KHP/yh4nUtXLhQnD17VgghxIEDB8SaNWsc9vFne127dk0sXLhQtLe3i66uLmE0GsX58+ft9klLSxMff/yxEEKIJ598Uuzbt0/Rmj766CPx0EMPCbPZLHp6esTy5cvF4cOH7fbJyckR//znPxWtwxmLxSIefPDBQc8lf7fXQJ999plYvHixaG1ttXveX212+vRpkZ6eLmbPni2amprEzZs3hcFgEF988YXo7e0VK1euFEePHnV43erVq0V5ebkQQojCwkKxa9cuj95fU901H3zwAaZMmYKf/exnds8fPXoURqMRAJCeno4PP/wQvb29dvtUV1cjNTUVoaGhmDp1KiZNmuRwhe1L7733HkaOHGmr63b/+te/8NlnnyEzMxPLly/HuXPnFKvj9vcsKSmB0WjEE088ga+//tphn6NHjyIjIwMA8P3vfx9tbW24cuWKYjX19PRgw4YNmDVrFgBg5syZuHr1qtPa/dVeNTU1uO+++xAdHY1Ro0ZhyZIlqKqqsm2/fPkyuru7MW/ePABAVlaW3XYl6HQ65ObmIjIyEhEREZg+fbrD51JfX4+XX34ZRqMRW7duhdlsVrQmqwsXLgAAVq5ciYyM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\n", 3039 | "text/plain": [ 3040 | "
" 3041 | ] 3042 | }, 3043 | "metadata": {}, 3044 | "output_type": "display_data" 3045 | } 3046 | ], 3047 | "source": [ 3048 | "x = np.linspace(-10, 10, num=50)\n", 3049 | "y = x ** 2 - 25\n", 3050 | "plt.scatter(x, y)\n", 3051 | "plt.show()" 3052 | ] 3053 | }, 3054 | { 3055 | "cell_type": "code", 3056 | "execution_count": 334, 3057 | "metadata": {}, 3058 | "outputs": [ 3059 | { 3060 | "data": { 3061 | "image/png": "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\n", 3062 | "text/plain": [ 3063 | "
" 3064 | ] 3065 | }, 3066 | "metadata": {}, 3067 | "output_type": "display_data" 3068 | } 3069 | ], 3070 | "source": [ 3071 | "x = np.linspace(-10, 10, num=50)\n", 3072 | "y = -x ** 2 + 25\n", 3073 | "plt.scatter(x, y)\n", 3074 | "plt.show()" 3075 | ] 3076 | }, 3077 | { 3078 | "cell_type": "code", 3079 | "execution_count": null, 3080 | "metadata": {}, 3081 | "outputs": [], 3082 | "source": [] 3083 | }, 3084 | { 3085 | "cell_type": "code", 3086 | "execution_count": 336, 3087 | "metadata": {}, 3088 | "outputs": [], 3089 | "source": [ 3090 | "# LogSpace\n", 3091 | "# LogSpace returns even spaced numbers on a log scale. Logspace has the same parameters as np.linspace.\n" 3092 | ] 3093 | }, 3094 | { 3095 | "cell_type": "code", 3096 | "execution_count": 337, 3097 | "metadata": {}, 3098 | "outputs": [ 3099 | { 3100 | "data": { 3101 | "text/plain": [ 3102 | "array([ 100. , 464.15888336, 2154.43469003, 10000. ])" 3103 | ] 3104 | }, 3105 | "execution_count": 337, 3106 | "metadata": {}, 3107 | "output_type": "execute_result" 3108 | } 3109 | ], 3110 | "source": [ 3111 | "# Syntax:\n", 3112 | "\n", 3113 | "# numpy.logspace(start, stop, num, endpoint)\n", 3114 | "\n", 3115 | "np.logspace(2, 4.0, num=4)" 3116 | ] 3117 | }, 3118 | { 3119 | "cell_type": "code", 3120 | "execution_count": 340, 3121 | "metadata": {}, 3122 | "outputs": [], 3123 | "source": [ 3124 | "# to check the size of an array\n", 3125 | "x = np.array([1,2,3], dtype=np.complex128)" 3126 | ] 3127 | }, 3128 | { 3129 | "cell_type": "code", 3130 | "execution_count": 341, 3131 | "metadata": {}, 3132 | "outputs": [ 3133 | { 3134 | "data": { 3135 | "text/plain": [ 3136 | "array([1.+0.j, 2.+0.j, 3.+0.j])" 3137 | ] 3138 | }, 3139 | "execution_count": 341, 3140 | "metadata": {}, 3141 | "output_type": "execute_result" 3142 | } 3143 | ], 3144 | "source": [ 3145 | "x" 3146 | ] 3147 | }, 3148 | { 3149 | "cell_type": "code", 3150 | "execution_count": 342, 3151 | "metadata": {}, 3152 | "outputs": [ 3153 | { 3154 | "data": { 3155 | "text/plain": [ 3156 | "16" 3157 | ] 3158 | }, 3159 | "execution_count": 342, 3160 | "metadata": {}, 3161 | "output_type": "execute_result" 3162 | } 3163 | ], 3164 | "source": [ 3165 | "x.itemsize" 3166 | ] 3167 | }, 3168 | { 3169 | "cell_type": "markdown", 3170 | "metadata": {}, 3171 | "source": [ 3172 | "## NumPy Statistical Functions with Example\n", 3173 | "NumPy has quite useful statistical functions for finding minimum, maximum, mean, median, percentile,standard deviation and variance, etc from the given elements in the array. The functions are explained as follows − Statistical function Numpy is equipped with the robust statistical function as listed below\n", 3174 | "\n", 3175 | "Numpy Functions\n", 3176 | "- Min np.min()\n", 3177 | "- Max np.max()\n", 3178 | "- Mean np.mean()\n", 3179 | "- Median np.median()\n", 3180 | "- Varience\n", 3181 | "- Percentile\n", 3182 | "- Standard deviation np.std()" 3183 | ] 3184 | }, 3185 | { 3186 | "cell_type": "code", 3187 | "execution_count": 346, 3188 | "metadata": {}, 3189 | "outputs": [ 3190 | { 3191 | "data": { 3192 | "text/plain": [ 3193 | "0.7506861412184562" 3194 | ] 3195 | }, 3196 | "execution_count": 346, 3197 | "metadata": {}, 3198 | "output_type": "execute_result" 3199 | } 3200 | ], 3201 | "source": [ 3202 | "np.random.random()" 3203 | ] 3204 | }, 3205 | { 3206 | "cell_type": "code", 3207 | "execution_count": 347, 3208 | "metadata": {}, 3209 | "outputs": [ 3210 | { 3211 | "data": { 3212 | "text/plain": [ 3213 | "array([0.60783067, 0.32504723, 0.03842543])" 3214 | ] 3215 | }, 3216 | "execution_count": 347, 3217 | "metadata": {}, 3218 | "output_type": "execute_result" 3219 | } 3220 | ], 3221 | "source": [ 3222 | "np.random.random(3)" 3223 | ] 3224 | }, 3225 | { 3226 | "cell_type": "code", 3227 | "execution_count": 348, 3228 | "metadata": {}, 3229 | "outputs": [ 3230 | { 3231 | "data": { 3232 | "text/plain": [ 3233 | "array([[8, 9, 9, 9],\n", 3234 | " [8, 9, 9, 9],\n", 3235 | " [5, 9, 8, 7]])" 3236 | ] 3237 | }, 3238 | "execution_count": 348, 3239 | "metadata": {}, 3240 | "output_type": "execute_result" 3241 | } 3242 | ], 3243 | "source": [ 3244 | "np.random.randint(5, 10, (3, 4)) # does not inlcued the last value [5, 10)" 3245 | ] 3246 | }, 3247 | { 3248 | "cell_type": "code", 3249 | "execution_count": 349, 3250 | "metadata": {}, 3251 | "outputs": [ 3252 | { 3253 | "data": { 3254 | "text/plain": [ 3255 | "array([-1.79093312, 0.773805 , -1.02161028, -2.36126437, -0.05636446])" 3256 | ] 3257 | }, 3258 | "execution_count": 349, 3259 | "metadata": {}, 3260 | "output_type": "execute_result" 3261 | } 3262 | ], 3263 | "source": [ 3264 | "np.random.normal(0, 2, 5)" 3265 | ] 3266 | }, 3267 | { 3268 | "cell_type": "code", 3269 | "execution_count": 350, 3270 | "metadata": {}, 3271 | "outputs": [ 3272 | { 3273 | "data": { 3274 | "text/plain": [ 3275 | "array([[ 0.85666374, 0.13303444, 0.6049438 , -1.26864419],\n", 3276 | " [-0.72548233, -1.3449209 , -0.71910632, -1.62629256],\n", 3277 | " [-3.4525652 , 0.35485228, -0.80356187, -3.26039669]])" 3278 | ] 3279 | }, 3280 | "execution_count": 350, 3281 | "metadata": {}, 3282 | "output_type": "execute_result" 3283 | } 3284 | ], 3285 | "source": [ 3286 | "np.random.normal(0, 2, (3, 4)) # mean = 0, stdev = 2, 3 x 4 array" 3287 | ] 3288 | }, 3289 | { 3290 | "cell_type": "code", 3291 | "execution_count": 351, 3292 | "metadata": {}, 3293 | "outputs": [ 3294 | { 3295 | "name": "stdout", 3296 | "output_type": "stream", 3297 | "text": [ 3298 | "min: 1\n", 3299 | "max: 9\n", 3300 | "mean: 5.0\n", 3301 | "sd: 2.581988897471611\n" 3302 | ] 3303 | } 3304 | ], 3305 | "source": [ 3306 | "np_normal_dis = np.random.normal(5, 0.5, 100)\n", 3307 | "np_normal_dis\n", 3308 | "## min, max, mean, median, sd\n", 3309 | "print('min: ', two_dimension_array.min())\n", 3310 | "print('max: ', two_dimension_array.max())\n", 3311 | "print('mean: ',two_dimension_array.mean())\n", 3312 | "# print('median: ', two_dimension_array.median())\n", 3313 | "print('sd: ', two_dimension_array.std())" 3314 | ] 3315 | }, 3316 | { 3317 | "cell_type": "code", 3318 | "execution_count": 352, 3319 | "metadata": {}, 3320 | "outputs": [ 3321 | { 3322 | "name": "stdout", 3323 | "output_type": "stream", 3324 | "text": [ 3325 | "[[1 2 3]\n", 3326 | " [4 5 6]\n", 3327 | " [7 8 9]]\n", 3328 | "Column with minimum: [1 2 3]\n", 3329 | "Column with maximum: [7 8 9]\n", 3330 | "=== Row ==\n", 3331 | "Row with minimum: [1 4 7]\n", 3332 | "Row with maximum: [3 6 9]\n" 3333 | ] 3334 | } 3335 | ], 3336 | "source": [ 3337 | "print(two_dimension_array)\n", 3338 | "print('Column with minimum: ', np.amin(two_dimension_array,axis=0))\n", 3339 | "print('Column with maximum: ', np.amax(two_dimension_array,axis=0))\n", 3340 | "print('=== Row ==')\n", 3341 | "print('Row with minimum: ', np.amin(two_dimension_array,axis=1))\n", 3342 | "print('Row with maximum: ', np.amax(two_dimension_array,axis=1))" 3343 | ] 3344 | }, 3345 | { 3346 | "cell_type": "markdown", 3347 | "metadata": {}, 3348 | "source": [ 3349 | "## How to create repeating sequences?" 3350 | ] 3351 | }, 3352 | { 3353 | "cell_type": "code", 3354 | "execution_count": 353, 3355 | "metadata": {}, 3356 | "outputs": [ 3357 | { 3358 | "name": "stdout", 3359 | "output_type": "stream", 3360 | "text": [ 3361 | "Tile: [1 2 3 1 2 3 1 2 3]\n", 3362 | "Repeat: [1 1 1 2 2 2 3 3 3]\n" 3363 | ] 3364 | } 3365 | ], 3366 | "source": [ 3367 | "a = [1,2,3]\n", 3368 | "\n", 3369 | "# Repeat whole of 'a' two times\n", 3370 | "print('Tile: ', np.tile(a, 3))\n", 3371 | "\n", 3372 | "# Repeat each element of 'a' two times\n", 3373 | "print('Repeat: ', np.repeat(a, 3))" 3374 | ] 3375 | }, 3376 | { 3377 | "cell_type": "code", 3378 | "execution_count": 354, 3379 | "metadata": {}, 3380 | "outputs": [ 3381 | { 3382 | "name": "stdout", 3383 | "output_type": "stream", 3384 | "text": [ 3385 | "min: 3.4769284726000365\n", 3386 | "max: 6.58548738664509\n", 3387 | "mean: 4.9757236255377535\n", 3388 | "median: 4.974828091188378\n", 3389 | "mode: ModeResult(mode=array([3.47692847]), count=array([1]))\n", 3390 | "sd: 0.4859817987330746\n" 3391 | ] 3392 | } 3393 | ], 3394 | "source": [ 3395 | "from scipy import stats\n", 3396 | "np_normal_dis = np.random.normal(5, 0.5, 1000) # mean, standard deviation, number of samples\n", 3397 | "np_normal_dis\n", 3398 | "## min, max, mean, median, sd\n", 3399 | "print('min: ', np.min(np_normal_dis))\n", 3400 | "print('max: ', np.max(np_normal_dis))\n", 3401 | "print('mean: ', np.mean(np_normal_dis))\n", 3402 | "print('median: ', np.median(np_normal_dis))\n", 3403 | "print('mode: ', stats.mode(np_normal_dis))\n", 3404 | "print('sd: ', np.std(np_normal_dis))" 3405 | ] 3406 | }, 3407 | { 3408 | "cell_type": "code", 3409 | "execution_count": 355, 3410 | "metadata": {}, 3411 | "outputs": [ 3412 | { 3413 | "data": { 3414 | "image/png": "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\n", 3415 | "text/plain": [ 3416 | "
" 3417 | ] 3418 | }, 3419 | "metadata": {}, 3420 | "output_type": "display_data" 3421 | } 3422 | ], 3423 | "source": [ 3424 | "plt.hist(np_normal_dis, color=\"grey\", bins=30)\n", 3425 | "plt.show()" 3426 | ] 3427 | }, 3428 | { 3429 | "cell_type": "code", 3430 | "execution_count": 356, 3431 | "metadata": {}, 3432 | "outputs": [ 3433 | { 3434 | "name": "stderr", 3435 | "output_type": "stream", 3436 | "text": [ 3437 | "C:\\Users\\Asabeneh\\anaconda3\\lib\\site-packages\\seaborn\\distributions.py:2551: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", 3438 | " warnings.warn(msg, FutureWarning)\n" 3439 | ] 3440 | }, 3441 | { 3442 | "data": { 3443 | "image/png": "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kT0SlS1fvpyVK1cyf/78wECUajlx4gS7du1i1KhRPPjgg0DznsimTZtCKidAQkICK1asYPHixYFBQSdNmqRqpqtef/113G43v/jFLwLLHnroIX7xi1/w9NNP43a7mTVrVqvzZWoLDw8PyYyTJ0/mH//xH3nkkUfweDzceeedPPzww4wYMSKkst51112cOHGCjIwMDAYDEydO5Omnn+bOO+8MqZzw1d/r9evXtxhMd/Hixe1uTwZtFEII0SVyaEsIIUSXSJEIIYToEikSIYQQXSJFIoQQokukSIQQQnSJFIkQQogukSIRQgjRJVIkQqjkgw8+4L777sPpdOJyuZg7d25g9AAhehO5IVEIFf3Lv/wLZrOZpqYmdDodP//5z9WOJESnSZEIoaL6+nrS09OJiIjg/fffJzw8XO1IQnSaHNoSQkWVlZW43W5qa2spKytTO44QN0X2SIRQicfj4aGHHuKhhx7C7/fzzjvv8Kc//UnVUZWFuBmyRyKESl566SXi4+NZtGgR3/nOd4iJiWHDhg1qxxKi02SPRAghRJfIHokQQogukSIRQgjRJVIkQgghukSKRAghRJdIkQghhOgSKRIhhBBdIkUihBCiS6RIhBBCdMn/B5t7YXqbb8JMAAAAAElFTkSuQmCC\n", 3444 | "text/plain": [ 3445 | "
" 3446 | ] 3447 | }, 3448 | "metadata": {}, 3449 | "output_type": "display_data" 3450 | } 3451 | ], 3452 | "source": [ 3453 | "x = np.random.normal(28, 15, 100000)\n", 3454 | "ax = sns.distplot(x)\n", 3455 | "ax.set(xlabel='x', ylabel='y', title='X vs Y')\n", 3456 | "plt.show()" 3457 | ] 3458 | }, 3459 | { 3460 | "cell_type": "markdown", 3461 | "metadata": {}, 3462 | "source": [ 3463 | "## Linear Algebra" 3464 | ] 3465 | }, 3466 | { 3467 | "cell_type": "code", 3468 | "execution_count": 357, 3469 | "metadata": {}, 3470 | "outputs": [], 3471 | "source": [ 3472 | "# numpy.dot(): Dot Product in Python using Numpy\n", 3473 | "# Dot Product\n", 3474 | "# Numpy is powerful library for matrices computation. For instance, you can compute the dot product with np.dot\n", 3475 | "\n", 3476 | "# Syntax\n", 3477 | "\n", 3478 | "# numpy.dot(x, y, out=None)" 3479 | ] 3480 | }, 3481 | { 3482 | "cell_type": "markdown", 3483 | "metadata": {}, 3484 | "source": [ 3485 | "### Dot Product" 3486 | ] 3487 | }, 3488 | { 3489 | "cell_type": "code", 3490 | "execution_count": 358, 3491 | "metadata": {}, 3492 | "outputs": [ 3493 | { 3494 | "data": { 3495 | "text/plain": [ 3496 | "23" 3497 | ] 3498 | }, 3499 | "execution_count": 358, 3500 | "metadata": {}, 3501 | "output_type": "execute_result" 3502 | } 3503 | ], 3504 | "source": [ 3505 | "## Linear algebra\n", 3506 | "### Dot product: product of two arrays\n", 3507 | "f = np.array([1,2,3])\n", 3508 | "g = np.array([4,5,3])\n", 3509 | "### 1*4+2*5 + 3*3\n", 3510 | "np.dot(f, g) # 23" 3511 | ] 3512 | }, 3513 | { 3514 | "cell_type": "markdown", 3515 | "metadata": {}, 3516 | "source": [ 3517 | "### NumPy Matrix Multiplication with np.matmul()" 3518 | ] 3519 | }, 3520 | { 3521 | "cell_type": "code", 3522 | "execution_count": 359, 3523 | "metadata": {}, 3524 | "outputs": [ 3525 | { 3526 | "data": { 3527 | "text/plain": [ 3528 | "array([[19, 22],\n", 3529 | " [43, 50]])" 3530 | ] 3531 | }, 3532 | "execution_count": 359, 3533 | "metadata": {}, 3534 | "output_type": "execute_result" 3535 | } 3536 | ], 3537 | "source": [ 3538 | "### Matmul: matruc product of two arrays\n", 3539 | "h = [[1,2],[3,4]]\n", 3540 | "i = [[5,6],[7,8]]\n", 3541 | "### 1*5+2*7 = 19\n", 3542 | "np.matmul(h, i)" 3543 | ] 3544 | }, 3545 | { 3546 | "cell_type": "code", 3547 | "execution_count": 360, 3548 | "metadata": {}, 3549 | "outputs": [], 3550 | "source": [ 3551 | "## Determinant 2*2 matrix\n", 3552 | "### 5*8-7*6np.linalg.det(i)" 3553 | ] 3554 | }, 3555 | { 3556 | "cell_type": "code", 3557 | "execution_count": 361, 3558 | "metadata": {}, 3559 | "outputs": [ 3560 | { 3561 | "data": { 3562 | "text/plain": [ 3563 | "-1.999999999999999" 3564 | ] 3565 | }, 3566 | "execution_count": 361, 3567 | "metadata": {}, 3568 | "output_type": "execute_result" 3569 | } 3570 | ], 3571 | "source": [ 3572 | "np.linalg.det(i)" 3573 | ] 3574 | }, 3575 | { 3576 | "cell_type": "code", 3577 | "execution_count": 362, 3578 | "metadata": {}, 3579 | "outputs": [], 3580 | "source": [ 3581 | "Z = np.zeros((8,8))\n", 3582 | "Z[1::2,::2] = 1\n", 3583 | "Z[::2,1::2] = 1" 3584 | ] 3585 | }, 3586 | { 3587 | "cell_type": "code", 3588 | "execution_count": 363, 3589 | "metadata": {}, 3590 | "outputs": [ 3591 | { 3592 | "data": { 3593 | "text/plain": [ 3594 | "array([[0., 1., 0., 1., 0., 1., 0., 1.],\n", 3595 | " [1., 0., 1., 0., 1., 0., 1., 0.],\n", 3596 | " [0., 1., 0., 1., 0., 1., 0., 1.],\n", 3597 | " [1., 0., 1., 0., 1., 0., 1., 0.],\n", 3598 | " [0., 1., 0., 1., 0., 1., 0., 1.],\n", 3599 | " [1., 0., 1., 0., 1., 0., 1., 0.],\n", 3600 | " [0., 1., 0., 1., 0., 1., 0., 1.],\n", 3601 | " [1., 0., 1., 0., 1., 0., 1., 0.]])" 3602 | ] 3603 | }, 3604 | "execution_count": 363, 3605 | "metadata": {}, 3606 | "output_type": "execute_result" 3607 | } 3608 | ], 3609 | "source": [ 3610 | "Z" 3611 | ] 3612 | }, 3613 | { 3614 | "cell_type": "markdown", 3615 | "metadata": {}, 3616 | "source": [ 3617 | "## Aggration: max, min, sum, mean, standard deviation" 3618 | ] 3619 | }, 3620 | { 3621 | "cell_type": "code", 3622 | "execution_count": null, 3623 | "metadata": {}, 3624 | "outputs": [], 3625 | "source": [] 3626 | } 3627 | ], 3628 | "metadata": { 3629 | "kernelspec": { 3630 | "display_name": "Python 3", 3631 | "language": "python", 3632 | "name": "python3" 3633 | }, 3634 | "language_info": { 3635 | "codemirror_mode": { 3636 | "name": "ipython", 3637 | "version": 3 3638 | }, 3639 | "file_extension": ".py", 3640 | "mimetype": "text/x-python", 3641 | "name": "python", 3642 | "nbconvert_exporter": "python", 3643 | "pygments_lexer": "ipython3", 3644 | "version": "3.8.5" 3645 | } 3646 | }, 3647 | "nbformat": 4, 3648 | "nbformat_minor": 4 3649 | } 3650 | --------------------------------------------------------------------------------