├── .ipynb_checkpoints ├── 1-Numpy基础-checkpoint.ipynb ├── 2-常用函数-checkpoint.ipynb ├── 3-便捷函数-checkpoint.ipynb ├── 4-深入学习Numpy模块-checkpoint.ipynb └── 5-质量控制-checkpoint.ipynb ├── 1-Numpy基础.ipynb ├── 2-常用函数.ipynb ├── 3-便捷函数.ipynb ├── 4-深入学习Numpy模块.ipynb ├── 5-质量控制.ipynb ├── Python数据分析基础教程:NumPy学习指南(第2版).pdf ├── README.md ├── data.csv └── eye.txt /.ipynb_checkpoints/1-Numpy基础-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "##
Numpy基础
" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "### 1 Numpy数组对象" 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 2, 20 | "metadata": { 21 | "collapsed": true 22 | }, 23 | "outputs": [], 24 | "source": [ 25 | "import numpy as np" 26 | ] 27 | }, 28 | { 29 | "cell_type": "code", 30 | "execution_count": 3, 31 | "metadata": { 32 | "collapsed": true 33 | }, 34 | "outputs": [], 35 | "source": [ 36 | "a = np.arange(5)" 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "execution_count": 4, 42 | "metadata": {}, 43 | "outputs": [ 44 | { 45 | "data": { 46 | "text/plain": [ 47 | "array([0, 1, 2, 3, 4])" 48 | ] 49 | }, 50 | "execution_count": 4, 51 | "metadata": {}, 52 | "output_type": "execute_result" 53 | } 54 | ], 55 | "source": [ 56 | "a" 57 | ] 58 | }, 59 | { 60 | "cell_type": "code", 61 | "execution_count": 5, 62 | "metadata": {}, 63 | "outputs": [ 64 | { 65 | "data": { 66 | "text/plain": [ 67 | "dtype('int64')" 68 | ] 69 | }, 70 | "execution_count": 5, 71 | "metadata": {}, 72 | "output_type": "execute_result" 73 | } 74 | ], 75 | "source": [ 76 | "a.dtype" 77 | ] 78 | }, 79 | { 80 | "cell_type": "code", 81 | "execution_count": 6, 82 | "metadata": {}, 83 | "outputs": [ 84 | { 85 | "data": { 86 | "text/plain": [ 87 | "(5,)" 88 | ] 89 | }, 90 | "execution_count": 6, 91 | "metadata": {}, 92 | "output_type": "execute_result" 93 | } 94 | ], 95 | "source": [ 96 | "a.shape" 97 | ] 98 | }, 99 | { 100 | "cell_type": "markdown", 101 | "metadata": {}, 102 | "source": [ 103 | "### 2 创建多维数组" 104 | ] 105 | }, 106 | { 107 | "cell_type": "code", 108 | "execution_count": 8, 109 | "metadata": {}, 110 | "outputs": [], 111 | "source": [ 112 | "m = np.array([np.arange(2),np.arange(2)])" 113 | ] 114 | }, 115 | { 116 | "cell_type": "code", 117 | "execution_count": 9, 118 | "metadata": {}, 119 | "outputs": [ 120 | { 121 | "data": { 122 | "text/plain": [ 123 | "array([[0, 1],\n", 124 | " [0, 1]])" 125 | ] 126 | }, 127 | "execution_count": 9, 128 | "metadata": {}, 129 | "output_type": "execute_result" 130 | } 131 | ], 132 | "source": [ 133 | "m" 134 | ] 135 | }, 136 | { 137 | "cell_type": "code", 138 | "execution_count": 10, 139 | "metadata": {}, 140 | "outputs": [ 141 | { 142 | "data": { 143 | "text/plain": [ 144 | "(2, 2)" 145 | ] 146 | }, 147 | "execution_count": 10, 148 | "metadata": {}, 149 | "output_type": "execute_result" 150 | } 151 | ], 152 | "source": [ 153 | "m.shape" 154 | ] 155 | }, 156 | { 157 | "cell_type": "code", 158 | "execution_count": 11, 159 | "metadata": {}, 160 | "outputs": [ 161 | { 162 | "data": { 163 | "text/plain": [ 164 | "0" 165 | ] 166 | }, 167 | "execution_count": 11, 168 | "metadata": {}, 169 | "output_type": "execute_result" 170 | } 171 | ], 172 | "source": [ 173 | "m[0,0]" 174 | ] 175 | }, 176 | { 177 | "cell_type": "markdown", 178 | "metadata": {}, 179 | "source": [ 180 | "每一种数据类型均有对应的类型转换函数,例如:" 181 | ] 182 | }, 183 | { 184 | "cell_type": "code", 185 | "execution_count": 13, 186 | "metadata": {}, 187 | "outputs": [ 188 | { 189 | "data": { 190 | "text/plain": [ 191 | "42.0" 192 | ] 193 | }, 194 | "execution_count": 13, 195 | "metadata": {}, 196 | "output_type": "execute_result" 197 | } 198 | ], 199 | "source": [ 200 | "np.float64(42)" 201 | ] 202 | }, 203 | { 204 | "cell_type": "markdown", 205 | "metadata": {}, 206 | "source": [ 207 | "### 3 数据类型对象" 208 | ] 209 | }, 210 | { 211 | "cell_type": "markdown", 212 | "metadata": {}, 213 | "source": [ 214 | "Numpy数组中每个元素均为相同的数据类型" 215 | ] 216 | }, 217 | { 218 | "cell_type": "code", 219 | "execution_count": 14, 220 | "metadata": {}, 221 | "outputs": [ 222 | { 223 | "data": { 224 | "text/plain": [ 225 | "8" 226 | ] 227 | }, 228 | "execution_count": 14, 229 | "metadata": {}, 230 | "output_type": "execute_result" 231 | } 232 | ], 233 | "source": [ 234 | "m.dtype.itemsize" 235 | ] 236 | }, 237 | { 238 | "cell_type": "markdown", 239 | "metadata": {}, 240 | "source": [ 241 | "### 4 字符编码" 242 | ] 243 | }, 244 | { 245 | "cell_type": "markdown", 246 | "metadata": {}, 247 | "source": [ 248 | "Numpy 可以使用字符编码来表示数据类型,例如f表示单精度浮点数" 249 | ] 250 | }, 251 | { 252 | "cell_type": "code", 253 | "execution_count": 17, 254 | "metadata": {}, 255 | "outputs": [ 256 | { 257 | "data": { 258 | "text/plain": [ 259 | "array([0., 1., 2., 3., 4., 5., 6.], dtype=float32)" 260 | ] 261 | }, 262 | "execution_count": 17, 263 | "metadata": {}, 264 | "output_type": "execute_result" 265 | } 266 | ], 267 | "source": [ 268 | "np.arange(7,dtype='f')" 269 | ] 270 | }, 271 | { 272 | "cell_type": "markdown", 273 | "metadata": {}, 274 | "source": [ 275 | "### 5 一维数组的索引和切片" 276 | ] 277 | }, 278 | { 279 | "cell_type": "code", 280 | "execution_count": 20, 281 | "metadata": { 282 | "collapsed": true 283 | }, 284 | "outputs": [], 285 | "source": [ 286 | "a = np.arange(9)" 287 | ] 288 | }, 289 | { 290 | "cell_type": "code", 291 | "execution_count": 21, 292 | "metadata": {}, 293 | "outputs": [ 294 | { 295 | "data": { 296 | "text/plain": [ 297 | "array([0, 1, 2, 3, 4, 5, 6, 7, 8])" 298 | ] 299 | }, 300 | "execution_count": 21, 301 | "metadata": {}, 302 | "output_type": "execute_result" 303 | } 304 | ], 305 | "source": [ 306 | "a" 307 | ] 308 | }, 309 | { 310 | "cell_type": "code", 311 | "execution_count": 22, 312 | "metadata": {}, 313 | "outputs": [ 314 | { 315 | "data": { 316 | "text/plain": [ 317 | "array([3, 4, 5, 6])" 318 | ] 319 | }, 320 | "execution_count": 22, 321 | "metadata": {}, 322 | "output_type": "execute_result" 323 | } 324 | ], 325 | "source": [ 326 | "a[3:7]" 327 | ] 328 | }, 329 | { 330 | "cell_type": "code", 331 | "execution_count": 23, 332 | "metadata": {}, 333 | "outputs": [ 334 | { 335 | "data": { 336 | "text/plain": [ 337 | "array([8, 7, 6, 5, 4, 3, 2, 1, 0])" 338 | ] 339 | }, 340 | "execution_count": 23, 341 | "metadata": {}, 342 | "output_type": "execute_result" 343 | } 344 | ], 345 | "source": [ 346 | "a[::-1]" 347 | ] 348 | }, 349 | { 350 | "cell_type": "markdown", 351 | "metadata": {}, 352 | "source": [ 353 | "### 6 多维数组的索引和切片" 354 | ] 355 | }, 356 | { 357 | "cell_type": "code", 358 | "execution_count": 24, 359 | "metadata": { 360 | "collapsed": true 361 | }, 362 | "outputs": [], 363 | "source": [ 364 | "b = np.arange(24).reshape(2,3,4)" 365 | ] 366 | }, 367 | { 368 | "cell_type": "code", 369 | "execution_count": 25, 370 | "metadata": {}, 371 | "outputs": [ 372 | { 373 | "data": { 374 | "text/plain": [ 375 | "array([[[ 0, 1, 2, 3],\n", 376 | " [ 4, 5, 6, 7],\n", 377 | " [ 8, 9, 10, 11]],\n", 378 | "\n", 379 | " [[12, 13, 14, 15],\n", 380 | " [16, 17, 18, 19],\n", 381 | " [20, 21, 22, 23]]])" 382 | ] 383 | }, 384 | "execution_count": 25, 385 | "metadata": {}, 386 | "output_type": "execute_result" 387 | } 388 | ], 389 | "source": [ 390 | "b" 391 | ] 392 | }, 393 | { 394 | "cell_type": "code", 395 | "execution_count": 26, 396 | "metadata": {}, 397 | "outputs": [ 398 | { 399 | "data": { 400 | "text/plain": [ 401 | "0" 402 | ] 403 | }, 404 | "execution_count": 26, 405 | "metadata": {}, 406 | "output_type": "execute_result" 407 | } 408 | ], 409 | "source": [ 410 | "b[0,0,0]" 411 | ] 412 | }, 413 | { 414 | "cell_type": "code", 415 | "execution_count": 28, 416 | "metadata": {}, 417 | "outputs": [ 418 | { 419 | "data": { 420 | "text/plain": [ 421 | "array([ 0, 12])" 422 | ] 423 | }, 424 | "execution_count": 28, 425 | "metadata": {}, 426 | "output_type": "execute_result" 427 | } 428 | ], 429 | "source": [ 430 | "b[:,0,0]" 431 | ] 432 | }, 433 | { 434 | "cell_type": "code", 435 | "execution_count": 29, 436 | "metadata": {}, 437 | "outputs": [ 438 | { 439 | "data": { 440 | "text/plain": [ 441 | "array([[[ 0, 1, 2, 3],\n", 442 | " [ 4, 5, 6, 7],\n", 443 | " [ 8, 9, 10, 11]],\n", 444 | "\n", 445 | " [[12, 13, 14, 15],\n", 446 | " [16, 17, 18, 19],\n", 447 | " [20, 21, 22, 23]]])" 448 | ] 449 | }, 450 | "execution_count": 29, 451 | "metadata": {}, 452 | "output_type": "execute_result" 453 | } 454 | ], 455 | "source": [ 456 | "b[:,...]" 457 | ] 458 | }, 459 | { 460 | "cell_type": "markdown", 461 | "metadata": {}, 462 | "source": [ 463 | "### 7 改变数组的维度" 464 | ] 465 | }, 466 | { 467 | "cell_type": "code", 468 | "execution_count": 30, 469 | "metadata": {}, 470 | "outputs": [ 471 | { 472 | "data": { 473 | "text/plain": [ 474 | "array([[[ 0, 1, 2, 3],\n", 475 | " [ 4, 5, 6, 7],\n", 476 | " [ 8, 9, 10, 11]],\n", 477 | "\n", 478 | " [[12, 13, 14, 15],\n", 479 | " [16, 17, 18, 19],\n", 480 | " [20, 21, 22, 23]]])" 481 | ] 482 | }, 483 | "execution_count": 30, 484 | "metadata": {}, 485 | "output_type": "execute_result" 486 | } 487 | ], 488 | "source": [ 489 | "b" 490 | ] 491 | }, 492 | { 493 | "cell_type": "code", 494 | "execution_count": 31, 495 | "metadata": {}, 496 | "outputs": [ 497 | { 498 | "data": { 499 | "text/plain": [ 500 | "array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,\n", 501 | " 17, 18, 19, 20, 21, 22, 23])" 502 | ] 503 | }, 504 | "execution_count": 31, 505 | "metadata": {}, 506 | "output_type": "execute_result" 507 | } 508 | ], 509 | "source": [ 510 | "b.ravel()" 511 | ] 512 | }, 513 | { 514 | "cell_type": "code", 515 | "execution_count": 32, 516 | "metadata": {}, 517 | "outputs": [ 518 | { 519 | "data": { 520 | "text/plain": [ 521 | "array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,\n", 522 | " 17, 18, 19, 20, 21, 22, 23])" 523 | ] 524 | }, 525 | "execution_count": 32, 526 | "metadata": {}, 527 | "output_type": "execute_result" 528 | } 529 | ], 530 | "source": [ 531 | "b.flatten()" 532 | ] 533 | }, 534 | { 535 | "cell_type": "code", 536 | "execution_count": 33, 537 | "metadata": {}, 538 | "outputs": [ 539 | { 540 | "data": { 541 | "text/plain": [ 542 | "(2, 3, 4)" 543 | ] 544 | }, 545 | "execution_count": 33, 546 | "metadata": {}, 547 | "output_type": "execute_result" 548 | } 549 | ], 550 | "source": [ 551 | "b.shape" 552 | ] 553 | }, 554 | { 555 | "cell_type": "code", 556 | "execution_count": 34, 557 | "metadata": {}, 558 | "outputs": [ 559 | { 560 | "data": { 561 | "text/plain": [ 562 | "array([[[ 0, 1, 2, 3],\n", 563 | " [ 4, 5, 6, 7],\n", 564 | " [ 8, 9, 10, 11]],\n", 565 | "\n", 566 | " [[12, 13, 14, 15],\n", 567 | " [16, 17, 18, 19],\n", 568 | " [20, 21, 22, 23]]])" 569 | ] 570 | }, 571 | "execution_count": 34, 572 | "metadata": {}, 573 | "output_type": "execute_result" 574 | } 575 | ], 576 | "source": [ 577 | "b" 578 | ] 579 | }, 580 | { 581 | "cell_type": "code", 582 | "execution_count": 35, 583 | "metadata": {}, 584 | "outputs": [ 585 | { 586 | "data": { 587 | "text/plain": [ 588 | "array([[[ 0, 12],\n", 589 | " [ 4, 16],\n", 590 | " [ 8, 20]],\n", 591 | "\n", 592 | " [[ 1, 13],\n", 593 | " [ 5, 17],\n", 594 | " [ 9, 21]],\n", 595 | "\n", 596 | " [[ 2, 14],\n", 597 | " [ 6, 18],\n", 598 | " [10, 22]],\n", 599 | "\n", 600 | " [[ 3, 15],\n", 601 | " [ 7, 19],\n", 602 | " [11, 23]]])" 603 | ] 604 | }, 605 | "execution_count": 35, 606 | "metadata": {}, 607 | "output_type": "execute_result" 608 | } 609 | ], 610 | "source": [ 611 | "b.transpose()" 612 | ] 613 | }, 614 | { 615 | "cell_type": "markdown", 616 | "metadata": {}, 617 | "source": [ 618 | "resize 会直接修改数组,而其他的操作会不会受到影响" 619 | ] 620 | }, 621 | { 622 | "cell_type": "code", 623 | "execution_count": 36, 624 | "metadata": { 625 | "collapsed": true 626 | }, 627 | "outputs": [], 628 | "source": [ 629 | "b.resize((2,12))" 630 | ] 631 | }, 632 | { 633 | "cell_type": "code", 634 | "execution_count": 37, 635 | "metadata": {}, 636 | "outputs": [ 637 | { 638 | "data": { 639 | "text/plain": [ 640 | "array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],\n", 641 | " [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]])" 642 | ] 643 | }, 644 | "execution_count": 37, 645 | "metadata": {}, 646 | "output_type": "execute_result" 647 | } 648 | ], 649 | "source": [ 650 | "b" 651 | ] 652 | }, 653 | { 654 | "cell_type": "markdown", 655 | "metadata": {}, 656 | "source": [ 657 | "### 8 数组组合" 658 | ] 659 | }, 660 | { 661 | "cell_type": "markdown", 662 | "metadata": {}, 663 | "source": [ 664 | "Numpy 数组组合有水平组合,垂直组合和深度组合等多种组合方式,我们将使用vstack,dstack,hstack,column_stack,row_stack以及concatenate函数来完成数组的组合" 665 | ] 666 | }, 667 | { 668 | "cell_type": "code", 669 | "execution_count": 38, 670 | "metadata": { 671 | "collapsed": true 672 | }, 673 | "outputs": [], 674 | "source": [ 675 | "a = np.arange(9).reshape(3,3)" 676 | ] 677 | }, 678 | { 679 | "cell_type": "code", 680 | "execution_count": 39, 681 | "metadata": { 682 | "collapsed": true 683 | }, 684 | "outputs": [], 685 | "source": [ 686 | "b = 2*a" 687 | ] 688 | }, 689 | { 690 | "cell_type": "code", 691 | "execution_count": 40, 692 | "metadata": {}, 693 | "outputs": [ 694 | { 695 | "data": { 696 | "text/plain": [ 697 | "array([[0, 1, 2],\n", 698 | " [3, 4, 5],\n", 699 | " [6, 7, 8]])" 700 | ] 701 | }, 702 | "execution_count": 40, 703 | "metadata": {}, 704 | "output_type": "execute_result" 705 | } 706 | ], 707 | "source": [ 708 | "a" 709 | ] 710 | }, 711 | { 712 | "cell_type": "code", 713 | "execution_count": 41, 714 | "metadata": {}, 715 | "outputs": [ 716 | { 717 | "data": { 718 | "text/plain": [ 719 | "array([[ 0, 2, 4],\n", 720 | " [ 6, 8, 10],\n", 721 | " [12, 14, 16]])" 722 | ] 723 | }, 724 | "execution_count": 41, 725 | "metadata": {}, 726 | "output_type": "execute_result" 727 | } 728 | ], 729 | "source": [ 730 | "b" 731 | ] 732 | }, 733 | { 734 | "cell_type": "code", 735 | "execution_count": 43, 736 | "metadata": {}, 737 | "outputs": [ 738 | { 739 | "data": { 740 | "text/plain": [ 741 | "array([[ 0, 1, 2, 0, 2, 4],\n", 742 | " [ 3, 4, 5, 6, 8, 10],\n", 743 | " [ 6, 7, 8, 12, 14, 16]])" 744 | ] 745 | }, 746 | "execution_count": 43, 747 | "metadata": {}, 748 | "output_type": "execute_result" 749 | } 750 | ], 751 | "source": [ 752 | "np.hstack((a,b))" 753 | ] 754 | }, 755 | { 756 | "cell_type": "code", 757 | "execution_count": 44, 758 | "metadata": {}, 759 | "outputs": [ 760 | { 761 | "data": { 762 | "text/plain": [ 763 | "array([[ 0, 1, 2, 0, 2, 4],\n", 764 | " [ 3, 4, 5, 6, 8, 10],\n", 765 | " [ 6, 7, 8, 12, 14, 16]])" 766 | ] 767 | }, 768 | "execution_count": 44, 769 | "metadata": {}, 770 | "output_type": "execute_result" 771 | } 772 | ], 773 | "source": [ 774 | "np.concatenate((a,b),axis=1)" 775 | ] 776 | }, 777 | { 778 | "cell_type": "code", 779 | "execution_count": 45, 780 | "metadata": {}, 781 | "outputs": [ 782 | { 783 | "data": { 784 | "text/plain": [ 785 | "array([[ 0, 1, 2],\n", 786 | " [ 3, 4, 5],\n", 787 | " [ 6, 7, 8],\n", 788 | " [ 0, 2, 4],\n", 789 | " [ 6, 8, 10],\n", 790 | " [12, 14, 16]])" 791 | ] 792 | }, 793 | "execution_count": 45, 794 | "metadata": {}, 795 | "output_type": "execute_result" 796 | } 797 | ], 798 | "source": [ 799 | "np.vstack((a,b))" 800 | ] 801 | }, 802 | { 803 | "cell_type": "code", 804 | "execution_count": 46, 805 | "metadata": {}, 806 | "outputs": [ 807 | { 808 | "data": { 809 | "text/plain": [ 810 | "array([[ 0, 1, 2],\n", 811 | " [ 3, 4, 5],\n", 812 | " [ 6, 7, 8],\n", 813 | " [ 0, 2, 4],\n", 814 | " [ 6, 8, 10],\n", 815 | " [12, 14, 16]])" 816 | ] 817 | }, 818 | "execution_count": 46, 819 | "metadata": {}, 820 | "output_type": "execute_result" 821 | } 822 | ], 823 | "source": [ 824 | "np.concatenate((a,b),axis = 0)" 825 | ] 826 | }, 827 | { 828 | "cell_type": "code", 829 | "execution_count": 48, 830 | "metadata": {}, 831 | "outputs": [ 832 | { 833 | "data": { 834 | "text/plain": [ 835 | "(3, 3)" 836 | ] 837 | }, 838 | "execution_count": 48, 839 | "metadata": {}, 840 | "output_type": "execute_result" 841 | } 842 | ], 843 | "source": [ 844 | "a.shape" 845 | ] 846 | }, 847 | { 848 | "cell_type": "code", 849 | "execution_count": 49, 850 | "metadata": {}, 851 | "outputs": [ 852 | { 853 | "data": { 854 | "text/plain": [ 855 | "(3, 3)" 856 | ] 857 | }, 858 | "execution_count": 49, 859 | "metadata": {}, 860 | "output_type": "execute_result" 861 | } 862 | ], 863 | "source": [ 864 | "b.shape" 865 | ] 866 | }, 867 | { 868 | "cell_type": "code", 869 | "execution_count": 47, 870 | "metadata": {}, 871 | "outputs": [ 872 | { 873 | "data": { 874 | "text/plain": [ 875 | "array([[[ 0, 0],\n", 876 | " [ 1, 2],\n", 877 | " [ 2, 4]],\n", 878 | "\n", 879 | " [[ 3, 6],\n", 880 | " [ 4, 8],\n", 881 | " [ 5, 10]],\n", 882 | "\n", 883 | " [[ 6, 12],\n", 884 | " [ 7, 14],\n", 885 | " [ 8, 16]]])" 886 | ] 887 | }, 888 | "execution_count": 47, 889 | "metadata": {}, 890 | "output_type": "execute_result" 891 | } 892 | ], 893 | "source": [ 894 | "np.dstack((a,b))" 895 | ] 896 | }, 897 | { 898 | "cell_type": "code", 899 | "execution_count": 50, 900 | "metadata": {}, 901 | "outputs": [ 902 | { 903 | "data": { 904 | "text/plain": [ 905 | "(3, 3, 2)" 906 | ] 907 | }, 908 | "execution_count": 50, 909 | "metadata": {}, 910 | "output_type": "execute_result" 911 | } 912 | ], 913 | "source": [ 914 | "np.dstack((a,b)).shape" 915 | ] 916 | }, 917 | { 918 | "cell_type": "code", 919 | "execution_count": 51, 920 | "metadata": { 921 | "collapsed": true 922 | }, 923 | "outputs": [], 924 | "source": [ 925 | "oned = np.arange(2)" 926 | ] 927 | }, 928 | { 929 | "cell_type": "code", 930 | "execution_count": 52, 931 | "metadata": { 932 | "collapsed": true 933 | }, 934 | "outputs": [], 935 | "source": [ 936 | "twice_oned = 2*oned" 937 | ] 938 | }, 939 | { 940 | "cell_type": "code", 941 | "execution_count": 53, 942 | "metadata": {}, 943 | "outputs": [ 944 | { 945 | "data": { 946 | "text/plain": [ 947 | "array([0, 1])" 948 | ] 949 | }, 950 | "execution_count": 53, 951 | "metadata": {}, 952 | "output_type": "execute_result" 953 | } 954 | ], 955 | "source": [ 956 | "oned" 957 | ] 958 | }, 959 | { 960 | "cell_type": "code", 961 | "execution_count": 54, 962 | "metadata": {}, 963 | "outputs": [ 964 | { 965 | "data": { 966 | "text/plain": [ 967 | "array([0, 2])" 968 | ] 969 | }, 970 | "execution_count": 54, 971 | "metadata": {}, 972 | "output_type": "execute_result" 973 | } 974 | ], 975 | "source": [ 976 | "twice_oned" 977 | ] 978 | }, 979 | { 980 | "cell_type": "code", 981 | "execution_count": 56, 982 | "metadata": {}, 983 | "outputs": [ 984 | { 985 | "data": { 986 | "text/plain": [ 987 | "array([[0, 0],\n", 988 | " [1, 2]])" 989 | ] 990 | }, 991 | "execution_count": 56, 992 | "metadata": {}, 993 | "output_type": "execute_result" 994 | } 995 | ], 996 | "source": [ 997 | "np.column_stack((oned,twice_oned))" 998 | ] 999 | }, 1000 | { 1001 | "cell_type": "markdown", 1002 | "metadata": {}, 1003 | "source": [ 1004 | "### 9 数组的分割" 1005 | ] 1006 | }, 1007 | { 1008 | "cell_type": "markdown", 1009 | "metadata": {}, 1010 | "source": [ 1011 | "Numpy数组可以进行水平,垂直或深度分割,相关的函数有hsplit,vsplit,dsplit和split.我们可以将数组分割成相同大小的子数组,也可以指定原数组中需要分割的位置." 1012 | ] 1013 | }, 1014 | { 1015 | "cell_type": "code", 1016 | "execution_count": 57, 1017 | "metadata": {}, 1018 | "outputs": [ 1019 | { 1020 | "data": { 1021 | "text/plain": [ 1022 | "array([[0, 1, 2],\n", 1023 | " [3, 4, 5],\n", 1024 | " [6, 7, 8]])" 1025 | ] 1026 | }, 1027 | "execution_count": 57, 1028 | "metadata": {}, 1029 | "output_type": "execute_result" 1030 | } 1031 | ], 1032 | "source": [ 1033 | "a" 1034 | ] 1035 | }, 1036 | { 1037 | "cell_type": "code", 1038 | "execution_count": 58, 1039 | "metadata": {}, 1040 | "outputs": [ 1041 | { 1042 | "data": { 1043 | "text/plain": [ 1044 | "[array([[0],\n", 1045 | " [3],\n", 1046 | " [6]]), array([[1],\n", 1047 | " [4],\n", 1048 | " [7]]), array([[2],\n", 1049 | " [5],\n", 1050 | " [8]])]" 1051 | ] 1052 | }, 1053 | "execution_count": 58, 1054 | "metadata": {}, 1055 | "output_type": "execute_result" 1056 | } 1057 | ], 1058 | "source": [ 1059 | "np.hsplit(a,3)" 1060 | ] 1061 | }, 1062 | { 1063 | "cell_type": "code", 1064 | "execution_count": 59, 1065 | "metadata": {}, 1066 | "outputs": [ 1067 | { 1068 | "data": { 1069 | "text/plain": [ 1070 | "[array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]" 1071 | ] 1072 | }, 1073 | "execution_count": 59, 1074 | "metadata": {}, 1075 | "output_type": "execute_result" 1076 | } 1077 | ], 1078 | "source": [ 1079 | "np.vsplit(a,3)" 1080 | ] 1081 | }, 1082 | { 1083 | "cell_type": "markdown", 1084 | "metadata": {}, 1085 | "source": [ 1086 | "### 10 数组的属性" 1087 | ] 1088 | }, 1089 | { 1090 | "cell_type": "code", 1091 | "execution_count": 60, 1092 | "metadata": {}, 1093 | "outputs": [ 1094 | { 1095 | "data": { 1096 | "text/plain": [ 1097 | "2" 1098 | ] 1099 | }, 1100 | "execution_count": 60, 1101 | "metadata": {}, 1102 | "output_type": "execute_result" 1103 | } 1104 | ], 1105 | "source": [ 1106 | "a.ndim" 1107 | ] 1108 | }, 1109 | { 1110 | "cell_type": "code", 1111 | "execution_count": 61, 1112 | "metadata": {}, 1113 | "outputs": [ 1114 | { 1115 | "data": { 1116 | "text/plain": [ 1117 | "9" 1118 | ] 1119 | }, 1120 | "execution_count": 61, 1121 | "metadata": {}, 1122 | "output_type": "execute_result" 1123 | } 1124 | ], 1125 | "source": [ 1126 | "a.size" 1127 | ] 1128 | }, 1129 | { 1130 | "cell_type": "code", 1131 | "execution_count": 62, 1132 | "metadata": {}, 1133 | "outputs": [ 1134 | { 1135 | "data": { 1136 | "text/plain": [ 1137 | "8" 1138 | ] 1139 | }, 1140 | "execution_count": 62, 1141 | "metadata": {}, 1142 | "output_type": "execute_result" 1143 | } 1144 | ], 1145 | "source": [ 1146 | "a.itemsize" 1147 | ] 1148 | }, 1149 | { 1150 | "cell_type": "code", 1151 | "execution_count": 63, 1152 | "metadata": {}, 1153 | "outputs": [ 1154 | { 1155 | "data": { 1156 | "text/plain": [ 1157 | "72" 1158 | ] 1159 | }, 1160 | "execution_count": 63, 1161 | "metadata": {}, 1162 | "output_type": "execute_result" 1163 | } 1164 | ], 1165 | "source": [ 1166 | "a.nbytes" 1167 | ] 1168 | }, 1169 | { 1170 | "cell_type": "code", 1171 | "execution_count": 64, 1172 | "metadata": {}, 1173 | "outputs": [ 1174 | { 1175 | "data": { 1176 | "text/plain": [ 1177 | "array([[0, 3, 6],\n", 1178 | " [1, 4, 7],\n", 1179 | " [2, 5, 8]])" 1180 | ] 1181 | }, 1182 | "execution_count": 64, 1183 | "metadata": {}, 1184 | "output_type": "execute_result" 1185 | } 1186 | ], 1187 | "source": [ 1188 | "a.T" 1189 | ] 1190 | }, 1191 | { 1192 | "cell_type": "markdown", 1193 | "metadata": {}, 1194 | "source": [ 1195 | "### 11 数组的转换" 1196 | ] 1197 | }, 1198 | { 1199 | "cell_type": "markdown", 1200 | "metadata": {}, 1201 | "source": [ 1202 | "可以使用tolist函数将Numpy数组转换成Python列表" 1203 | ] 1204 | }, 1205 | { 1206 | "cell_type": "code", 1207 | "execution_count": 65, 1208 | "metadata": {}, 1209 | "outputs": [ 1210 | { 1211 | "data": { 1212 | "text/plain": [ 1213 | "[[0, 1, 2], [3, 4, 5], [6, 7, 8]]" 1214 | ] 1215 | }, 1216 | "execution_count": 65, 1217 | "metadata": {}, 1218 | "output_type": "execute_result" 1219 | } 1220 | ], 1221 | "source": [ 1222 | "a.tolist()" 1223 | ] 1224 | }, 1225 | { 1226 | "cell_type": "markdown", 1227 | "metadata": {}, 1228 | "source": [ 1229 | "astype函数可以在转换数组时指定数据类型" 1230 | ] 1231 | }, 1232 | { 1233 | "cell_type": "code", 1234 | "execution_count": 66, 1235 | "metadata": {}, 1236 | "outputs": [ 1237 | { 1238 | "data": { 1239 | "text/plain": [ 1240 | "array([[0, 1, 2],\n", 1241 | " [3, 4, 5],\n", 1242 | " [6, 7, 8]], dtype=int32)" 1243 | ] 1244 | }, 1245 | "execution_count": 66, 1246 | "metadata": {}, 1247 | "output_type": "execute_result" 1248 | } 1249 | ], 1250 | "source": [ 1251 | "a.astype(np.int32)" 1252 | ] 1253 | }, 1254 | { 1255 | "cell_type": "code", 1256 | "execution_count": null, 1257 | "metadata": { 1258 | "collapsed": true 1259 | }, 1260 | "outputs": [], 1261 | "source": [] 1262 | } 1263 | ], 1264 | "metadata": { 1265 | "kernelspec": { 1266 | "display_name": "Python 2", 1267 | "language": "python", 1268 | "name": "python2" 1269 | }, 1270 | "language_info": { 1271 | "codemirror_mode": { 1272 | "name": "ipython", 1273 | "version": 2 1274 | }, 1275 | "file_extension": ".py", 1276 | "mimetype": "text/x-python", 1277 | "name": "python", 1278 | "nbconvert_exporter": "python", 1279 | "pygments_lexer": "ipython2", 1280 | "version": "2.7.13" 1281 | } 1282 | }, 1283 | "nbformat": 4, 1284 | "nbformat_minor": 2 1285 | } 1286 | -------------------------------------------------------------------------------- /.ipynb_checkpoints/2-常用函数-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "##
常用函数
" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "### 1 文件读写 " 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 2, 20 | "metadata": {}, 21 | "outputs": [], 22 | "source": [ 23 | "import numpy as np" 24 | ] 25 | }, 26 | { 27 | "cell_type": "code", 28 | "execution_count": 4, 29 | "metadata": { 30 | "collapsed": true 31 | }, 32 | "outputs": [], 33 | "source": [ 34 | "i2 = np.eye(2)" 35 | ] 36 | }, 37 | { 38 | "cell_type": "code", 39 | "execution_count": 5, 40 | "metadata": {}, 41 | "outputs": [ 42 | { 43 | "data": { 44 | "text/plain": [ 45 | "array([[1., 0.],\n", 46 | " [0., 1.]])" 47 | ] 48 | }, 49 | "execution_count": 5, 50 | "metadata": {}, 51 | "output_type": "execute_result" 52 | } 53 | ], 54 | "source": [ 55 | "i2" 56 | ] 57 | }, 58 | { 59 | "cell_type": "code", 60 | "execution_count": 6, 61 | "metadata": {}, 62 | "outputs": [ 63 | { 64 | "data": { 65 | "text/plain": [ 66 | "dtype('float64')" 67 | ] 68 | }, 69 | "execution_count": 6, 70 | "metadata": {}, 71 | "output_type": "execute_result" 72 | } 73 | ], 74 | "source": [ 75 | "i2.dtype" 76 | ] 77 | }, 78 | { 79 | "cell_type": "code", 80 | "execution_count": 7, 81 | "metadata": { 82 | "collapsed": true 83 | }, 84 | "outputs": [], 85 | "source": [ 86 | "np.savetxt('eye.txt',i2)" 87 | ] 88 | }, 89 | { 90 | "cell_type": "markdown", 91 | "metadata": {}, 92 | "source": [ 93 | "### 2 CSV文件读写" 94 | ] 95 | }, 96 | { 97 | "cell_type": "markdown", 98 | "metadata": {}, 99 | "source": [ 100 | "可以看到,使用逗号分隔符,usecols指定了特定的列,unpack表示将选择的列拆分成多个数据,分别接收" 101 | ] 102 | }, 103 | { 104 | "cell_type": "code", 105 | "execution_count": 8, 106 | "metadata": { 107 | "collapsed": true 108 | }, 109 | "outputs": [], 110 | "source": [ 111 | "c,v = np.loadtxt('data.csv',delimiter=',',usecols=(6,7),unpack = True)" 112 | ] 113 | }, 114 | { 115 | "cell_type": "code", 116 | "execution_count": 9, 117 | "metadata": {}, 118 | "outputs": [ 119 | { 120 | "data": { 121 | "text/plain": [ 122 | "336.1" 123 | ] 124 | }, 125 | "execution_count": 9, 126 | "metadata": {}, 127 | "output_type": "execute_result" 128 | } 129 | ], 130 | "source": [ 131 | "c" 132 | ] 133 | }, 134 | { 135 | "cell_type": "code", 136 | "execution_count": 10, 137 | "metadata": {}, 138 | "outputs": [ 139 | { 140 | "data": { 141 | "text/plain": [ 142 | "21144800.0" 143 | ] 144 | }, 145 | "execution_count": 10, 146 | "metadata": {}, 147 | "output_type": "execute_result" 148 | } 149 | ], 150 | "source": [ 151 | "v" 152 | ] 153 | }, 154 | { 155 | "cell_type": "markdown", 156 | "metadata": {}, 157 | "source": [ 158 | "### 3 成交量加权平均价格(VWAP)" 159 | ] 160 | }, 161 | { 162 | "cell_type": "code", 163 | "execution_count": 11, 164 | "metadata": { 165 | "collapsed": true 166 | }, 167 | "outputs": [], 168 | "source": [ 169 | "vwap = np.average(c,weights =v)" 170 | ] 171 | }, 172 | { 173 | "cell_type": "code", 174 | "execution_count": 12, 175 | "metadata": {}, 176 | "outputs": [ 177 | { 178 | "data": { 179 | "text/plain": [ 180 | "336.1" 181 | ] 182 | }, 183 | "execution_count": 12, 184 | "metadata": {}, 185 | "output_type": "execute_result" 186 | } 187 | ], 188 | "source": [ 189 | "vwap" 190 | ] 191 | }, 192 | { 193 | "cell_type": "code", 194 | "execution_count": 13, 195 | "metadata": { 196 | "collapsed": true 197 | }, 198 | "outputs": [], 199 | "source": [ 200 | "mean = np.mean(c)" 201 | ] 202 | }, 203 | { 204 | "cell_type": "code", 205 | "execution_count": 14, 206 | "metadata": {}, 207 | "outputs": [ 208 | { 209 | "data": { 210 | "text/plain": [ 211 | "336.1" 212 | ] 213 | }, 214 | "execution_count": 14, 215 | "metadata": {}, 216 | "output_type": "execute_result" 217 | } 218 | ], 219 | "source": [ 220 | "mean" 221 | ] 222 | }, 223 | { 224 | "cell_type": "markdown", 225 | "metadata": {}, 226 | "source": [ 227 | "### 4 取值范围" 228 | ] 229 | }, 230 | { 231 | "cell_type": "code", 232 | "execution_count": 15, 233 | "metadata": { 234 | "collapsed": true 235 | }, 236 | "outputs": [], 237 | "source": [ 238 | "h,l = np.loadtxt('data.csv',delimiter=',',usecols =(4,5),unpack = True)" 239 | ] 240 | }, 241 | { 242 | "cell_type": "code", 243 | "execution_count": 18, 244 | "metadata": {}, 245 | "outputs": [ 246 | { 247 | "data": { 248 | "text/plain": [ 249 | "344.4" 250 | ] 251 | }, 252 | "execution_count": 18, 253 | "metadata": {}, 254 | "output_type": "execute_result" 255 | } 256 | ], 257 | "source": [ 258 | "h" 259 | ] 260 | }, 261 | { 262 | "cell_type": "code", 263 | "execution_count": 19, 264 | "metadata": {}, 265 | "outputs": [ 266 | { 267 | "data": { 268 | "text/plain": [ 269 | "333.53" 270 | ] 271 | }, 272 | "execution_count": 19, 273 | "metadata": {}, 274 | "output_type": "execute_result" 275 | } 276 | ], 277 | "source": [ 278 | "l" 279 | ] 280 | }, 281 | { 282 | "cell_type": "code", 283 | "execution_count": 20, 284 | "metadata": {}, 285 | "outputs": [ 286 | { 287 | "data": { 288 | "text/plain": [ 289 | "344.4" 290 | ] 291 | }, 292 | "execution_count": 20, 293 | "metadata": {}, 294 | "output_type": "execute_result" 295 | } 296 | ], 297 | "source": [ 298 | "np.max(h)" 299 | ] 300 | }, 301 | { 302 | "cell_type": "code", 303 | "execution_count": 21, 304 | "metadata": {}, 305 | "outputs": [ 306 | { 307 | "data": { 308 | "text/plain": [ 309 | "333.53" 310 | ] 311 | }, 312 | "execution_count": 21, 313 | "metadata": {}, 314 | "output_type": "execute_result" 315 | } 316 | ], 317 | "source": [ 318 | "np.min(l)" 319 | ] 320 | }, 321 | { 322 | "cell_type": "code", 323 | "execution_count": 22, 324 | "metadata": {}, 325 | "outputs": [ 326 | { 327 | "data": { 328 | "text/plain": [ 329 | "0.0" 330 | ] 331 | }, 332 | "execution_count": 22, 333 | "metadata": {}, 334 | "output_type": "execute_result" 335 | } 336 | ], 337 | "source": [ 338 | "np.ptp(h)" 339 | ] 340 | }, 341 | { 342 | "cell_type": "code", 343 | "execution_count": 23, 344 | "metadata": { 345 | "collapsed": true 346 | }, 347 | "outputs": [], 348 | "source": [ 349 | "median = np.median(c)" 350 | ] 351 | }, 352 | { 353 | "cell_type": "code", 354 | "execution_count": 24, 355 | "metadata": {}, 356 | "outputs": [ 357 | { 358 | "data": { 359 | "text/plain": [ 360 | "336.1" 361 | ] 362 | }, 363 | "execution_count": 24, 364 | "metadata": {}, 365 | "output_type": "execute_result" 366 | } 367 | ], 368 | "source": [ 369 | "median" 370 | ] 371 | }, 372 | { 373 | "cell_type": "code", 374 | "execution_count": 25, 375 | "metadata": { 376 | "collapsed": true 377 | }, 378 | "outputs": [], 379 | "source": [ 380 | "a = np.random.randn(10)" 381 | ] 382 | }, 383 | { 384 | "cell_type": "code", 385 | "execution_count": 26, 386 | "metadata": {}, 387 | "outputs": [ 388 | { 389 | "data": { 390 | "text/plain": [ 391 | "array([-0.91366364, 0.56874779, 1.93163306, -1.20680229, 0.61898735,\n", 392 | " -0.03009919, 1.0977881 , -1.69915867, -0.54960063, -0.38438985])" 393 | ] 394 | }, 395 | "execution_count": 26, 396 | "metadata": {}, 397 | "output_type": "execute_result" 398 | } 399 | ], 400 | "source": [ 401 | "a" 402 | ] 403 | }, 404 | { 405 | "cell_type": "code", 406 | "execution_count": 27, 407 | "metadata": { 408 | "collapsed": true 409 | }, 410 | "outputs": [], 411 | "source": [ 412 | "sorted_close = np.msort(a)" 413 | ] 414 | }, 415 | { 416 | "cell_type": "code", 417 | "execution_count": 28, 418 | "metadata": {}, 419 | "outputs": [ 420 | { 421 | "data": { 422 | "text/plain": [ 423 | "array([-1.69915867, -1.20680229, -0.91366364, -0.54960063, -0.38438985,\n", 424 | " -0.03009919, 0.56874779, 0.61898735, 1.0977881 , 1.93163306])" 425 | ] 426 | }, 427 | "execution_count": 28, 428 | "metadata": {}, 429 | "output_type": "execute_result" 430 | } 431 | ], 432 | "source": [ 433 | "sorted_close" 434 | ] 435 | }, 436 | { 437 | "cell_type": "code", 438 | "execution_count": 29, 439 | "metadata": {}, 440 | "outputs": [ 441 | { 442 | "data": { 443 | "text/plain": [ 444 | "-0.20724452344036656" 445 | ] 446 | }, 447 | "execution_count": 29, 448 | "metadata": {}, 449 | "output_type": "execute_result" 450 | } 451 | ], 452 | "source": [ 453 | "np.median(a)" 454 | ] 455 | }, 456 | { 457 | "cell_type": "code", 458 | "execution_count": 30, 459 | "metadata": {}, 460 | "outputs": [ 461 | { 462 | "data": { 463 | "text/plain": [ 464 | "-0.05665579774572808" 465 | ] 466 | }, 467 | "execution_count": 30, 468 | "metadata": {}, 469 | "output_type": "execute_result" 470 | } 471 | ], 472 | "source": [ 473 | "np.mean(a)" 474 | ] 475 | }, 476 | { 477 | "cell_type": "code", 478 | "execution_count": 31, 479 | "metadata": {}, 480 | "outputs": [ 481 | { 482 | "data": { 483 | "text/plain": [ 484 | "1.123988115028372" 485 | ] 486 | }, 487 | "execution_count": 31, 488 | "metadata": {}, 489 | "output_type": "execute_result" 490 | } 491 | ], 492 | "source": [ 493 | "np.var(a)" 494 | ] 495 | }, 496 | { 497 | "cell_type": "code", 498 | "execution_count": 32, 499 | "metadata": {}, 500 | "outputs": [ 501 | { 502 | "data": { 503 | "text/plain": [ 504 | "array([ 1.48241142, 1.36288528, -3.13843535, 1.82578963, -0.64908654,\n", 505 | " 1.1278873 , -2.79694677, 1.14955804, 0.16521078])" 506 | ] 507 | }, 508 | "execution_count": 32, 509 | "metadata": {}, 510 | "output_type": "execute_result" 511 | } 512 | ], 513 | "source": [ 514 | "np.diff(a)" 515 | ] 516 | }, 517 | { 518 | "cell_type": "code", 519 | "execution_count": 33, 520 | "metadata": {}, 521 | "outputs": [ 522 | { 523 | "data": { 524 | "text/plain": [ 525 | "array([-0.91366364, 0.56874779, 1.93163306, -1.20680229, 0.61898735,\n", 526 | " -0.03009919, 1.0977881 , -1.69915867, -0.54960063, -0.38438985])" 527 | ] 528 | }, 529 | "execution_count": 33, 530 | "metadata": {}, 531 | "output_type": "execute_result" 532 | } 533 | ], 534 | "source": [ 535 | "a" 536 | ] 537 | }, 538 | { 539 | "cell_type": "code", 540 | "execution_count": 35, 541 | "metadata": {}, 542 | "outputs": [], 543 | "source": [ 544 | "returns = np.diff(a)/a[:-1]" 545 | ] 546 | }, 547 | { 548 | "cell_type": "code", 549 | "execution_count": 36, 550 | "metadata": {}, 551 | "outputs": [ 552 | { 553 | "data": { 554 | "text/plain": [ 555 | "array([ -1.62249143, 2.39629113, -1.62475752, -1.51291529,\n", 556 | " -1.04862651, -37.47234271, -2.54780204, -0.67654543,\n", 557 | " -0.30060151])" 558 | ] 559 | }, 560 | "execution_count": 36, 561 | "metadata": {}, 562 | "output_type": "execute_result" 563 | } 564 | ], 565 | "source": [ 566 | "returns" 567 | ] 568 | }, 569 | { 570 | "cell_type": "code", 571 | "execution_count": 37, 572 | "metadata": {}, 573 | "outputs": [ 574 | { 575 | "data": { 576 | "text/plain": [ 577 | "11.57815124733535" 578 | ] 579 | }, 580 | "execution_count": 37, 581 | "metadata": {}, 582 | "output_type": "execute_result" 583 | } 584 | ], 585 | "source": [ 586 | "np.std(returns)" 587 | ] 588 | }, 589 | { 590 | "cell_type": "code", 591 | "execution_count": 38, 592 | "metadata": {}, 593 | "outputs": [ 594 | { 595 | "data": { 596 | "text/plain": [ 597 | "(array([1]),)" 598 | ] 599 | }, 600 | "execution_count": 38, 601 | "metadata": {}, 602 | "output_type": "execute_result" 603 | } 604 | ], 605 | "source": [ 606 | "np.where(returns>0)" 607 | ] 608 | }, 609 | { 610 | "cell_type": "code", 611 | "execution_count": 39, 612 | "metadata": {}, 613 | "outputs": [ 614 | { 615 | "data": { 616 | "text/plain": [ 617 | "0.0" 618 | ] 619 | }, 620 | "execution_count": 39, 621 | "metadata": {}, 622 | "output_type": "execute_result" 623 | } 624 | ], 625 | "source": [ 626 | "np.sqrt(1/12)" 627 | ] 628 | }, 629 | { 630 | "cell_type": "code", 631 | "execution_count": 40, 632 | "metadata": {}, 633 | "outputs": [ 634 | { 635 | "data": { 636 | "text/plain": [ 637 | "0.28867513459481287" 638 | ] 639 | }, 640 | "execution_count": 40, 641 | "metadata": {}, 642 | "output_type": "execute_result" 643 | } 644 | ], 645 | "source": [ 646 | "np.sqrt (1./12)" 647 | ] 648 | }, 649 | { 650 | "cell_type": "code", 651 | "execution_count": 41, 652 | "metadata": { 653 | "collapsed": true 654 | }, 655 | "outputs": [], 656 | "source": [ 657 | "a = np.arange(10)" 658 | ] 659 | }, 660 | { 661 | "cell_type": "code", 662 | "execution_count": 42, 663 | "metadata": { 664 | "collapsed": true 665 | }, 666 | "outputs": [], 667 | "source": [ 668 | "indices = np.where(a>5)" 669 | ] 670 | }, 671 | { 672 | "cell_type": "code", 673 | "execution_count": 43, 674 | "metadata": {}, 675 | "outputs": [ 676 | { 677 | "data": { 678 | "text/plain": [ 679 | "array([[6, 7, 8, 9]])" 680 | ] 681 | }, 682 | "execution_count": 43, 683 | "metadata": {}, 684 | "output_type": "execute_result" 685 | } 686 | ], 687 | "source": [ 688 | "np.take(a,indices)" 689 | ] 690 | }, 691 | { 692 | "cell_type": "code", 693 | "execution_count": 44, 694 | "metadata": {}, 695 | "outputs": [ 696 | { 697 | "data": { 698 | "text/plain": [ 699 | "0" 700 | ] 701 | }, 702 | "execution_count": 44, 703 | "metadata": {}, 704 | "output_type": "execute_result" 705 | } 706 | ], 707 | "source": [ 708 | "np.argmin(a)" 709 | ] 710 | }, 711 | { 712 | "cell_type": "code", 713 | "execution_count": 45, 714 | "metadata": {}, 715 | "outputs": [ 716 | { 717 | "data": { 718 | "text/plain": [ 719 | "9" 720 | ] 721 | }, 722 | "execution_count": 45, 723 | "metadata": {}, 724 | "output_type": "execute_result" 725 | } 726 | ], 727 | "source": [ 728 | "np.argmax(a)" 729 | ] 730 | }, 731 | { 732 | "cell_type": "code", 733 | "execution_count": 46, 734 | "metadata": {}, 735 | "outputs": [ 736 | { 737 | "data": { 738 | "text/plain": [ 739 | "array([1., 1., 1., 1., 1.])" 740 | ] 741 | }, 742 | "execution_count": 46, 743 | "metadata": {}, 744 | "output_type": "execute_result" 745 | } 746 | ], 747 | "source": [ 748 | "np.ones(5)" 749 | ] 750 | }, 751 | { 752 | "cell_type": "code", 753 | "execution_count": 47, 754 | "metadata": { 755 | "collapsed": true 756 | }, 757 | "outputs": [], 758 | "source": [ 759 | "a = np.ones(10)" 760 | ] 761 | }, 762 | { 763 | "cell_type": "code", 764 | "execution_count": 48, 765 | "metadata": { 766 | "collapsed": true 767 | }, 768 | "outputs": [], 769 | "source": [ 770 | "a.fill(5)" 771 | ] 772 | }, 773 | { 774 | "cell_type": "code", 775 | "execution_count": 49, 776 | "metadata": {}, 777 | "outputs": [ 778 | { 779 | "data": { 780 | "text/plain": [ 781 | "array([5., 5., 5., 5., 5., 5., 5., 5., 5., 5.])" 782 | ] 783 | }, 784 | "execution_count": 49, 785 | "metadata": {}, 786 | "output_type": "execute_result" 787 | } 788 | ], 789 | "source": [ 790 | "a" 791 | ] 792 | }, 793 | { 794 | "cell_type": "code", 795 | "execution_count": 51, 796 | "metadata": {}, 797 | "outputs": [ 798 | { 799 | "data": { 800 | "text/plain": [ 801 | "array([[1, 1, 1],\n", 802 | " [1, 1, 1]], dtype=int32)" 803 | ] 804 | }, 805 | "execution_count": 51, 806 | "metadata": {}, 807 | "output_type": "execute_result" 808 | } 809 | ], 810 | "source": [ 811 | "np.ones(shape=(2,3),dtype = np.int32)" 812 | ] 813 | }, 814 | { 815 | "cell_type": "markdown", 816 | "metadata": {}, 817 | "source": [ 818 | "np.dot 如果处理的是一维数据,那么就是点积,如果处理二维数据,就是矩阵的乘积" 819 | ] 820 | }, 821 | { 822 | "cell_type": "code", 823 | "execution_count": 52, 824 | "metadata": { 825 | "collapsed": true 826 | }, 827 | "outputs": [], 828 | "source": [ 829 | "a = np.arange(9)" 830 | ] 831 | }, 832 | { 833 | "cell_type": "code", 834 | "execution_count": 53, 835 | "metadata": { 836 | "collapsed": true 837 | }, 838 | "outputs": [], 839 | "source": [ 840 | "b = np.arange(9)" 841 | ] 842 | }, 843 | { 844 | "cell_type": "code", 845 | "execution_count": 54, 846 | "metadata": {}, 847 | "outputs": [ 848 | { 849 | "data": { 850 | "text/plain": [ 851 | "204" 852 | ] 853 | }, 854 | "execution_count": 54, 855 | "metadata": {}, 856 | "output_type": "execute_result" 857 | } 858 | ], 859 | "source": [ 860 | "np.dot(a,b)" 861 | ] 862 | }, 863 | { 864 | "cell_type": "code", 865 | "execution_count": 56, 866 | "metadata": {}, 867 | "outputs": [], 868 | "source": [ 869 | "a = a.reshape(3,3)" 870 | ] 871 | }, 872 | { 873 | "cell_type": "code", 874 | "execution_count": 57, 875 | "metadata": {}, 876 | "outputs": [ 877 | { 878 | "data": { 879 | "text/plain": [ 880 | "array([[0, 1, 2],\n", 881 | " [3, 4, 5],\n", 882 | " [6, 7, 8]])" 883 | ] 884 | }, 885 | "execution_count": 57, 886 | "metadata": {}, 887 | "output_type": "execute_result" 888 | } 889 | ], 890 | "source": [ 891 | "a" 892 | ] 893 | }, 894 | { 895 | "cell_type": "code", 896 | "execution_count": 58, 897 | "metadata": { 898 | "collapsed": true 899 | }, 900 | "outputs": [], 901 | "source": [ 902 | "b = b.reshape(3,3)" 903 | ] 904 | }, 905 | { 906 | "cell_type": "code", 907 | "execution_count": 59, 908 | "metadata": {}, 909 | "outputs": [ 910 | { 911 | "data": { 912 | "text/plain": [ 913 | "array([[ 15, 18, 21],\n", 914 | " [ 42, 54, 66],\n", 915 | " [ 69, 90, 111]])" 916 | ] 917 | }, 918 | "execution_count": 59, 919 | "metadata": {}, 920 | "output_type": "execute_result" 921 | } 922 | ], 923 | "source": [ 924 | "np.dot(a,b)" 925 | ] 926 | }, 927 | { 928 | "cell_type": "code", 929 | "execution_count": 60, 930 | "metadata": {}, 931 | "outputs": [ 932 | { 933 | "data": { 934 | "text/plain": [ 935 | "array([[3, 3, 3],\n", 936 | " [3, 4, 5],\n", 937 | " [6, 6, 6]])" 938 | ] 939 | }, 940 | "execution_count": 60, 941 | "metadata": {}, 942 | "output_type": "execute_result" 943 | } 944 | ], 945 | "source": [ 946 | "b.clip(3,6)" 947 | ] 948 | }, 949 | { 950 | "cell_type": "code", 951 | "execution_count": 62, 952 | "metadata": {}, 953 | "outputs": [], 954 | "source": [ 955 | "a = np.arange(9)" 956 | ] 957 | }, 958 | { 959 | "cell_type": "code", 960 | "execution_count": 63, 961 | "metadata": {}, 962 | "outputs": [ 963 | { 964 | "data": { 965 | "text/plain": [ 966 | "array([3, 4, 5, 6, 7, 8])" 967 | ] 968 | }, 969 | "execution_count": 63, 970 | "metadata": {}, 971 | "output_type": "execute_result" 972 | } 973 | ], 974 | "source": [ 975 | "a.compress(a>2)" 976 | ] 977 | }, 978 | { 979 | "cell_type": "code", 980 | "execution_count": 65, 981 | "metadata": {}, 982 | "outputs": [], 983 | "source": [ 984 | "a = np.arange(1,9)" 985 | ] 986 | }, 987 | { 988 | "cell_type": "code", 989 | "execution_count": 66, 990 | "metadata": {}, 991 | "outputs": [ 992 | { 993 | "data": { 994 | "text/plain": [ 995 | "40320" 996 | ] 997 | }, 998 | "execution_count": 66, 999 | "metadata": {}, 1000 | "output_type": "execute_result" 1001 | } 1002 | ], 1003 | "source": [ 1004 | "a.prod()" 1005 | ] 1006 | }, 1007 | { 1008 | "cell_type": "code", 1009 | "execution_count": 67, 1010 | "metadata": {}, 1011 | "outputs": [ 1012 | { 1013 | "data": { 1014 | "text/plain": [ 1015 | "array([ 1, 2, 6, 24, 120, 720, 5040, 40320])" 1016 | ] 1017 | }, 1018 | "execution_count": 67, 1019 | "metadata": {}, 1020 | "output_type": "execute_result" 1021 | } 1022 | ], 1023 | "source": [ 1024 | "a.cumprod()" 1025 | ] 1026 | } 1027 | ], 1028 | "metadata": { 1029 | "kernelspec": { 1030 | "display_name": "Python 2", 1031 | "language": "python", 1032 | "name": "python2" 1033 | }, 1034 | "language_info": { 1035 | "codemirror_mode": { 1036 | "name": "ipython", 1037 | "version": 2 1038 | }, 1039 | "file_extension": ".py", 1040 | "mimetype": "text/x-python", 1041 | "name": "python", 1042 | "nbconvert_exporter": "python", 1043 | "pygments_lexer": "ipython2", 1044 | "version": "2.7.13" 1045 | } 1046 | }, 1047 | "nbformat": 4, 1048 | "nbformat_minor": 2 1049 | } 1050 | -------------------------------------------------------------------------------- /.ipynb_checkpoints/3-便捷函数-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "##
便捷函数
" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "### 1 常用函数" 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 2, 20 | "metadata": {}, 21 | "outputs": [], 22 | "source": [ 23 | "import numpy as np" 24 | ] 25 | }, 26 | { 27 | "cell_type": "code", 28 | "execution_count": 3, 29 | "metadata": { 30 | "collapsed": true 31 | }, 32 | "outputs": [], 33 | "source": [ 34 | "a = np.arange(-5,5)" 35 | ] 36 | }, 37 | { 38 | "cell_type": "code", 39 | "execution_count": 9, 40 | "metadata": {}, 41 | "outputs": [], 42 | "source": [ 43 | "signs = np.sign(a)" 44 | ] 45 | }, 46 | { 47 | "cell_type": "code", 48 | "execution_count": 10, 49 | "metadata": {}, 50 | "outputs": [], 51 | "source": [ 52 | "piecewises = np.piecewise(a,[a>0,a<0],[1,-1])" 53 | ] 54 | }, 55 | { 56 | "cell_type": "code", 57 | "execution_count": 12, 58 | "metadata": {}, 59 | "outputs": [ 60 | { 61 | "data": { 62 | "text/plain": [ 63 | "True" 64 | ] 65 | }, 66 | "execution_count": 12, 67 | "metadata": {}, 68 | "output_type": "execute_result" 69 | } 70 | ], 71 | "source": [ 72 | "np.array_equal(signs,piecewises)" 73 | ] 74 | }, 75 | { 76 | "cell_type": "markdown", 77 | "metadata": {}, 78 | "source": [ 79 | "### 2 创建矩阵" 80 | ] 81 | }, 82 | { 83 | "cell_type": "code", 84 | "execution_count": 13, 85 | "metadata": { 86 | "collapsed": true 87 | }, 88 | "outputs": [], 89 | "source": [ 90 | "A = np.mat('1 2 3; 4 5 6; 7 8 9')" 91 | ] 92 | }, 93 | { 94 | "cell_type": "code", 95 | "execution_count": 14, 96 | "metadata": {}, 97 | "outputs": [ 98 | { 99 | "data": { 100 | "text/plain": [ 101 | "matrix([[1, 2, 3],\n", 102 | " [4, 5, 6],\n", 103 | " [7, 8, 9]])" 104 | ] 105 | }, 106 | "execution_count": 14, 107 | "metadata": {}, 108 | "output_type": "execute_result" 109 | } 110 | ], 111 | "source": [ 112 | "A" 113 | ] 114 | }, 115 | { 116 | "cell_type": "code", 117 | "execution_count": 15, 118 | "metadata": {}, 119 | "outputs": [ 120 | { 121 | "data": { 122 | "text/plain": [ 123 | "matrix([[1, 4, 7],\n", 124 | " [2, 5, 8],\n", 125 | " [3, 6, 9]])" 126 | ] 127 | }, 128 | "execution_count": 15, 129 | "metadata": {}, 130 | "output_type": "execute_result" 131 | } 132 | ], 133 | "source": [ 134 | "A.T" 135 | ] 136 | }, 137 | { 138 | "cell_type": "code", 139 | "execution_count": 19, 140 | "metadata": {}, 141 | "outputs": [], 142 | "source": [ 143 | "A = np.eye(2)" 144 | ] 145 | }, 146 | { 147 | "cell_type": "code", 148 | "execution_count": 20, 149 | "metadata": {}, 150 | "outputs": [ 151 | { 152 | "data": { 153 | "text/plain": [ 154 | "array([[1., 0.],\n", 155 | " [0., 1.]])" 156 | ] 157 | }, 158 | "execution_count": 20, 159 | "metadata": {}, 160 | "output_type": "execute_result" 161 | } 162 | ], 163 | "source": [ 164 | "A" 165 | ] 166 | }, 167 | { 168 | "cell_type": "code", 169 | "execution_count": 21, 170 | "metadata": { 171 | "collapsed": true 172 | }, 173 | "outputs": [], 174 | "source": [ 175 | "B = 2*A" 176 | ] 177 | }, 178 | { 179 | "cell_type": "code", 180 | "execution_count": 22, 181 | "metadata": {}, 182 | "outputs": [ 183 | { 184 | "data": { 185 | "text/plain": [ 186 | "array([[2., 0.],\n", 187 | " [0., 2.]])" 188 | ] 189 | }, 190 | "execution_count": 22, 191 | "metadata": {}, 192 | "output_type": "execute_result" 193 | } 194 | ], 195 | "source": [ 196 | "B" 197 | ] 198 | }, 199 | { 200 | "cell_type": "code", 201 | "execution_count": 23, 202 | "metadata": {}, 203 | "outputs": [ 204 | { 205 | "data": { 206 | "text/plain": [ 207 | "matrix([[1., 0., 2., 0.],\n", 208 | " [0., 1., 0., 2.],\n", 209 | " [1., 0., 2., 0.],\n", 210 | " [0., 1., 0., 2.]])" 211 | ] 212 | }, 213 | "execution_count": 23, 214 | "metadata": {}, 215 | "output_type": "execute_result" 216 | } 217 | ], 218 | "source": [ 219 | "np.bmat('A B;A B')" 220 | ] 221 | }, 222 | { 223 | "cell_type": "markdown", 224 | "metadata": {}, 225 | "source": [ 226 | "### 3 通用函数" 227 | ] 228 | }, 229 | { 230 | "cell_type": "markdown", 231 | "metadata": {}, 232 | "source": [ 233 | "通用函数的输入是一组标量,输出也是一组标量,他们通常可以对应于基本数学运算,如加减乘除" 234 | ] 235 | }, 236 | { 237 | "cell_type": "code", 238 | "execution_count": 24, 239 | "metadata": { 240 | "collapsed": true 241 | }, 242 | "outputs": [], 243 | "source": [ 244 | "def ultimate_answer(a):\n", 245 | " return np.zeros_like(a)" 246 | ] 247 | }, 248 | { 249 | "cell_type": "code", 250 | "execution_count": 25, 251 | "metadata": { 252 | "collapsed": true 253 | }, 254 | "outputs": [], 255 | "source": [ 256 | "a = np.eye(3)" 257 | ] 258 | }, 259 | { 260 | "cell_type": "code", 261 | "execution_count": 26, 262 | "metadata": {}, 263 | "outputs": [ 264 | { 265 | "data": { 266 | "text/plain": [ 267 | "array([[0., 0., 0.],\n", 268 | " [0., 0., 0.],\n", 269 | " [0., 0., 0.]])" 270 | ] 271 | }, 272 | "execution_count": 26, 273 | "metadata": {}, 274 | "output_type": "execute_result" 275 | } 276 | ], 277 | "source": [ 278 | "ultimate_answer(a)" 279 | ] 280 | }, 281 | { 282 | "cell_type": "code", 283 | "execution_count": 27, 284 | "metadata": {}, 285 | "outputs": [ 286 | { 287 | "data": { 288 | "text/plain": [ 289 | "" 290 | ] 291 | }, 292 | "execution_count": 27, 293 | "metadata": {}, 294 | "output_type": "execute_result" 295 | } 296 | ], 297 | "source": [ 298 | "a.flat" 299 | ] 300 | }, 301 | { 302 | "cell_type": "code", 303 | "execution_count": 28, 304 | "metadata": {}, 305 | "outputs": [ 306 | { 307 | "data": { 308 | "text/plain": [ 309 | "[1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]" 310 | ] 311 | }, 312 | "execution_count": 28, 313 | "metadata": {}, 314 | "output_type": "execute_result" 315 | } 316 | ], 317 | "source": [ 318 | "list(a.flat)" 319 | ] 320 | }, 321 | { 322 | "cell_type": "code", 323 | "execution_count": 29, 324 | "metadata": { 325 | "collapsed": true 326 | }, 327 | "outputs": [], 328 | "source": [ 329 | "a = np.arange(9)" 330 | ] 331 | }, 332 | { 333 | "cell_type": "code", 334 | "execution_count": 30, 335 | "metadata": {}, 336 | "outputs": [ 337 | { 338 | "data": { 339 | "text/plain": [ 340 | "36" 341 | ] 342 | }, 343 | "execution_count": 30, 344 | "metadata": {}, 345 | "output_type": "execute_result" 346 | } 347 | ], 348 | "source": [ 349 | "np.add.reduce(a)" 350 | ] 351 | }, 352 | { 353 | "cell_type": "code", 354 | "execution_count": 31, 355 | "metadata": {}, 356 | "outputs": [ 357 | { 358 | "data": { 359 | "text/plain": [ 360 | "array([ 0, 1, 3, 6, 10, 15, 21, 28, 36])" 361 | ] 362 | }, 363 | "execution_count": 31, 364 | "metadata": {}, 365 | "output_type": "execute_result" 366 | } 367 | ], 368 | "source": [ 369 | "np.add.accumulate(a)" 370 | ] 371 | }, 372 | { 373 | "cell_type": "markdown", 374 | "metadata": {}, 375 | "source": [ 376 | "### 4 算术运算" 377 | ] 378 | }, 379 | { 380 | "cell_type": "code", 381 | "execution_count": 32, 382 | "metadata": { 383 | "collapsed": true 384 | }, 385 | "outputs": [], 386 | "source": [ 387 | "a = np.array([2,6,5])\n", 388 | "b = np.array([1,2,3])" 389 | ] 390 | }, 391 | { 392 | "cell_type": "code", 393 | "execution_count": 33, 394 | "metadata": {}, 395 | "outputs": [ 396 | { 397 | "data": { 398 | "text/plain": [ 399 | "array([2, 3, 1])" 400 | ] 401 | }, 402 | "execution_count": 33, 403 | "metadata": {}, 404 | "output_type": "execute_result" 405 | } 406 | ], 407 | "source": [ 408 | "np.divide(a,b)" 409 | ] 410 | }, 411 | { 412 | "cell_type": "code", 413 | "execution_count": 34, 414 | "metadata": {}, 415 | "outputs": [ 416 | { 417 | "data": { 418 | "text/plain": [ 419 | "array([0, 0, 0])" 420 | ] 421 | }, 422 | "execution_count": 34, 423 | "metadata": {}, 424 | "output_type": "execute_result" 425 | } 426 | ], 427 | "source": [ 428 | "np.divide(b,a)" 429 | ] 430 | }, 431 | { 432 | "cell_type": "code", 433 | "execution_count": 35, 434 | "metadata": {}, 435 | "outputs": [ 436 | { 437 | "data": { 438 | "text/plain": [ 439 | "array([2. , 3. , 1.66666667])" 440 | ] 441 | }, 442 | "execution_count": 35, 443 | "metadata": {}, 444 | "output_type": "execute_result" 445 | } 446 | ], 447 | "source": [ 448 | "np.true_divide(a,b)" 449 | ] 450 | }, 451 | { 452 | "cell_type": "code", 453 | "execution_count": 36, 454 | "metadata": {}, 455 | "outputs": [ 456 | { 457 | "data": { 458 | "text/plain": [ 459 | "array([0.5 , 0.33333333, 0.6 ])" 460 | ] 461 | }, 462 | "execution_count": 36, 463 | "metadata": {}, 464 | "output_type": "execute_result" 465 | } 466 | ], 467 | "source": [ 468 | "np.true_divide(b,a)" 469 | ] 470 | }, 471 | { 472 | "cell_type": "code", 473 | "execution_count": 37, 474 | "metadata": { 475 | "collapsed": true 476 | }, 477 | "outputs": [], 478 | "source": [ 479 | "from __future__ import division" 480 | ] 481 | }, 482 | { 483 | "cell_type": "code", 484 | "execution_count": 38, 485 | "metadata": {}, 486 | "outputs": [ 487 | { 488 | "data": { 489 | "text/plain": [ 490 | "array([2. , 3. , 1.66666667])" 491 | ] 492 | }, 493 | "execution_count": 38, 494 | "metadata": {}, 495 | "output_type": "execute_result" 496 | } 497 | ], 498 | "source": [ 499 | "a/b" 500 | ] 501 | }, 502 | { 503 | "cell_type": "code", 504 | "execution_count": 39, 505 | "metadata": {}, 506 | "outputs": [ 507 | { 508 | "data": { 509 | "text/plain": [ 510 | "array([2, 3, 1])" 511 | ] 512 | }, 513 | "execution_count": 39, 514 | "metadata": {}, 515 | "output_type": "execute_result" 516 | } 517 | ], 518 | "source": [ 519 | "a//b" 520 | ] 521 | }, 522 | { 523 | "cell_type": "code", 524 | "execution_count": 40, 525 | "metadata": { 526 | "collapsed": true 527 | }, 528 | "outputs": [], 529 | "source": [ 530 | "a = np.arange(-4,4)" 531 | ] 532 | }, 533 | { 534 | "cell_type": "code", 535 | "execution_count": 41, 536 | "metadata": {}, 537 | "outputs": [ 538 | { 539 | "data": { 540 | "text/plain": [ 541 | "array([-4, -3, -2, -1, 0, 1, 2, 3])" 542 | ] 543 | }, 544 | "execution_count": 41, 545 | "metadata": {}, 546 | "output_type": "execute_result" 547 | } 548 | ], 549 | "source": [ 550 | "a" 551 | ] 552 | }, 553 | { 554 | "cell_type": "code", 555 | "execution_count": 42, 556 | "metadata": {}, 557 | "outputs": [ 558 | { 559 | "data": { 560 | "text/plain": [ 561 | "array([0, 1, 0, 1, 0, 1, 0, 1])" 562 | ] 563 | }, 564 | "execution_count": 42, 565 | "metadata": {}, 566 | "output_type": "execute_result" 567 | } 568 | ], 569 | "source": [ 570 | "np.remainder(a,2)" 571 | ] 572 | }, 573 | { 574 | "cell_type": "code", 575 | "execution_count": 43, 576 | "metadata": {}, 577 | "outputs": [ 578 | { 579 | "data": { 580 | "text/plain": [ 581 | "array([0, 1, 0, 1, 0, 1, 0, 1])" 582 | ] 583 | }, 584 | "execution_count": 43, 585 | "metadata": {}, 586 | "output_type": "execute_result" 587 | } 588 | ], 589 | "source": [ 590 | "np.mod(a,2)" 591 | ] 592 | }, 593 | { 594 | "cell_type": "code", 595 | "execution_count": 44, 596 | "metadata": {}, 597 | "outputs": [ 598 | { 599 | "data": { 600 | "text/plain": [ 601 | "array([0, 1, 0, 1, 0, 1, 0, 1])" 602 | ] 603 | }, 604 | "execution_count": 44, 605 | "metadata": {}, 606 | "output_type": "execute_result" 607 | } 608 | ], 609 | "source": [ 610 | "a%2" 611 | ] 612 | }, 613 | { 614 | "cell_type": "code", 615 | "execution_count": 45, 616 | "metadata": {}, 617 | "outputs": [ 618 | { 619 | "data": { 620 | "text/plain": [ 621 | "array([ 0, -1, 0, -1, 0, 1, 0, 1])" 622 | ] 623 | }, 624 | "execution_count": 45, 625 | "metadata": {}, 626 | "output_type": "execute_result" 627 | } 628 | ], 629 | "source": [ 630 | "np.fmod(a,2)" 631 | ] 632 | }, 633 | { 634 | "cell_type": "code", 635 | "execution_count": 46, 636 | "metadata": { 637 | "collapsed": true 638 | }, 639 | "outputs": [], 640 | "source": [ 641 | "from matplotlib.pyplot import plot\n", 642 | "from matplotlib.pyplot import show" 643 | ] 644 | }, 645 | { 646 | "cell_type": "code", 647 | "execution_count": 47, 648 | "metadata": { 649 | "collapsed": true 650 | }, 651 | "outputs": [], 652 | "source": [ 653 | "a = 1\n", 654 | "b =2" 655 | ] 656 | }, 657 | { 658 | "cell_type": "code", 659 | "execution_count": 48, 660 | "metadata": { 661 | "collapsed": true 662 | }, 663 | "outputs": [], 664 | "source": [ 665 | "t = np.linspace(-np.pi,np.pi,201)" 666 | ] 667 | }, 668 | { 669 | "cell_type": "code", 670 | "execution_count": 49, 671 | "metadata": { 672 | "collapsed": true 673 | }, 674 | "outputs": [], 675 | "source": [ 676 | "x = np.sin(a*t +np.pi/2)\n", 677 | "y = np.sin(b*t)" 678 | ] 679 | }, 680 | { 681 | "cell_type": "code", 682 | "execution_count": 52, 683 | "metadata": {}, 684 | "outputs": [ 685 | { 686 | "data": { 687 | "text/plain": [ 688 | "[]" 689 | ] 690 | }, 691 | "execution_count": 52, 692 | "metadata": {}, 693 | "output_type": "execute_result" 694 | } 695 | ], 696 | "source": [ 697 | "plot(x)" 698 | ] 699 | }, 700 | { 701 | "cell_type": "code", 702 | "execution_count": 53, 703 | "metadata": {}, 704 | "outputs": [ 705 | { 706 | "data": { 707 | "image/png": "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\n", 708 | "text/plain": [ 709 | "" 710 | ] 711 | }, 712 | "metadata": {}, 713 | "output_type": "display_data" 714 | } 715 | ], 716 | "source": [ 717 | "show()" 718 | ] 719 | } 720 | ], 721 | "metadata": { 722 | "kernelspec": { 723 | "display_name": "Python 2", 724 | "language": "python", 725 | "name": "python2" 726 | }, 727 | "language_info": { 728 | "codemirror_mode": { 729 | "name": "ipython", 730 | "version": 2 731 | }, 732 | "file_extension": ".py", 733 | "mimetype": "text/x-python", 734 | "name": "python", 735 | "nbconvert_exporter": "python", 736 | "pygments_lexer": "ipython2", 737 | "version": "2.7.13" 738 | } 739 | }, 740 | "nbformat": 4, 741 | "nbformat_minor": 2 742 | } 743 | -------------------------------------------------------------------------------- /.ipynb_checkpoints/5-质量控制-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "##
质量控制
" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 47, 13 | "metadata": { 14 | "collapsed": true 15 | }, 16 | "outputs": [], 17 | "source": [ 18 | "import numpy as np" 19 | ] 20 | }, 21 | { 22 | "cell_type": "code", 23 | "execution_count": 48, 24 | "metadata": { 25 | "collapsed": true 26 | }, 27 | "outputs": [], 28 | "source": [ 29 | "np.testing.assert_almost_equal(0.12345,0.12346,decimal=5)" 30 | ] 31 | }, 32 | { 33 | "cell_type": "code", 34 | "execution_count": 49, 35 | "metadata": {}, 36 | "outputs": [ 37 | { 38 | "ename": "AssertionError", 39 | "evalue": "\nArrays are not almost equal to 6 decimals\n ACTUAL: 0.12345\n DESIRED: 0.12346", 40 | "output_type": "error", 41 | "traceback": [ 42 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 43 | "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", 44 | "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtesting\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0massert_almost_equal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0.12345\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m0.12346\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdecimal\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m6\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", 45 | "\u001b[0;32m/home/xujun/anaconda2/lib/python2.7/site-packages/numpy/testing/nose_tools/utils.pyc\u001b[0m in \u001b[0;36massert_almost_equal\u001b[0;34m(actual, desired, decimal, err_msg, verbose)\u001b[0m\n\u001b[1;32m 579\u001b[0m \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 580\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mabs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdesired\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mactual\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m>=\u001b[0m \u001b[0;36m1.5\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;36m10.0\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mdecimal\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 581\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mAssertionError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_build_err_msg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 582\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 583\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", 46 | "\u001b[0;31mAssertionError\u001b[0m: \nArrays are not almost equal to 6 decimals\n ACTUAL: 0.12345\n DESIRED: 0.12346" 47 | ] 48 | } 49 | ], 50 | "source": [ 51 | "np.testing.assert_almost_equal(0.12345,0.12346,decimal=6)" 52 | ] 53 | }, 54 | { 55 | "cell_type": "code", 56 | "execution_count": 50, 57 | "metadata": {}, 58 | "outputs": [], 59 | "source": [ 60 | "import matplotlib.pyplot as plt" 61 | ] 62 | }, 63 | { 64 | "cell_type": "code", 65 | "execution_count": 51, 66 | "metadata": { 67 | "collapsed": true 68 | }, 69 | "outputs": [], 70 | "source": [ 71 | "func = np.poly1d(np.array([1,2,3,4]).astype(np.float32))" 72 | ] 73 | }, 74 | { 75 | "cell_type": "code", 76 | "execution_count": 52, 77 | "metadata": { 78 | "collapsed": true 79 | }, 80 | "outputs": [], 81 | "source": [ 82 | "x = np.linspace(-10,10,30)" 83 | ] 84 | }, 85 | { 86 | "cell_type": "code", 87 | "execution_count": 53, 88 | "metadata": { 89 | "collapsed": true 90 | }, 91 | "outputs": [], 92 | "source": [ 93 | "y = func(x)" 94 | ] 95 | }, 96 | { 97 | "cell_type": "code", 98 | "execution_count": 54, 99 | "metadata": {}, 100 | "outputs": [ 101 | { 102 | "data": { 103 | "text/plain": [ 104 | "[]" 105 | ] 106 | }, 107 | "execution_count": 54, 108 | "metadata": {}, 109 | "output_type": "execute_result" 110 | } 111 | ], 112 | "source": [ 113 | "plt.plot(x,y)" 114 | ] 115 | }, 116 | { 117 | "cell_type": "code", 118 | "execution_count": 55, 119 | "metadata": {}, 120 | "outputs": [ 121 | { 122 | "data": { 123 | "text/plain": [ 124 | "" 125 | ] 126 | }, 127 | "execution_count": 55, 128 | "metadata": {}, 129 | "output_type": "execute_result" 130 | } 131 | ], 132 | "source": [ 133 | "plt.xlabel('x')" 134 | ] 135 | }, 136 | { 137 | "cell_type": "code", 138 | "execution_count": 56, 139 | "metadata": {}, 140 | "outputs": [ 141 | { 142 | "data": { 143 | "image/png": "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\nJP3/uawAAAAASUVORK5CYII=\n", 144 | "text/plain": [ 145 | "" 146 | ] 147 | }, 148 | "metadata": {}, 149 | "output_type": "display_data" 150 | } 151 | ], 152 | "source": [ 153 | "plt.show()" 154 | ] 155 | } 156 | ], 157 | "metadata": { 158 | "kernelspec": { 159 | "display_name": "Python 2", 160 | "language": "python", 161 | "name": "python2" 162 | }, 163 | "language_info": { 164 | "codemirror_mode": { 165 | "name": "ipython", 166 | "version": 2 167 | }, 168 | "file_extension": ".py", 169 | "mimetype": "text/x-python", 170 | "name": "python", 171 | "nbconvert_exporter": "python", 172 | "pygments_lexer": "ipython2", 173 | "version": "2.7.13" 174 | } 175 | }, 176 | "nbformat": 4, 177 | "nbformat_minor": 2 178 | } 179 | -------------------------------------------------------------------------------- /1-Numpy基础.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "##
Numpy基础
" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "### 1 Numpy数组对象" 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 2, 20 | "metadata": { 21 | "collapsed": true 22 | }, 23 | "outputs": [], 24 | "source": [ 25 | "import numpy as np" 26 | ] 27 | }, 28 | { 29 | "cell_type": "code", 30 | "execution_count": 3, 31 | "metadata": { 32 | "collapsed": true 33 | }, 34 | "outputs": [], 35 | "source": [ 36 | "a = np.arange(5)" 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "execution_count": 4, 42 | "metadata": {}, 43 | "outputs": [ 44 | { 45 | "data": { 46 | "text/plain": [ 47 | "array([0, 1, 2, 3, 4])" 48 | ] 49 | }, 50 | "execution_count": 4, 51 | "metadata": {}, 52 | "output_type": "execute_result" 53 | } 54 | ], 55 | "source": [ 56 | "a" 57 | ] 58 | }, 59 | { 60 | "cell_type": "code", 61 | "execution_count": 5, 62 | "metadata": {}, 63 | "outputs": [ 64 | { 65 | "data": { 66 | "text/plain": [ 67 | "dtype('int64')" 68 | ] 69 | }, 70 | "execution_count": 5, 71 | "metadata": {}, 72 | "output_type": "execute_result" 73 | } 74 | ], 75 | "source": [ 76 | "a.dtype" 77 | ] 78 | }, 79 | { 80 | "cell_type": "code", 81 | "execution_count": 6, 82 | "metadata": {}, 83 | "outputs": [ 84 | { 85 | "data": { 86 | "text/plain": [ 87 | "(5,)" 88 | ] 89 | }, 90 | "execution_count": 6, 91 | "metadata": {}, 92 | "output_type": "execute_result" 93 | } 94 | ], 95 | "source": [ 96 | "a.shape" 97 | ] 98 | }, 99 | { 100 | "cell_type": "markdown", 101 | "metadata": {}, 102 | "source": [ 103 | "### 2 创建多维数组" 104 | ] 105 | }, 106 | { 107 | "cell_type": "code", 108 | "execution_count": 8, 109 | "metadata": {}, 110 | "outputs": [], 111 | "source": [ 112 | "m = np.array([np.arange(2),np.arange(2)])" 113 | ] 114 | }, 115 | { 116 | "cell_type": "code", 117 | "execution_count": 9, 118 | "metadata": {}, 119 | "outputs": [ 120 | { 121 | "data": { 122 | "text/plain": [ 123 | "array([[0, 1],\n", 124 | " [0, 1]])" 125 | ] 126 | }, 127 | "execution_count": 9, 128 | "metadata": {}, 129 | "output_type": "execute_result" 130 | } 131 | ], 132 | "source": [ 133 | "m" 134 | ] 135 | }, 136 | { 137 | "cell_type": "code", 138 | "execution_count": 10, 139 | "metadata": {}, 140 | "outputs": [ 141 | { 142 | "data": { 143 | "text/plain": [ 144 | "(2, 2)" 145 | ] 146 | }, 147 | "execution_count": 10, 148 | "metadata": {}, 149 | "output_type": "execute_result" 150 | } 151 | ], 152 | "source": [ 153 | "m.shape" 154 | ] 155 | }, 156 | { 157 | "cell_type": "code", 158 | "execution_count": 11, 159 | "metadata": {}, 160 | "outputs": [ 161 | { 162 | "data": { 163 | "text/plain": [ 164 | "0" 165 | ] 166 | }, 167 | "execution_count": 11, 168 | "metadata": {}, 169 | "output_type": "execute_result" 170 | } 171 | ], 172 | "source": [ 173 | "m[0,0]" 174 | ] 175 | }, 176 | { 177 | "cell_type": "markdown", 178 | "metadata": {}, 179 | "source": [ 180 | "每一种数据类型均有对应的类型转换函数,例如:" 181 | ] 182 | }, 183 | { 184 | "cell_type": "code", 185 | "execution_count": 13, 186 | "metadata": {}, 187 | "outputs": [ 188 | { 189 | "data": { 190 | "text/plain": [ 191 | "42.0" 192 | ] 193 | }, 194 | "execution_count": 13, 195 | "metadata": {}, 196 | "output_type": "execute_result" 197 | } 198 | ], 199 | "source": [ 200 | "np.float64(42)" 201 | ] 202 | }, 203 | { 204 | "cell_type": "markdown", 205 | "metadata": {}, 206 | "source": [ 207 | "### 3 数据类型对象" 208 | ] 209 | }, 210 | { 211 | "cell_type": "markdown", 212 | "metadata": {}, 213 | "source": [ 214 | "Numpy数组中每个元素均为相同的数据类型" 215 | ] 216 | }, 217 | { 218 | "cell_type": "code", 219 | "execution_count": 14, 220 | "metadata": {}, 221 | "outputs": [ 222 | { 223 | "data": { 224 | "text/plain": [ 225 | "8" 226 | ] 227 | }, 228 | "execution_count": 14, 229 | "metadata": {}, 230 | "output_type": "execute_result" 231 | } 232 | ], 233 | "source": [ 234 | "m.dtype.itemsize" 235 | ] 236 | }, 237 | { 238 | "cell_type": "markdown", 239 | "metadata": {}, 240 | "source": [ 241 | "### 4 字符编码" 242 | ] 243 | }, 244 | { 245 | "cell_type": "markdown", 246 | "metadata": {}, 247 | "source": [ 248 | "Numpy 可以使用字符编码来表示数据类型,例如f表示单精度浮点数" 249 | ] 250 | }, 251 | { 252 | "cell_type": "code", 253 | "execution_count": 17, 254 | "metadata": {}, 255 | "outputs": [ 256 | { 257 | "data": { 258 | "text/plain": [ 259 | "array([0., 1., 2., 3., 4., 5., 6.], dtype=float32)" 260 | ] 261 | }, 262 | "execution_count": 17, 263 | "metadata": {}, 264 | "output_type": "execute_result" 265 | } 266 | ], 267 | "source": [ 268 | "np.arange(7,dtype='f')" 269 | ] 270 | }, 271 | { 272 | "cell_type": "markdown", 273 | "metadata": {}, 274 | "source": [ 275 | "### 5 一维数组的索引和切片" 276 | ] 277 | }, 278 | { 279 | "cell_type": "code", 280 | "execution_count": 20, 281 | "metadata": { 282 | "collapsed": true 283 | }, 284 | "outputs": [], 285 | "source": [ 286 | "a = np.arange(9)" 287 | ] 288 | }, 289 | { 290 | "cell_type": "code", 291 | "execution_count": 21, 292 | "metadata": {}, 293 | "outputs": [ 294 | { 295 | "data": { 296 | "text/plain": [ 297 | "array([0, 1, 2, 3, 4, 5, 6, 7, 8])" 298 | ] 299 | }, 300 | "execution_count": 21, 301 | "metadata": {}, 302 | "output_type": "execute_result" 303 | } 304 | ], 305 | "source": [ 306 | "a" 307 | ] 308 | }, 309 | { 310 | "cell_type": "code", 311 | "execution_count": 22, 312 | "metadata": {}, 313 | "outputs": [ 314 | { 315 | "data": { 316 | "text/plain": [ 317 | "array([3, 4, 5, 6])" 318 | ] 319 | }, 320 | "execution_count": 22, 321 | "metadata": {}, 322 | "output_type": "execute_result" 323 | } 324 | ], 325 | "source": [ 326 | "a[3:7]" 327 | ] 328 | }, 329 | { 330 | "cell_type": "code", 331 | "execution_count": 23, 332 | "metadata": {}, 333 | "outputs": [ 334 | { 335 | "data": { 336 | "text/plain": [ 337 | "array([8, 7, 6, 5, 4, 3, 2, 1, 0])" 338 | ] 339 | }, 340 | "execution_count": 23, 341 | "metadata": {}, 342 | "output_type": "execute_result" 343 | } 344 | ], 345 | "source": [ 346 | "a[::-1]" 347 | ] 348 | }, 349 | { 350 | "cell_type": "markdown", 351 | "metadata": {}, 352 | "source": [ 353 | "### 6 多维数组的索引和切片" 354 | ] 355 | }, 356 | { 357 | "cell_type": "code", 358 | "execution_count": 24, 359 | "metadata": { 360 | "collapsed": true 361 | }, 362 | "outputs": [], 363 | "source": [ 364 | "b = np.arange(24).reshape(2,3,4)" 365 | ] 366 | }, 367 | { 368 | "cell_type": "code", 369 | "execution_count": 25, 370 | "metadata": {}, 371 | "outputs": [ 372 | { 373 | "data": { 374 | "text/plain": [ 375 | "array([[[ 0, 1, 2, 3],\n", 376 | " [ 4, 5, 6, 7],\n", 377 | " [ 8, 9, 10, 11]],\n", 378 | "\n", 379 | " [[12, 13, 14, 15],\n", 380 | " [16, 17, 18, 19],\n", 381 | " [20, 21, 22, 23]]])" 382 | ] 383 | }, 384 | "execution_count": 25, 385 | "metadata": {}, 386 | "output_type": "execute_result" 387 | } 388 | ], 389 | "source": [ 390 | "b" 391 | ] 392 | }, 393 | { 394 | "cell_type": "code", 395 | "execution_count": 26, 396 | "metadata": {}, 397 | "outputs": [ 398 | { 399 | "data": { 400 | "text/plain": [ 401 | "0" 402 | ] 403 | }, 404 | "execution_count": 26, 405 | "metadata": {}, 406 | "output_type": "execute_result" 407 | } 408 | ], 409 | "source": [ 410 | "b[0,0,0]" 411 | ] 412 | }, 413 | { 414 | "cell_type": "code", 415 | "execution_count": 28, 416 | "metadata": {}, 417 | "outputs": [ 418 | { 419 | "data": { 420 | "text/plain": [ 421 | "array([ 0, 12])" 422 | ] 423 | }, 424 | "execution_count": 28, 425 | "metadata": {}, 426 | "output_type": "execute_result" 427 | } 428 | ], 429 | "source": [ 430 | "b[:,0,0]" 431 | ] 432 | }, 433 | { 434 | "cell_type": "code", 435 | "execution_count": 29, 436 | "metadata": {}, 437 | "outputs": [ 438 | { 439 | "data": { 440 | "text/plain": [ 441 | "array([[[ 0, 1, 2, 3],\n", 442 | " [ 4, 5, 6, 7],\n", 443 | " [ 8, 9, 10, 11]],\n", 444 | "\n", 445 | " [[12, 13, 14, 15],\n", 446 | " [16, 17, 18, 19],\n", 447 | " [20, 21, 22, 23]]])" 448 | ] 449 | }, 450 | "execution_count": 29, 451 | "metadata": {}, 452 | "output_type": "execute_result" 453 | } 454 | ], 455 | "source": [ 456 | "b[:,...]" 457 | ] 458 | }, 459 | { 460 | "cell_type": "markdown", 461 | "metadata": {}, 462 | "source": [ 463 | "### 7 改变数组的维度" 464 | ] 465 | }, 466 | { 467 | "cell_type": "code", 468 | "execution_count": 30, 469 | "metadata": {}, 470 | "outputs": [ 471 | { 472 | "data": { 473 | "text/plain": [ 474 | "array([[[ 0, 1, 2, 3],\n", 475 | " [ 4, 5, 6, 7],\n", 476 | " [ 8, 9, 10, 11]],\n", 477 | "\n", 478 | " [[12, 13, 14, 15],\n", 479 | " [16, 17, 18, 19],\n", 480 | " [20, 21, 22, 23]]])" 481 | ] 482 | }, 483 | "execution_count": 30, 484 | "metadata": {}, 485 | "output_type": "execute_result" 486 | } 487 | ], 488 | "source": [ 489 | "b" 490 | ] 491 | }, 492 | { 493 | "cell_type": "code", 494 | "execution_count": 31, 495 | "metadata": {}, 496 | "outputs": [ 497 | { 498 | "data": { 499 | "text/plain": [ 500 | "array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,\n", 501 | " 17, 18, 19, 20, 21, 22, 23])" 502 | ] 503 | }, 504 | "execution_count": 31, 505 | "metadata": {}, 506 | "output_type": "execute_result" 507 | } 508 | ], 509 | "source": [ 510 | "b.ravel()" 511 | ] 512 | }, 513 | { 514 | "cell_type": "code", 515 | "execution_count": 32, 516 | "metadata": {}, 517 | "outputs": [ 518 | { 519 | "data": { 520 | "text/plain": [ 521 | "array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,\n", 522 | " 17, 18, 19, 20, 21, 22, 23])" 523 | ] 524 | }, 525 | "execution_count": 32, 526 | "metadata": {}, 527 | "output_type": "execute_result" 528 | } 529 | ], 530 | "source": [ 531 | "b.flatten()" 532 | ] 533 | }, 534 | { 535 | "cell_type": "code", 536 | "execution_count": 33, 537 | "metadata": {}, 538 | "outputs": [ 539 | { 540 | "data": { 541 | "text/plain": [ 542 | "(2, 3, 4)" 543 | ] 544 | }, 545 | "execution_count": 33, 546 | "metadata": {}, 547 | "output_type": "execute_result" 548 | } 549 | ], 550 | "source": [ 551 | "b.shape" 552 | ] 553 | }, 554 | { 555 | "cell_type": "code", 556 | "execution_count": 34, 557 | "metadata": {}, 558 | "outputs": [ 559 | { 560 | "data": { 561 | "text/plain": [ 562 | "array([[[ 0, 1, 2, 3],\n", 563 | " [ 4, 5, 6, 7],\n", 564 | " [ 8, 9, 10, 11]],\n", 565 | "\n", 566 | " [[12, 13, 14, 15],\n", 567 | " [16, 17, 18, 19],\n", 568 | " [20, 21, 22, 23]]])" 569 | ] 570 | }, 571 | "execution_count": 34, 572 | "metadata": {}, 573 | "output_type": "execute_result" 574 | } 575 | ], 576 | "source": [ 577 | "b" 578 | ] 579 | }, 580 | { 581 | "cell_type": "code", 582 | "execution_count": 35, 583 | "metadata": {}, 584 | "outputs": [ 585 | { 586 | "data": { 587 | "text/plain": [ 588 | "array([[[ 0, 12],\n", 589 | " [ 4, 16],\n", 590 | " [ 8, 20]],\n", 591 | "\n", 592 | " [[ 1, 13],\n", 593 | " [ 5, 17],\n", 594 | " [ 9, 21]],\n", 595 | "\n", 596 | " [[ 2, 14],\n", 597 | " [ 6, 18],\n", 598 | " [10, 22]],\n", 599 | "\n", 600 | " [[ 3, 15],\n", 601 | " [ 7, 19],\n", 602 | " [11, 23]]])" 603 | ] 604 | }, 605 | "execution_count": 35, 606 | "metadata": {}, 607 | "output_type": "execute_result" 608 | } 609 | ], 610 | "source": [ 611 | "b.transpose()" 612 | ] 613 | }, 614 | { 615 | "cell_type": "markdown", 616 | "metadata": {}, 617 | "source": [ 618 | "resize 会直接修改数组,而其他的操作会不会受到影响" 619 | ] 620 | }, 621 | { 622 | "cell_type": "code", 623 | "execution_count": 36, 624 | "metadata": { 625 | "collapsed": true 626 | }, 627 | "outputs": [], 628 | "source": [ 629 | "b.resize((2,12))" 630 | ] 631 | }, 632 | { 633 | "cell_type": "code", 634 | "execution_count": 37, 635 | "metadata": {}, 636 | "outputs": [ 637 | { 638 | "data": { 639 | "text/plain": [ 640 | "array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],\n", 641 | " [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]])" 642 | ] 643 | }, 644 | "execution_count": 37, 645 | "metadata": {}, 646 | "output_type": "execute_result" 647 | } 648 | ], 649 | "source": [ 650 | "b" 651 | ] 652 | }, 653 | { 654 | "cell_type": "markdown", 655 | "metadata": {}, 656 | "source": [ 657 | "### 8 数组组合" 658 | ] 659 | }, 660 | { 661 | "cell_type": "markdown", 662 | "metadata": {}, 663 | "source": [ 664 | "Numpy 数组组合有水平组合,垂直组合和深度组合等多种组合方式,我们将使用vstack,dstack,hstack,column_stack,row_stack以及concatenate函数来完成数组的组合" 665 | ] 666 | }, 667 | { 668 | "cell_type": "code", 669 | "execution_count": 38, 670 | "metadata": { 671 | "collapsed": true 672 | }, 673 | "outputs": [], 674 | "source": [ 675 | "a = np.arange(9).reshape(3,3)" 676 | ] 677 | }, 678 | { 679 | "cell_type": "code", 680 | "execution_count": 39, 681 | "metadata": { 682 | "collapsed": true 683 | }, 684 | "outputs": [], 685 | "source": [ 686 | "b = 2*a" 687 | ] 688 | }, 689 | { 690 | "cell_type": "code", 691 | "execution_count": 40, 692 | "metadata": {}, 693 | "outputs": [ 694 | { 695 | "data": { 696 | "text/plain": [ 697 | "array([[0, 1, 2],\n", 698 | " [3, 4, 5],\n", 699 | " [6, 7, 8]])" 700 | ] 701 | }, 702 | "execution_count": 40, 703 | "metadata": {}, 704 | "output_type": "execute_result" 705 | } 706 | ], 707 | "source": [ 708 | "a" 709 | ] 710 | }, 711 | { 712 | "cell_type": "code", 713 | "execution_count": 41, 714 | "metadata": {}, 715 | "outputs": [ 716 | { 717 | "data": { 718 | "text/plain": [ 719 | "array([[ 0, 2, 4],\n", 720 | " [ 6, 8, 10],\n", 721 | " [12, 14, 16]])" 722 | ] 723 | }, 724 | "execution_count": 41, 725 | "metadata": {}, 726 | "output_type": "execute_result" 727 | } 728 | ], 729 | "source": [ 730 | "b" 731 | ] 732 | }, 733 | { 734 | "cell_type": "code", 735 | "execution_count": 43, 736 | "metadata": {}, 737 | "outputs": [ 738 | { 739 | "data": { 740 | "text/plain": [ 741 | "array([[ 0, 1, 2, 0, 2, 4],\n", 742 | " [ 3, 4, 5, 6, 8, 10],\n", 743 | " [ 6, 7, 8, 12, 14, 16]])" 744 | ] 745 | }, 746 | "execution_count": 43, 747 | "metadata": {}, 748 | "output_type": "execute_result" 749 | } 750 | ], 751 | "source": [ 752 | "np.hstack((a,b))" 753 | ] 754 | }, 755 | { 756 | "cell_type": "code", 757 | "execution_count": 44, 758 | "metadata": {}, 759 | "outputs": [ 760 | { 761 | "data": { 762 | "text/plain": [ 763 | "array([[ 0, 1, 2, 0, 2, 4],\n", 764 | " [ 3, 4, 5, 6, 8, 10],\n", 765 | " [ 6, 7, 8, 12, 14, 16]])" 766 | ] 767 | }, 768 | "execution_count": 44, 769 | "metadata": {}, 770 | "output_type": "execute_result" 771 | } 772 | ], 773 | "source": [ 774 | "np.concatenate((a,b),axis=1)" 775 | ] 776 | }, 777 | { 778 | "cell_type": "code", 779 | "execution_count": 45, 780 | "metadata": {}, 781 | "outputs": [ 782 | { 783 | "data": { 784 | "text/plain": [ 785 | "array([[ 0, 1, 2],\n", 786 | " [ 3, 4, 5],\n", 787 | " [ 6, 7, 8],\n", 788 | " [ 0, 2, 4],\n", 789 | " [ 6, 8, 10],\n", 790 | " [12, 14, 16]])" 791 | ] 792 | }, 793 | "execution_count": 45, 794 | "metadata": {}, 795 | "output_type": "execute_result" 796 | } 797 | ], 798 | "source": [ 799 | "np.vstack((a,b))" 800 | ] 801 | }, 802 | { 803 | "cell_type": "code", 804 | "execution_count": 46, 805 | "metadata": {}, 806 | "outputs": [ 807 | { 808 | "data": { 809 | "text/plain": [ 810 | "array([[ 0, 1, 2],\n", 811 | " [ 3, 4, 5],\n", 812 | " [ 6, 7, 8],\n", 813 | " [ 0, 2, 4],\n", 814 | " [ 6, 8, 10],\n", 815 | " [12, 14, 16]])" 816 | ] 817 | }, 818 | "execution_count": 46, 819 | "metadata": {}, 820 | "output_type": "execute_result" 821 | } 822 | ], 823 | "source": [ 824 | "np.concatenate((a,b),axis = 0)" 825 | ] 826 | }, 827 | { 828 | "cell_type": "code", 829 | "execution_count": 48, 830 | "metadata": {}, 831 | "outputs": [ 832 | { 833 | "data": { 834 | "text/plain": [ 835 | "(3, 3)" 836 | ] 837 | }, 838 | "execution_count": 48, 839 | "metadata": {}, 840 | "output_type": "execute_result" 841 | } 842 | ], 843 | "source": [ 844 | "a.shape" 845 | ] 846 | }, 847 | { 848 | "cell_type": "code", 849 | "execution_count": 49, 850 | "metadata": {}, 851 | "outputs": [ 852 | { 853 | "data": { 854 | "text/plain": [ 855 | "(3, 3)" 856 | ] 857 | }, 858 | "execution_count": 49, 859 | "metadata": {}, 860 | "output_type": "execute_result" 861 | } 862 | ], 863 | "source": [ 864 | "b.shape" 865 | ] 866 | }, 867 | { 868 | "cell_type": "code", 869 | "execution_count": 47, 870 | "metadata": {}, 871 | "outputs": [ 872 | { 873 | "data": { 874 | "text/plain": [ 875 | "array([[[ 0, 0],\n", 876 | " [ 1, 2],\n", 877 | " [ 2, 4]],\n", 878 | "\n", 879 | " [[ 3, 6],\n", 880 | " [ 4, 8],\n", 881 | " [ 5, 10]],\n", 882 | "\n", 883 | " [[ 6, 12],\n", 884 | " [ 7, 14],\n", 885 | " [ 8, 16]]])" 886 | ] 887 | }, 888 | "execution_count": 47, 889 | "metadata": {}, 890 | "output_type": "execute_result" 891 | } 892 | ], 893 | "source": [ 894 | "np.dstack((a,b))" 895 | ] 896 | }, 897 | { 898 | "cell_type": "code", 899 | "execution_count": 50, 900 | "metadata": {}, 901 | "outputs": [ 902 | { 903 | "data": { 904 | "text/plain": [ 905 | "(3, 3, 2)" 906 | ] 907 | }, 908 | "execution_count": 50, 909 | "metadata": {}, 910 | "output_type": "execute_result" 911 | } 912 | ], 913 | "source": [ 914 | "np.dstack((a,b)).shape" 915 | ] 916 | }, 917 | { 918 | "cell_type": "code", 919 | "execution_count": 51, 920 | "metadata": { 921 | "collapsed": true 922 | }, 923 | "outputs": [], 924 | "source": [ 925 | "oned = np.arange(2)" 926 | ] 927 | }, 928 | { 929 | "cell_type": "code", 930 | "execution_count": 52, 931 | "metadata": { 932 | "collapsed": true 933 | }, 934 | "outputs": [], 935 | "source": [ 936 | "twice_oned = 2*oned" 937 | ] 938 | }, 939 | { 940 | "cell_type": "code", 941 | "execution_count": 53, 942 | "metadata": {}, 943 | "outputs": [ 944 | { 945 | "data": { 946 | "text/plain": [ 947 | "array([0, 1])" 948 | ] 949 | }, 950 | "execution_count": 53, 951 | "metadata": {}, 952 | "output_type": "execute_result" 953 | } 954 | ], 955 | "source": [ 956 | "oned" 957 | ] 958 | }, 959 | { 960 | "cell_type": "code", 961 | "execution_count": 54, 962 | "metadata": {}, 963 | "outputs": [ 964 | { 965 | "data": { 966 | "text/plain": [ 967 | "array([0, 2])" 968 | ] 969 | }, 970 | "execution_count": 54, 971 | "metadata": {}, 972 | "output_type": "execute_result" 973 | } 974 | ], 975 | "source": [ 976 | "twice_oned" 977 | ] 978 | }, 979 | { 980 | "cell_type": "code", 981 | "execution_count": 56, 982 | "metadata": {}, 983 | "outputs": [ 984 | { 985 | "data": { 986 | "text/plain": [ 987 | "array([[0, 0],\n", 988 | " [1, 2]])" 989 | ] 990 | }, 991 | "execution_count": 56, 992 | "metadata": {}, 993 | "output_type": "execute_result" 994 | } 995 | ], 996 | "source": [ 997 | "np.column_stack((oned,twice_oned))" 998 | ] 999 | }, 1000 | { 1001 | "cell_type": "markdown", 1002 | "metadata": {}, 1003 | "source": [ 1004 | "### 9 数组的分割" 1005 | ] 1006 | }, 1007 | { 1008 | "cell_type": "markdown", 1009 | "metadata": {}, 1010 | "source": [ 1011 | "Numpy数组可以进行水平,垂直或深度分割,相关的函数有hsplit,vsplit,dsplit和split.我们可以将数组分割成相同大小的子数组,也可以指定原数组中需要分割的位置." 1012 | ] 1013 | }, 1014 | { 1015 | "cell_type": "code", 1016 | "execution_count": 57, 1017 | "metadata": {}, 1018 | "outputs": [ 1019 | { 1020 | "data": { 1021 | "text/plain": [ 1022 | "array([[0, 1, 2],\n", 1023 | " [3, 4, 5],\n", 1024 | " [6, 7, 8]])" 1025 | ] 1026 | }, 1027 | "execution_count": 57, 1028 | "metadata": {}, 1029 | "output_type": "execute_result" 1030 | } 1031 | ], 1032 | "source": [ 1033 | "a" 1034 | ] 1035 | }, 1036 | { 1037 | "cell_type": "code", 1038 | "execution_count": 58, 1039 | "metadata": {}, 1040 | "outputs": [ 1041 | { 1042 | "data": { 1043 | "text/plain": [ 1044 | "[array([[0],\n", 1045 | " [3],\n", 1046 | " [6]]), array([[1],\n", 1047 | " [4],\n", 1048 | " [7]]), array([[2],\n", 1049 | " [5],\n", 1050 | " [8]])]" 1051 | ] 1052 | }, 1053 | "execution_count": 58, 1054 | "metadata": {}, 1055 | "output_type": "execute_result" 1056 | } 1057 | ], 1058 | "source": [ 1059 | "np.hsplit(a,3)" 1060 | ] 1061 | }, 1062 | { 1063 | "cell_type": "code", 1064 | "execution_count": 59, 1065 | "metadata": {}, 1066 | "outputs": [ 1067 | { 1068 | "data": { 1069 | "text/plain": [ 1070 | "[array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]" 1071 | ] 1072 | }, 1073 | "execution_count": 59, 1074 | "metadata": {}, 1075 | "output_type": "execute_result" 1076 | } 1077 | ], 1078 | "source": [ 1079 | "np.vsplit(a,3)" 1080 | ] 1081 | }, 1082 | { 1083 | "cell_type": "markdown", 1084 | "metadata": {}, 1085 | "source": [ 1086 | "### 10 数组的属性" 1087 | ] 1088 | }, 1089 | { 1090 | "cell_type": "code", 1091 | "execution_count": 60, 1092 | "metadata": {}, 1093 | "outputs": [ 1094 | { 1095 | "data": { 1096 | "text/plain": [ 1097 | "2" 1098 | ] 1099 | }, 1100 | "execution_count": 60, 1101 | "metadata": {}, 1102 | "output_type": "execute_result" 1103 | } 1104 | ], 1105 | "source": [ 1106 | "a.ndim" 1107 | ] 1108 | }, 1109 | { 1110 | "cell_type": "code", 1111 | "execution_count": 61, 1112 | "metadata": {}, 1113 | "outputs": [ 1114 | { 1115 | "data": { 1116 | "text/plain": [ 1117 | "9" 1118 | ] 1119 | }, 1120 | "execution_count": 61, 1121 | "metadata": {}, 1122 | "output_type": "execute_result" 1123 | } 1124 | ], 1125 | "source": [ 1126 | "a.size" 1127 | ] 1128 | }, 1129 | { 1130 | "cell_type": "code", 1131 | "execution_count": 62, 1132 | "metadata": {}, 1133 | "outputs": [ 1134 | { 1135 | "data": { 1136 | "text/plain": [ 1137 | "8" 1138 | ] 1139 | }, 1140 | "execution_count": 62, 1141 | "metadata": {}, 1142 | "output_type": "execute_result" 1143 | } 1144 | ], 1145 | "source": [ 1146 | "a.itemsize" 1147 | ] 1148 | }, 1149 | { 1150 | "cell_type": "code", 1151 | "execution_count": 63, 1152 | "metadata": {}, 1153 | "outputs": [ 1154 | { 1155 | "data": { 1156 | "text/plain": [ 1157 | "72" 1158 | ] 1159 | }, 1160 | "execution_count": 63, 1161 | "metadata": {}, 1162 | "output_type": "execute_result" 1163 | } 1164 | ], 1165 | "source": [ 1166 | "a.nbytes" 1167 | ] 1168 | }, 1169 | { 1170 | "cell_type": "code", 1171 | "execution_count": 64, 1172 | "metadata": {}, 1173 | "outputs": [ 1174 | { 1175 | "data": { 1176 | "text/plain": [ 1177 | "array([[0, 3, 6],\n", 1178 | " [1, 4, 7],\n", 1179 | " [2, 5, 8]])" 1180 | ] 1181 | }, 1182 | "execution_count": 64, 1183 | "metadata": {}, 1184 | "output_type": "execute_result" 1185 | } 1186 | ], 1187 | "source": [ 1188 | "a.T" 1189 | ] 1190 | }, 1191 | { 1192 | "cell_type": "markdown", 1193 | "metadata": {}, 1194 | "source": [ 1195 | "### 11 数组的转换" 1196 | ] 1197 | }, 1198 | { 1199 | "cell_type": "markdown", 1200 | "metadata": {}, 1201 | "source": [ 1202 | "可以使用tolist函数将Numpy数组转换成Python列表" 1203 | ] 1204 | }, 1205 | { 1206 | "cell_type": "code", 1207 | "execution_count": 65, 1208 | "metadata": {}, 1209 | "outputs": [ 1210 | { 1211 | "data": { 1212 | "text/plain": [ 1213 | "[[0, 1, 2], [3, 4, 5], [6, 7, 8]]" 1214 | ] 1215 | }, 1216 | "execution_count": 65, 1217 | "metadata": {}, 1218 | "output_type": "execute_result" 1219 | } 1220 | ], 1221 | "source": [ 1222 | "a.tolist()" 1223 | ] 1224 | }, 1225 | { 1226 | "cell_type": "markdown", 1227 | "metadata": {}, 1228 | "source": [ 1229 | "astype函数可以在转换数组时指定数据类型" 1230 | ] 1231 | }, 1232 | { 1233 | "cell_type": "code", 1234 | "execution_count": 66, 1235 | "metadata": {}, 1236 | "outputs": [ 1237 | { 1238 | "data": { 1239 | "text/plain": [ 1240 | "array([[0, 1, 2],\n", 1241 | " [3, 4, 5],\n", 1242 | " [6, 7, 8]], dtype=int32)" 1243 | ] 1244 | }, 1245 | "execution_count": 66, 1246 | "metadata": {}, 1247 | "output_type": "execute_result" 1248 | } 1249 | ], 1250 | "source": [ 1251 | "a.astype(np.int32)" 1252 | ] 1253 | }, 1254 | { 1255 | "cell_type": "code", 1256 | "execution_count": null, 1257 | "metadata": { 1258 | "collapsed": true 1259 | }, 1260 | "outputs": [], 1261 | "source": [] 1262 | } 1263 | ], 1264 | "metadata": { 1265 | "kernelspec": { 1266 | "display_name": "Python 2", 1267 | "language": "python", 1268 | "name": "python2" 1269 | }, 1270 | "language_info": { 1271 | "codemirror_mode": { 1272 | "name": "ipython", 1273 | "version": 2 1274 | }, 1275 | "file_extension": ".py", 1276 | "mimetype": "text/x-python", 1277 | "name": "python", 1278 | "nbconvert_exporter": "python", 1279 | "pygments_lexer": "ipython2", 1280 | "version": "2.7.13" 1281 | } 1282 | }, 1283 | "nbformat": 4, 1284 | "nbformat_minor": 2 1285 | } 1286 | -------------------------------------------------------------------------------- /2-常用函数.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "##
常用函数
" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "### 1 文件读写 " 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 2, 20 | "metadata": {}, 21 | "outputs": [], 22 | "source": [ 23 | "import numpy as np" 24 | ] 25 | }, 26 | { 27 | "cell_type": "code", 28 | "execution_count": 4, 29 | "metadata": { 30 | "collapsed": true 31 | }, 32 | "outputs": [], 33 | "source": [ 34 | "i2 = np.eye(2)" 35 | ] 36 | }, 37 | { 38 | "cell_type": "code", 39 | "execution_count": 5, 40 | "metadata": {}, 41 | "outputs": [ 42 | { 43 | "data": { 44 | "text/plain": [ 45 | "array([[1., 0.],\n", 46 | " [0., 1.]])" 47 | ] 48 | }, 49 | "execution_count": 5, 50 | "metadata": {}, 51 | "output_type": "execute_result" 52 | } 53 | ], 54 | "source": [ 55 | "i2" 56 | ] 57 | }, 58 | { 59 | "cell_type": "code", 60 | "execution_count": 6, 61 | "metadata": {}, 62 | "outputs": [ 63 | { 64 | "data": { 65 | "text/plain": [ 66 | "dtype('float64')" 67 | ] 68 | }, 69 | "execution_count": 6, 70 | "metadata": {}, 71 | "output_type": "execute_result" 72 | } 73 | ], 74 | "source": [ 75 | "i2.dtype" 76 | ] 77 | }, 78 | { 79 | "cell_type": "code", 80 | "execution_count": 7, 81 | "metadata": { 82 | "collapsed": true 83 | }, 84 | "outputs": [], 85 | "source": [ 86 | "np.savetxt('eye.txt',i2)" 87 | ] 88 | }, 89 | { 90 | "cell_type": "markdown", 91 | "metadata": {}, 92 | "source": [ 93 | "### 2 CSV文件读写" 94 | ] 95 | }, 96 | { 97 | "cell_type": "markdown", 98 | "metadata": {}, 99 | "source": [ 100 | "可以看到,使用逗号分隔符,usecols指定了特定的列,unpack表示将选择的列拆分成多个数据,分别接收" 101 | ] 102 | }, 103 | { 104 | "cell_type": "code", 105 | "execution_count": 8, 106 | "metadata": { 107 | "collapsed": true 108 | }, 109 | "outputs": [], 110 | "source": [ 111 | "c,v = np.loadtxt('data.csv',delimiter=',',usecols=(6,7),unpack = True)" 112 | ] 113 | }, 114 | { 115 | "cell_type": "code", 116 | "execution_count": 9, 117 | "metadata": {}, 118 | "outputs": [ 119 | { 120 | "data": { 121 | "text/plain": [ 122 | "336.1" 123 | ] 124 | }, 125 | "execution_count": 9, 126 | "metadata": {}, 127 | "output_type": "execute_result" 128 | } 129 | ], 130 | "source": [ 131 | "c" 132 | ] 133 | }, 134 | { 135 | "cell_type": "code", 136 | "execution_count": 10, 137 | "metadata": {}, 138 | "outputs": [ 139 | { 140 | "data": { 141 | "text/plain": [ 142 | "21144800.0" 143 | ] 144 | }, 145 | "execution_count": 10, 146 | "metadata": {}, 147 | "output_type": "execute_result" 148 | } 149 | ], 150 | "source": [ 151 | "v" 152 | ] 153 | }, 154 | { 155 | "cell_type": "markdown", 156 | "metadata": {}, 157 | "source": [ 158 | "### 3 成交量加权平均价格(VWAP)" 159 | ] 160 | }, 161 | { 162 | "cell_type": "code", 163 | "execution_count": 11, 164 | "metadata": { 165 | "collapsed": true 166 | }, 167 | "outputs": [], 168 | "source": [ 169 | "vwap = np.average(c,weights =v)" 170 | ] 171 | }, 172 | { 173 | "cell_type": "code", 174 | "execution_count": 12, 175 | "metadata": {}, 176 | "outputs": [ 177 | { 178 | "data": { 179 | "text/plain": [ 180 | "336.1" 181 | ] 182 | }, 183 | "execution_count": 12, 184 | "metadata": {}, 185 | "output_type": "execute_result" 186 | } 187 | ], 188 | "source": [ 189 | "vwap" 190 | ] 191 | }, 192 | { 193 | "cell_type": "code", 194 | "execution_count": 13, 195 | "metadata": { 196 | "collapsed": true 197 | }, 198 | "outputs": [], 199 | "source": [ 200 | "mean = np.mean(c)" 201 | ] 202 | }, 203 | { 204 | "cell_type": "code", 205 | "execution_count": 14, 206 | "metadata": {}, 207 | "outputs": [ 208 | { 209 | "data": { 210 | "text/plain": [ 211 | "336.1" 212 | ] 213 | }, 214 | "execution_count": 14, 215 | "metadata": {}, 216 | "output_type": "execute_result" 217 | } 218 | ], 219 | "source": [ 220 | "mean" 221 | ] 222 | }, 223 | { 224 | "cell_type": "markdown", 225 | "metadata": {}, 226 | "source": [ 227 | "### 4 取值范围" 228 | ] 229 | }, 230 | { 231 | "cell_type": "code", 232 | "execution_count": 15, 233 | "metadata": { 234 | "collapsed": true 235 | }, 236 | "outputs": [], 237 | "source": [ 238 | "h,l = np.loadtxt('data.csv',delimiter=',',usecols =(4,5),unpack = True)" 239 | ] 240 | }, 241 | { 242 | "cell_type": "code", 243 | "execution_count": 18, 244 | "metadata": {}, 245 | "outputs": [ 246 | { 247 | "data": { 248 | "text/plain": [ 249 | "344.4" 250 | ] 251 | }, 252 | "execution_count": 18, 253 | "metadata": {}, 254 | "output_type": "execute_result" 255 | } 256 | ], 257 | "source": [ 258 | "h" 259 | ] 260 | }, 261 | { 262 | "cell_type": "code", 263 | "execution_count": 19, 264 | "metadata": {}, 265 | "outputs": [ 266 | { 267 | "data": { 268 | "text/plain": [ 269 | "333.53" 270 | ] 271 | }, 272 | "execution_count": 19, 273 | "metadata": {}, 274 | "output_type": "execute_result" 275 | } 276 | ], 277 | "source": [ 278 | "l" 279 | ] 280 | }, 281 | { 282 | "cell_type": "code", 283 | "execution_count": 20, 284 | "metadata": {}, 285 | "outputs": [ 286 | { 287 | "data": { 288 | "text/plain": [ 289 | "344.4" 290 | ] 291 | }, 292 | "execution_count": 20, 293 | "metadata": {}, 294 | "output_type": "execute_result" 295 | } 296 | ], 297 | "source": [ 298 | "np.max(h)" 299 | ] 300 | }, 301 | { 302 | "cell_type": "code", 303 | "execution_count": 21, 304 | "metadata": {}, 305 | "outputs": [ 306 | { 307 | "data": { 308 | "text/plain": [ 309 | "333.53" 310 | ] 311 | }, 312 | "execution_count": 21, 313 | "metadata": {}, 314 | "output_type": "execute_result" 315 | } 316 | ], 317 | "source": [ 318 | "np.min(l)" 319 | ] 320 | }, 321 | { 322 | "cell_type": "code", 323 | "execution_count": 22, 324 | "metadata": {}, 325 | "outputs": [ 326 | { 327 | "data": { 328 | "text/plain": [ 329 | "0.0" 330 | ] 331 | }, 332 | "execution_count": 22, 333 | "metadata": {}, 334 | "output_type": "execute_result" 335 | } 336 | ], 337 | "source": [ 338 | "np.ptp(h)" 339 | ] 340 | }, 341 | { 342 | "cell_type": "code", 343 | "execution_count": 23, 344 | "metadata": { 345 | "collapsed": true 346 | }, 347 | "outputs": [], 348 | "source": [ 349 | "median = np.median(c)" 350 | ] 351 | }, 352 | { 353 | "cell_type": "code", 354 | "execution_count": 24, 355 | "metadata": {}, 356 | "outputs": [ 357 | { 358 | "data": { 359 | "text/plain": [ 360 | "336.1" 361 | ] 362 | }, 363 | "execution_count": 24, 364 | "metadata": {}, 365 | "output_type": "execute_result" 366 | } 367 | ], 368 | "source": [ 369 | "median" 370 | ] 371 | }, 372 | { 373 | "cell_type": "code", 374 | "execution_count": 25, 375 | "metadata": { 376 | "collapsed": true 377 | }, 378 | "outputs": [], 379 | "source": [ 380 | "a = np.random.randn(10)" 381 | ] 382 | }, 383 | { 384 | "cell_type": "code", 385 | "execution_count": 26, 386 | "metadata": {}, 387 | "outputs": [ 388 | { 389 | "data": { 390 | "text/plain": [ 391 | "array([-0.91366364, 0.56874779, 1.93163306, -1.20680229, 0.61898735,\n", 392 | " -0.03009919, 1.0977881 , -1.69915867, -0.54960063, -0.38438985])" 393 | ] 394 | }, 395 | "execution_count": 26, 396 | "metadata": {}, 397 | "output_type": "execute_result" 398 | } 399 | ], 400 | "source": [ 401 | "a" 402 | ] 403 | }, 404 | { 405 | "cell_type": "code", 406 | "execution_count": 27, 407 | "metadata": { 408 | "collapsed": true 409 | }, 410 | "outputs": [], 411 | "source": [ 412 | "sorted_close = np.msort(a)" 413 | ] 414 | }, 415 | { 416 | "cell_type": "code", 417 | "execution_count": 28, 418 | "metadata": {}, 419 | "outputs": [ 420 | { 421 | "data": { 422 | "text/plain": [ 423 | "array([-1.69915867, -1.20680229, -0.91366364, -0.54960063, -0.38438985,\n", 424 | " -0.03009919, 0.56874779, 0.61898735, 1.0977881 , 1.93163306])" 425 | ] 426 | }, 427 | "execution_count": 28, 428 | "metadata": {}, 429 | "output_type": "execute_result" 430 | } 431 | ], 432 | "source": [ 433 | "sorted_close" 434 | ] 435 | }, 436 | { 437 | "cell_type": "code", 438 | "execution_count": 29, 439 | "metadata": {}, 440 | "outputs": [ 441 | { 442 | "data": { 443 | "text/plain": [ 444 | "-0.20724452344036656" 445 | ] 446 | }, 447 | "execution_count": 29, 448 | "metadata": {}, 449 | "output_type": "execute_result" 450 | } 451 | ], 452 | "source": [ 453 | "np.median(a)" 454 | ] 455 | }, 456 | { 457 | "cell_type": "code", 458 | "execution_count": 30, 459 | "metadata": {}, 460 | "outputs": [ 461 | { 462 | "data": { 463 | "text/plain": [ 464 | "-0.05665579774572808" 465 | ] 466 | }, 467 | "execution_count": 30, 468 | "metadata": {}, 469 | "output_type": "execute_result" 470 | } 471 | ], 472 | "source": [ 473 | "np.mean(a)" 474 | ] 475 | }, 476 | { 477 | "cell_type": "code", 478 | "execution_count": 31, 479 | "metadata": {}, 480 | "outputs": [ 481 | { 482 | "data": { 483 | "text/plain": [ 484 | "1.123988115028372" 485 | ] 486 | }, 487 | "execution_count": 31, 488 | "metadata": {}, 489 | "output_type": "execute_result" 490 | } 491 | ], 492 | "source": [ 493 | "np.var(a)" 494 | ] 495 | }, 496 | { 497 | "cell_type": "code", 498 | "execution_count": 32, 499 | "metadata": {}, 500 | "outputs": [ 501 | { 502 | "data": { 503 | "text/plain": [ 504 | "array([ 1.48241142, 1.36288528, -3.13843535, 1.82578963, -0.64908654,\n", 505 | " 1.1278873 , -2.79694677, 1.14955804, 0.16521078])" 506 | ] 507 | }, 508 | "execution_count": 32, 509 | "metadata": {}, 510 | "output_type": "execute_result" 511 | } 512 | ], 513 | "source": [ 514 | "np.diff(a)" 515 | ] 516 | }, 517 | { 518 | "cell_type": "code", 519 | "execution_count": 33, 520 | "metadata": {}, 521 | "outputs": [ 522 | { 523 | "data": { 524 | "text/plain": [ 525 | "array([-0.91366364, 0.56874779, 1.93163306, -1.20680229, 0.61898735,\n", 526 | " -0.03009919, 1.0977881 , -1.69915867, -0.54960063, -0.38438985])" 527 | ] 528 | }, 529 | "execution_count": 33, 530 | "metadata": {}, 531 | "output_type": "execute_result" 532 | } 533 | ], 534 | "source": [ 535 | "a" 536 | ] 537 | }, 538 | { 539 | "cell_type": "code", 540 | "execution_count": 35, 541 | "metadata": {}, 542 | "outputs": [], 543 | "source": [ 544 | "returns = np.diff(a)/a[:-1]" 545 | ] 546 | }, 547 | { 548 | "cell_type": "code", 549 | "execution_count": 36, 550 | "metadata": {}, 551 | "outputs": [ 552 | { 553 | "data": { 554 | "text/plain": [ 555 | "array([ -1.62249143, 2.39629113, -1.62475752, -1.51291529,\n", 556 | " -1.04862651, -37.47234271, -2.54780204, -0.67654543,\n", 557 | " -0.30060151])" 558 | ] 559 | }, 560 | "execution_count": 36, 561 | "metadata": {}, 562 | "output_type": "execute_result" 563 | } 564 | ], 565 | "source": [ 566 | "returns" 567 | ] 568 | }, 569 | { 570 | "cell_type": "code", 571 | "execution_count": 37, 572 | "metadata": {}, 573 | "outputs": [ 574 | { 575 | "data": { 576 | "text/plain": [ 577 | "11.57815124733535" 578 | ] 579 | }, 580 | "execution_count": 37, 581 | "metadata": {}, 582 | "output_type": "execute_result" 583 | } 584 | ], 585 | "source": [ 586 | "np.std(returns)" 587 | ] 588 | }, 589 | { 590 | "cell_type": "code", 591 | "execution_count": 38, 592 | "metadata": {}, 593 | "outputs": [ 594 | { 595 | "data": { 596 | "text/plain": [ 597 | "(array([1]),)" 598 | ] 599 | }, 600 | "execution_count": 38, 601 | "metadata": {}, 602 | "output_type": "execute_result" 603 | } 604 | ], 605 | "source": [ 606 | "np.where(returns>0)" 607 | ] 608 | }, 609 | { 610 | "cell_type": "code", 611 | "execution_count": 39, 612 | "metadata": {}, 613 | "outputs": [ 614 | { 615 | "data": { 616 | "text/plain": [ 617 | "0.0" 618 | ] 619 | }, 620 | "execution_count": 39, 621 | "metadata": {}, 622 | "output_type": "execute_result" 623 | } 624 | ], 625 | "source": [ 626 | "np.sqrt(1/12)" 627 | ] 628 | }, 629 | { 630 | "cell_type": "code", 631 | "execution_count": 40, 632 | "metadata": {}, 633 | "outputs": [ 634 | { 635 | "data": { 636 | "text/plain": [ 637 | "0.28867513459481287" 638 | ] 639 | }, 640 | "execution_count": 40, 641 | "metadata": {}, 642 | "output_type": "execute_result" 643 | } 644 | ], 645 | "source": [ 646 | "np.sqrt (1./12)" 647 | ] 648 | }, 649 | { 650 | "cell_type": "code", 651 | "execution_count": 41, 652 | "metadata": { 653 | "collapsed": true 654 | }, 655 | "outputs": [], 656 | "source": [ 657 | "a = np.arange(10)" 658 | ] 659 | }, 660 | { 661 | "cell_type": "code", 662 | "execution_count": 42, 663 | "metadata": { 664 | "collapsed": true 665 | }, 666 | "outputs": [], 667 | "source": [ 668 | "indices = np.where(a>5)" 669 | ] 670 | }, 671 | { 672 | "cell_type": "code", 673 | "execution_count": 43, 674 | "metadata": {}, 675 | "outputs": [ 676 | { 677 | "data": { 678 | "text/plain": [ 679 | "array([[6, 7, 8, 9]])" 680 | ] 681 | }, 682 | "execution_count": 43, 683 | "metadata": {}, 684 | "output_type": "execute_result" 685 | } 686 | ], 687 | "source": [ 688 | "np.take(a,indices)" 689 | ] 690 | }, 691 | { 692 | "cell_type": "code", 693 | "execution_count": 44, 694 | "metadata": {}, 695 | "outputs": [ 696 | { 697 | "data": { 698 | "text/plain": [ 699 | "0" 700 | ] 701 | }, 702 | "execution_count": 44, 703 | "metadata": {}, 704 | "output_type": "execute_result" 705 | } 706 | ], 707 | "source": [ 708 | "np.argmin(a)" 709 | ] 710 | }, 711 | { 712 | "cell_type": "code", 713 | "execution_count": 45, 714 | "metadata": {}, 715 | "outputs": [ 716 | { 717 | "data": { 718 | "text/plain": [ 719 | "9" 720 | ] 721 | }, 722 | "execution_count": 45, 723 | "metadata": {}, 724 | "output_type": "execute_result" 725 | } 726 | ], 727 | "source": [ 728 | "np.argmax(a)" 729 | ] 730 | }, 731 | { 732 | "cell_type": "code", 733 | "execution_count": 46, 734 | "metadata": {}, 735 | "outputs": [ 736 | { 737 | "data": { 738 | "text/plain": [ 739 | "array([1., 1., 1., 1., 1.])" 740 | ] 741 | }, 742 | "execution_count": 46, 743 | "metadata": {}, 744 | "output_type": "execute_result" 745 | } 746 | ], 747 | "source": [ 748 | "np.ones(5)" 749 | ] 750 | }, 751 | { 752 | "cell_type": "code", 753 | "execution_count": 47, 754 | "metadata": { 755 | "collapsed": true 756 | }, 757 | "outputs": [], 758 | "source": [ 759 | "a = np.ones(10)" 760 | ] 761 | }, 762 | { 763 | "cell_type": "code", 764 | "execution_count": 48, 765 | "metadata": { 766 | "collapsed": true 767 | }, 768 | "outputs": [], 769 | "source": [ 770 | "a.fill(5)" 771 | ] 772 | }, 773 | { 774 | "cell_type": "code", 775 | "execution_count": 49, 776 | "metadata": {}, 777 | "outputs": [ 778 | { 779 | "data": { 780 | "text/plain": [ 781 | "array([5., 5., 5., 5., 5., 5., 5., 5., 5., 5.])" 782 | ] 783 | }, 784 | "execution_count": 49, 785 | "metadata": {}, 786 | "output_type": "execute_result" 787 | } 788 | ], 789 | "source": [ 790 | "a" 791 | ] 792 | }, 793 | { 794 | "cell_type": "code", 795 | "execution_count": 51, 796 | "metadata": {}, 797 | "outputs": [ 798 | { 799 | "data": { 800 | "text/plain": [ 801 | "array([[1, 1, 1],\n", 802 | " [1, 1, 1]], dtype=int32)" 803 | ] 804 | }, 805 | "execution_count": 51, 806 | "metadata": {}, 807 | "output_type": "execute_result" 808 | } 809 | ], 810 | "source": [ 811 | "np.ones(shape=(2,3),dtype = np.int32)" 812 | ] 813 | }, 814 | { 815 | "cell_type": "markdown", 816 | "metadata": {}, 817 | "source": [ 818 | "np.dot 如果处理的是一维数据,那么就是点积,如果处理二维数据,就是矩阵的乘积" 819 | ] 820 | }, 821 | { 822 | "cell_type": "code", 823 | "execution_count": 52, 824 | "metadata": { 825 | "collapsed": true 826 | }, 827 | "outputs": [], 828 | "source": [ 829 | "a = np.arange(9)" 830 | ] 831 | }, 832 | { 833 | "cell_type": "code", 834 | "execution_count": 53, 835 | "metadata": { 836 | "collapsed": true 837 | }, 838 | "outputs": [], 839 | "source": [ 840 | "b = np.arange(9)" 841 | ] 842 | }, 843 | { 844 | "cell_type": "code", 845 | "execution_count": 54, 846 | "metadata": {}, 847 | "outputs": [ 848 | { 849 | "data": { 850 | "text/plain": [ 851 | "204" 852 | ] 853 | }, 854 | "execution_count": 54, 855 | "metadata": {}, 856 | "output_type": "execute_result" 857 | } 858 | ], 859 | "source": [ 860 | "np.dot(a,b)" 861 | ] 862 | }, 863 | { 864 | "cell_type": "code", 865 | "execution_count": 56, 866 | "metadata": {}, 867 | "outputs": [], 868 | "source": [ 869 | "a = a.reshape(3,3)" 870 | ] 871 | }, 872 | { 873 | "cell_type": "code", 874 | "execution_count": 57, 875 | "metadata": {}, 876 | "outputs": [ 877 | { 878 | "data": { 879 | "text/plain": [ 880 | "array([[0, 1, 2],\n", 881 | " [3, 4, 5],\n", 882 | " [6, 7, 8]])" 883 | ] 884 | }, 885 | "execution_count": 57, 886 | "metadata": {}, 887 | "output_type": "execute_result" 888 | } 889 | ], 890 | "source": [ 891 | "a" 892 | ] 893 | }, 894 | { 895 | "cell_type": "code", 896 | "execution_count": 58, 897 | "metadata": { 898 | "collapsed": true 899 | }, 900 | "outputs": [], 901 | "source": [ 902 | "b = b.reshape(3,3)" 903 | ] 904 | }, 905 | { 906 | "cell_type": "code", 907 | "execution_count": 59, 908 | "metadata": {}, 909 | "outputs": [ 910 | { 911 | "data": { 912 | "text/plain": [ 913 | "array([[ 15, 18, 21],\n", 914 | " [ 42, 54, 66],\n", 915 | " [ 69, 90, 111]])" 916 | ] 917 | }, 918 | "execution_count": 59, 919 | "metadata": {}, 920 | "output_type": "execute_result" 921 | } 922 | ], 923 | "source": [ 924 | "np.dot(a,b)" 925 | ] 926 | }, 927 | { 928 | "cell_type": "code", 929 | "execution_count": 60, 930 | "metadata": {}, 931 | "outputs": [ 932 | { 933 | "data": { 934 | "text/plain": [ 935 | "array([[3, 3, 3],\n", 936 | " [3, 4, 5],\n", 937 | " [6, 6, 6]])" 938 | ] 939 | }, 940 | "execution_count": 60, 941 | "metadata": {}, 942 | "output_type": "execute_result" 943 | } 944 | ], 945 | "source": [ 946 | "b.clip(3,6)" 947 | ] 948 | }, 949 | { 950 | "cell_type": "code", 951 | "execution_count": 62, 952 | "metadata": {}, 953 | "outputs": [], 954 | "source": [ 955 | "a = np.arange(9)" 956 | ] 957 | }, 958 | { 959 | "cell_type": "code", 960 | "execution_count": 63, 961 | "metadata": {}, 962 | "outputs": [ 963 | { 964 | "data": { 965 | "text/plain": [ 966 | "array([3, 4, 5, 6, 7, 8])" 967 | ] 968 | }, 969 | "execution_count": 63, 970 | "metadata": {}, 971 | "output_type": "execute_result" 972 | } 973 | ], 974 | "source": [ 975 | "a.compress(a>2)" 976 | ] 977 | }, 978 | { 979 | "cell_type": "code", 980 | "execution_count": 65, 981 | "metadata": {}, 982 | "outputs": [], 983 | "source": [ 984 | "a = np.arange(1,9)" 985 | ] 986 | }, 987 | { 988 | "cell_type": "code", 989 | "execution_count": 66, 990 | "metadata": {}, 991 | "outputs": [ 992 | { 993 | "data": { 994 | "text/plain": [ 995 | "40320" 996 | ] 997 | }, 998 | "execution_count": 66, 999 | "metadata": {}, 1000 | "output_type": "execute_result" 1001 | } 1002 | ], 1003 | "source": [ 1004 | "a.prod()" 1005 | ] 1006 | }, 1007 | { 1008 | "cell_type": "code", 1009 | "execution_count": 67, 1010 | "metadata": {}, 1011 | "outputs": [ 1012 | { 1013 | "data": { 1014 | "text/plain": [ 1015 | "array([ 1, 2, 6, 24, 120, 720, 5040, 40320])" 1016 | ] 1017 | }, 1018 | "execution_count": 67, 1019 | "metadata": {}, 1020 | "output_type": "execute_result" 1021 | } 1022 | ], 1023 | "source": [ 1024 | "a.cumprod()" 1025 | ] 1026 | } 1027 | ], 1028 | "metadata": { 1029 | "kernelspec": { 1030 | "display_name": "Python 2", 1031 | "language": "python", 1032 | "name": "python2" 1033 | }, 1034 | "language_info": { 1035 | "codemirror_mode": { 1036 | "name": "ipython", 1037 | "version": 2 1038 | }, 1039 | "file_extension": ".py", 1040 | "mimetype": "text/x-python", 1041 | "name": "python", 1042 | "nbconvert_exporter": "python", 1043 | "pygments_lexer": "ipython2", 1044 | "version": "2.7.13" 1045 | } 1046 | }, 1047 | "nbformat": 4, 1048 | "nbformat_minor": 2 1049 | } 1050 | -------------------------------------------------------------------------------- /3-便捷函数.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "##
便捷函数
" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "### 1 常用函数" 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 2, 20 | "metadata": {}, 21 | "outputs": [], 22 | "source": [ 23 | "import numpy as np" 24 | ] 25 | }, 26 | { 27 | "cell_type": "code", 28 | "execution_count": 3, 29 | "metadata": { 30 | "collapsed": true 31 | }, 32 | "outputs": [], 33 | "source": [ 34 | "a = np.arange(-5,5)" 35 | ] 36 | }, 37 | { 38 | "cell_type": "code", 39 | "execution_count": 9, 40 | "metadata": {}, 41 | "outputs": [], 42 | "source": [ 43 | "signs = np.sign(a)" 44 | ] 45 | }, 46 | { 47 | "cell_type": "code", 48 | "execution_count": 10, 49 | "metadata": {}, 50 | "outputs": [], 51 | "source": [ 52 | "piecewises = np.piecewise(a,[a>0,a<0],[1,-1])" 53 | ] 54 | }, 55 | { 56 | "cell_type": "code", 57 | "execution_count": 12, 58 | "metadata": {}, 59 | "outputs": [ 60 | { 61 | "data": { 62 | "text/plain": [ 63 | "True" 64 | ] 65 | }, 66 | "execution_count": 12, 67 | "metadata": {}, 68 | "output_type": "execute_result" 69 | } 70 | ], 71 | "source": [ 72 | "np.array_equal(signs,piecewises)" 73 | ] 74 | }, 75 | { 76 | "cell_type": "markdown", 77 | "metadata": {}, 78 | "source": [ 79 | "### 2 创建矩阵" 80 | ] 81 | }, 82 | { 83 | "cell_type": "code", 84 | "execution_count": 13, 85 | "metadata": { 86 | "collapsed": true 87 | }, 88 | "outputs": [], 89 | "source": [ 90 | "A = np.mat('1 2 3; 4 5 6; 7 8 9')" 91 | ] 92 | }, 93 | { 94 | "cell_type": "code", 95 | "execution_count": 14, 96 | "metadata": {}, 97 | "outputs": [ 98 | { 99 | "data": { 100 | "text/plain": [ 101 | "matrix([[1, 2, 3],\n", 102 | " [4, 5, 6],\n", 103 | " [7, 8, 9]])" 104 | ] 105 | }, 106 | "execution_count": 14, 107 | "metadata": {}, 108 | "output_type": "execute_result" 109 | } 110 | ], 111 | "source": [ 112 | "A" 113 | ] 114 | }, 115 | { 116 | "cell_type": "code", 117 | "execution_count": 15, 118 | "metadata": {}, 119 | "outputs": [ 120 | { 121 | "data": { 122 | "text/plain": [ 123 | "matrix([[1, 4, 7],\n", 124 | " [2, 5, 8],\n", 125 | " [3, 6, 9]])" 126 | ] 127 | }, 128 | "execution_count": 15, 129 | "metadata": {}, 130 | "output_type": "execute_result" 131 | } 132 | ], 133 | "source": [ 134 | "A.T" 135 | ] 136 | }, 137 | { 138 | "cell_type": "code", 139 | "execution_count": 19, 140 | "metadata": {}, 141 | "outputs": [], 142 | "source": [ 143 | "A = np.eye(2)" 144 | ] 145 | }, 146 | { 147 | "cell_type": "code", 148 | "execution_count": 20, 149 | "metadata": {}, 150 | "outputs": [ 151 | { 152 | "data": { 153 | "text/plain": [ 154 | "array([[1., 0.],\n", 155 | " [0., 1.]])" 156 | ] 157 | }, 158 | "execution_count": 20, 159 | "metadata": {}, 160 | "output_type": "execute_result" 161 | } 162 | ], 163 | "source": [ 164 | "A" 165 | ] 166 | }, 167 | { 168 | "cell_type": "code", 169 | "execution_count": 21, 170 | "metadata": { 171 | "collapsed": true 172 | }, 173 | "outputs": [], 174 | "source": [ 175 | "B = 2*A" 176 | ] 177 | }, 178 | { 179 | "cell_type": "code", 180 | "execution_count": 22, 181 | "metadata": {}, 182 | "outputs": [ 183 | { 184 | "data": { 185 | "text/plain": [ 186 | "array([[2., 0.],\n", 187 | " [0., 2.]])" 188 | ] 189 | }, 190 | "execution_count": 22, 191 | "metadata": {}, 192 | "output_type": "execute_result" 193 | } 194 | ], 195 | "source": [ 196 | "B" 197 | ] 198 | }, 199 | { 200 | "cell_type": "code", 201 | "execution_count": 23, 202 | "metadata": {}, 203 | "outputs": [ 204 | { 205 | "data": { 206 | "text/plain": [ 207 | "matrix([[1., 0., 2., 0.],\n", 208 | " [0., 1., 0., 2.],\n", 209 | " [1., 0., 2., 0.],\n", 210 | " [0., 1., 0., 2.]])" 211 | ] 212 | }, 213 | "execution_count": 23, 214 | "metadata": {}, 215 | "output_type": "execute_result" 216 | } 217 | ], 218 | "source": [ 219 | "np.bmat('A B;A B')" 220 | ] 221 | }, 222 | { 223 | "cell_type": "markdown", 224 | "metadata": {}, 225 | "source": [ 226 | "### 3 通用函数" 227 | ] 228 | }, 229 | { 230 | "cell_type": "markdown", 231 | "metadata": {}, 232 | "source": [ 233 | "通用函数的输入是一组标量,输出也是一组标量,他们通常可以对应于基本数学运算,如加减乘除" 234 | ] 235 | }, 236 | { 237 | "cell_type": "code", 238 | "execution_count": 24, 239 | "metadata": { 240 | "collapsed": true 241 | }, 242 | "outputs": [], 243 | "source": [ 244 | "def ultimate_answer(a):\n", 245 | " return np.zeros_like(a)" 246 | ] 247 | }, 248 | { 249 | "cell_type": "code", 250 | "execution_count": 25, 251 | "metadata": { 252 | "collapsed": true 253 | }, 254 | "outputs": [], 255 | "source": [ 256 | "a = np.eye(3)" 257 | ] 258 | }, 259 | { 260 | "cell_type": "code", 261 | "execution_count": 26, 262 | "metadata": {}, 263 | "outputs": [ 264 | { 265 | "data": { 266 | "text/plain": [ 267 | "array([[0., 0., 0.],\n", 268 | " [0., 0., 0.],\n", 269 | " [0., 0., 0.]])" 270 | ] 271 | }, 272 | "execution_count": 26, 273 | "metadata": {}, 274 | "output_type": "execute_result" 275 | } 276 | ], 277 | "source": [ 278 | "ultimate_answer(a)" 279 | ] 280 | }, 281 | { 282 | "cell_type": "code", 283 | "execution_count": 27, 284 | "metadata": {}, 285 | "outputs": [ 286 | { 287 | "data": { 288 | "text/plain": [ 289 | "" 290 | ] 291 | }, 292 | "execution_count": 27, 293 | "metadata": {}, 294 | "output_type": "execute_result" 295 | } 296 | ], 297 | "source": [ 298 | "a.flat" 299 | ] 300 | }, 301 | { 302 | "cell_type": "code", 303 | "execution_count": 28, 304 | "metadata": {}, 305 | "outputs": [ 306 | { 307 | "data": { 308 | "text/plain": [ 309 | "[1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]" 310 | ] 311 | }, 312 | "execution_count": 28, 313 | "metadata": {}, 314 | "output_type": "execute_result" 315 | } 316 | ], 317 | "source": [ 318 | "list(a.flat)" 319 | ] 320 | }, 321 | { 322 | "cell_type": "code", 323 | "execution_count": 29, 324 | "metadata": { 325 | "collapsed": true 326 | }, 327 | "outputs": [], 328 | "source": [ 329 | "a = np.arange(9)" 330 | ] 331 | }, 332 | { 333 | "cell_type": "code", 334 | "execution_count": 30, 335 | "metadata": {}, 336 | "outputs": [ 337 | { 338 | "data": { 339 | "text/plain": [ 340 | "36" 341 | ] 342 | }, 343 | "execution_count": 30, 344 | "metadata": {}, 345 | "output_type": "execute_result" 346 | } 347 | ], 348 | "source": [ 349 | "np.add.reduce(a)" 350 | ] 351 | }, 352 | { 353 | "cell_type": "code", 354 | "execution_count": 31, 355 | "metadata": {}, 356 | "outputs": [ 357 | { 358 | "data": { 359 | "text/plain": [ 360 | "array([ 0, 1, 3, 6, 10, 15, 21, 28, 36])" 361 | ] 362 | }, 363 | "execution_count": 31, 364 | "metadata": {}, 365 | "output_type": "execute_result" 366 | } 367 | ], 368 | "source": [ 369 | "np.add.accumulate(a)" 370 | ] 371 | }, 372 | { 373 | "cell_type": "markdown", 374 | "metadata": {}, 375 | "source": [ 376 | "### 4 算术运算" 377 | ] 378 | }, 379 | { 380 | "cell_type": "code", 381 | "execution_count": 32, 382 | "metadata": { 383 | "collapsed": true 384 | }, 385 | "outputs": [], 386 | "source": [ 387 | "a = np.array([2,6,5])\n", 388 | "b = np.array([1,2,3])" 389 | ] 390 | }, 391 | { 392 | "cell_type": "code", 393 | "execution_count": 33, 394 | "metadata": {}, 395 | "outputs": [ 396 | { 397 | "data": { 398 | "text/plain": [ 399 | "array([2, 3, 1])" 400 | ] 401 | }, 402 | "execution_count": 33, 403 | "metadata": {}, 404 | "output_type": "execute_result" 405 | } 406 | ], 407 | "source": [ 408 | "np.divide(a,b)" 409 | ] 410 | }, 411 | { 412 | "cell_type": "code", 413 | "execution_count": 34, 414 | "metadata": {}, 415 | "outputs": [ 416 | { 417 | "data": { 418 | "text/plain": [ 419 | "array([0, 0, 0])" 420 | ] 421 | }, 422 | "execution_count": 34, 423 | "metadata": {}, 424 | "output_type": "execute_result" 425 | } 426 | ], 427 | "source": [ 428 | "np.divide(b,a)" 429 | ] 430 | }, 431 | { 432 | "cell_type": "code", 433 | "execution_count": 35, 434 | "metadata": {}, 435 | "outputs": [ 436 | { 437 | "data": { 438 | "text/plain": [ 439 | "array([2. , 3. , 1.66666667])" 440 | ] 441 | }, 442 | "execution_count": 35, 443 | "metadata": {}, 444 | "output_type": "execute_result" 445 | } 446 | ], 447 | "source": [ 448 | "np.true_divide(a,b)" 449 | ] 450 | }, 451 | { 452 | "cell_type": "code", 453 | "execution_count": 36, 454 | "metadata": {}, 455 | "outputs": [ 456 | { 457 | "data": { 458 | "text/plain": [ 459 | "array([0.5 , 0.33333333, 0.6 ])" 460 | ] 461 | }, 462 | "execution_count": 36, 463 | "metadata": {}, 464 | "output_type": "execute_result" 465 | } 466 | ], 467 | "source": [ 468 | "np.true_divide(b,a)" 469 | ] 470 | }, 471 | { 472 | "cell_type": "code", 473 | "execution_count": 37, 474 | "metadata": { 475 | "collapsed": true 476 | }, 477 | "outputs": [], 478 | "source": [ 479 | "from __future__ import division" 480 | ] 481 | }, 482 | { 483 | "cell_type": "code", 484 | "execution_count": 38, 485 | "metadata": {}, 486 | "outputs": [ 487 | { 488 | "data": { 489 | "text/plain": [ 490 | "array([2. , 3. , 1.66666667])" 491 | ] 492 | }, 493 | "execution_count": 38, 494 | "metadata": {}, 495 | "output_type": "execute_result" 496 | } 497 | ], 498 | "source": [ 499 | "a/b" 500 | ] 501 | }, 502 | { 503 | "cell_type": "code", 504 | "execution_count": 39, 505 | "metadata": {}, 506 | "outputs": [ 507 | { 508 | "data": { 509 | "text/plain": [ 510 | "array([2, 3, 1])" 511 | ] 512 | }, 513 | "execution_count": 39, 514 | "metadata": {}, 515 | "output_type": "execute_result" 516 | } 517 | ], 518 | "source": [ 519 | "a//b" 520 | ] 521 | }, 522 | { 523 | "cell_type": "code", 524 | "execution_count": 40, 525 | "metadata": { 526 | "collapsed": true 527 | }, 528 | "outputs": [], 529 | "source": [ 530 | "a = np.arange(-4,4)" 531 | ] 532 | }, 533 | { 534 | "cell_type": "code", 535 | "execution_count": 41, 536 | "metadata": {}, 537 | "outputs": [ 538 | { 539 | "data": { 540 | "text/plain": [ 541 | "array([-4, -3, -2, -1, 0, 1, 2, 3])" 542 | ] 543 | }, 544 | "execution_count": 41, 545 | "metadata": {}, 546 | "output_type": "execute_result" 547 | } 548 | ], 549 | "source": [ 550 | "a" 551 | ] 552 | }, 553 | { 554 | "cell_type": "code", 555 | "execution_count": 42, 556 | "metadata": {}, 557 | "outputs": [ 558 | { 559 | "data": { 560 | "text/plain": [ 561 | "array([0, 1, 0, 1, 0, 1, 0, 1])" 562 | ] 563 | }, 564 | "execution_count": 42, 565 | "metadata": {}, 566 | "output_type": "execute_result" 567 | } 568 | ], 569 | "source": [ 570 | "np.remainder(a,2)" 571 | ] 572 | }, 573 | { 574 | "cell_type": "code", 575 | "execution_count": 43, 576 | "metadata": {}, 577 | "outputs": [ 578 | { 579 | "data": { 580 | "text/plain": [ 581 | "array([0, 1, 0, 1, 0, 1, 0, 1])" 582 | ] 583 | }, 584 | "execution_count": 43, 585 | "metadata": {}, 586 | "output_type": "execute_result" 587 | } 588 | ], 589 | "source": [ 590 | "np.mod(a,2)" 591 | ] 592 | }, 593 | { 594 | "cell_type": "code", 595 | "execution_count": 44, 596 | "metadata": {}, 597 | "outputs": [ 598 | { 599 | "data": { 600 | "text/plain": [ 601 | "array([0, 1, 0, 1, 0, 1, 0, 1])" 602 | ] 603 | }, 604 | "execution_count": 44, 605 | "metadata": {}, 606 | "output_type": "execute_result" 607 | } 608 | ], 609 | "source": [ 610 | "a%2" 611 | ] 612 | }, 613 | { 614 | "cell_type": "code", 615 | "execution_count": 45, 616 | "metadata": {}, 617 | "outputs": [ 618 | { 619 | "data": { 620 | "text/plain": [ 621 | "array([ 0, -1, 0, -1, 0, 1, 0, 1])" 622 | ] 623 | }, 624 | "execution_count": 45, 625 | "metadata": {}, 626 | "output_type": "execute_result" 627 | } 628 | ], 629 | "source": [ 630 | "np.fmod(a,2)" 631 | ] 632 | }, 633 | { 634 | "cell_type": "code", 635 | "execution_count": 46, 636 | "metadata": { 637 | "collapsed": true 638 | }, 639 | "outputs": [], 640 | "source": [ 641 | "from matplotlib.pyplot import plot\n", 642 | "from matplotlib.pyplot import show" 643 | ] 644 | }, 645 | { 646 | "cell_type": "code", 647 | "execution_count": 47, 648 | "metadata": { 649 | "collapsed": true 650 | }, 651 | "outputs": [], 652 | "source": [ 653 | "a = 1\n", 654 | "b =2" 655 | ] 656 | }, 657 | { 658 | "cell_type": "code", 659 | "execution_count": 48, 660 | "metadata": { 661 | "collapsed": true 662 | }, 663 | "outputs": [], 664 | "source": [ 665 | "t = np.linspace(-np.pi,np.pi,201)" 666 | ] 667 | }, 668 | { 669 | "cell_type": "code", 670 | "execution_count": 49, 671 | "metadata": { 672 | "collapsed": true 673 | }, 674 | "outputs": [], 675 | "source": [ 676 | "x = np.sin(a*t +np.pi/2)\n", 677 | "y = np.sin(b*t)" 678 | ] 679 | }, 680 | { 681 | "cell_type": "code", 682 | "execution_count": 52, 683 | "metadata": {}, 684 | "outputs": [ 685 | { 686 | "data": { 687 | "text/plain": [ 688 | "[]" 689 | ] 690 | }, 691 | "execution_count": 52, 692 | "metadata": {}, 693 | "output_type": "execute_result" 694 | } 695 | ], 696 | "source": [ 697 | "plot(x)" 698 | ] 699 | }, 700 | { 701 | "cell_type": "code", 702 | "execution_count": 53, 703 | "metadata": {}, 704 | "outputs": [ 705 | { 706 | "data": { 707 | "image/png": "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\n", 708 | "text/plain": [ 709 | "" 710 | ] 711 | }, 712 | "metadata": {}, 713 | "output_type": "display_data" 714 | } 715 | ], 716 | "source": [ 717 | "show()" 718 | ] 719 | } 720 | ], 721 | "metadata": { 722 | "kernelspec": { 723 | "display_name": "Python 2", 724 | "language": "python", 725 | "name": "python2" 726 | }, 727 | "language_info": { 728 | "codemirror_mode": { 729 | "name": "ipython", 730 | "version": 2 731 | }, 732 | "file_extension": ".py", 733 | "mimetype": "text/x-python", 734 | "name": "python", 735 | "nbconvert_exporter": "python", 736 | "pygments_lexer": "ipython2", 737 | "version": "2.7.13" 738 | } 739 | }, 740 | "nbformat": 4, 741 | "nbformat_minor": 2 742 | } 743 | -------------------------------------------------------------------------------- /5-质量控制.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "##
质量控制
" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 47, 13 | "metadata": { 14 | "collapsed": true 15 | }, 16 | "outputs": [], 17 | "source": [ 18 | "import numpy as np" 19 | ] 20 | }, 21 | { 22 | "cell_type": "code", 23 | "execution_count": 48, 24 | "metadata": { 25 | "collapsed": true 26 | }, 27 | "outputs": [], 28 | "source": [ 29 | "np.testing.assert_almost_equal(0.12345,0.12346,decimal=5)" 30 | ] 31 | }, 32 | { 33 | "cell_type": "code", 34 | "execution_count": 49, 35 | "metadata": {}, 36 | "outputs": [ 37 | { 38 | "ename": "AssertionError", 39 | "evalue": "\nArrays are not almost equal to 6 decimals\n ACTUAL: 0.12345\n DESIRED: 0.12346", 40 | "output_type": "error", 41 | "traceback": [ 42 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 43 | "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", 44 | "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtesting\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0massert_almost_equal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0.12345\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m0.12346\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdecimal\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m6\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", 45 | "\u001b[0;32m/home/xujun/anaconda2/lib/python2.7/site-packages/numpy/testing/nose_tools/utils.pyc\u001b[0m in \u001b[0;36massert_almost_equal\u001b[0;34m(actual, desired, decimal, err_msg, verbose)\u001b[0m\n\u001b[1;32m 579\u001b[0m \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 580\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mabs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdesired\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mactual\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m>=\u001b[0m \u001b[0;36m1.5\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;36m10.0\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mdecimal\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 581\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mAssertionError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_build_err_msg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 582\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 583\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", 46 | "\u001b[0;31mAssertionError\u001b[0m: \nArrays are not almost equal to 6 decimals\n ACTUAL: 0.12345\n DESIRED: 0.12346" 47 | ] 48 | } 49 | ], 50 | "source": [ 51 | "np.testing.assert_almost_equal(0.12345,0.12346,decimal=6)" 52 | ] 53 | }, 54 | { 55 | "cell_type": "code", 56 | "execution_count": 50, 57 | "metadata": {}, 58 | "outputs": [], 59 | "source": [ 60 | "import matplotlib.pyplot as plt" 61 | ] 62 | }, 63 | { 64 | "cell_type": "code", 65 | "execution_count": 51, 66 | "metadata": { 67 | "collapsed": true 68 | }, 69 | "outputs": [], 70 | "source": [ 71 | "func = np.poly1d(np.array([1,2,3,4]).astype(np.float32))" 72 | ] 73 | }, 74 | { 75 | "cell_type": "code", 76 | "execution_count": 52, 77 | "metadata": { 78 | "collapsed": true 79 | }, 80 | "outputs": [], 81 | "source": [ 82 | "x = np.linspace(-10,10,30)" 83 | ] 84 | }, 85 | { 86 | "cell_type": "code", 87 | "execution_count": 53, 88 | "metadata": { 89 | "collapsed": true 90 | }, 91 | "outputs": [], 92 | "source": [ 93 | "y = func(x)" 94 | ] 95 | }, 96 | { 97 | "cell_type": "code", 98 | "execution_count": 54, 99 | "metadata": {}, 100 | "outputs": [ 101 | { 102 | "data": { 103 | "text/plain": [ 104 | "[]" 105 | ] 106 | }, 107 | "execution_count": 54, 108 | "metadata": {}, 109 | "output_type": "execute_result" 110 | } 111 | ], 112 | "source": [ 113 | "plt.plot(x,y)" 114 | ] 115 | }, 116 | { 117 | "cell_type": "code", 118 | "execution_count": 55, 119 | "metadata": {}, 120 | "outputs": [ 121 | { 122 | "data": { 123 | "text/plain": [ 124 | "" 125 | ] 126 | }, 127 | "execution_count": 55, 128 | "metadata": {}, 129 | "output_type": "execute_result" 130 | } 131 | ], 132 | "source": [ 133 | "plt.xlabel('x')" 134 | ] 135 | }, 136 | { 137 | "cell_type": "code", 138 | "execution_count": 56, 139 | "metadata": {}, 140 | "outputs": [ 141 | { 142 | "data": { 143 | "image/png": "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\nJP3/uawAAAAASUVORK5CYII=\n", 144 | "text/plain": [ 145 | "" 146 | ] 147 | }, 148 | "metadata": {}, 149 | "output_type": "display_data" 150 | } 151 | ], 152 | "source": [ 153 | "plt.show()" 154 | ] 155 | } 156 | ], 157 | "metadata": { 158 | "kernelspec": { 159 | "display_name": "Python 2", 160 | "language": "python", 161 | "name": "python2" 162 | }, 163 | "language_info": { 164 | "codemirror_mode": { 165 | "name": "ipython", 166 | "version": 2 167 | }, 168 | "file_extension": ".py", 169 | "mimetype": "text/x-python", 170 | "name": "python", 171 | "nbconvert_exporter": "python", 172 | "pygments_lexer": "ipython2", 173 | "version": "2.7.13" 174 | } 175 | }, 176 | "nbformat": 4, 177 | "nbformat_minor": 2 178 | } 179 | -------------------------------------------------------------------------------- /Python数据分析基础教程:NumPy学习指南(第2版).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-nlp/numpy-tutorial/26d421b3eceeebfe9806e0baf5a908f16d0d8fd4/Python数据分析基础教程:NumPy学习指南(第2版).pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 最简单的numpy教程 2 | -------------------------------------------------------------------------------- /data.csv: -------------------------------------------------------------------------------- 1 | AAPL,28-01-2011, ,344.17,344.4,333.53,336.1,21144800 -------------------------------------------------------------------------------- /eye.txt: -------------------------------------------------------------------------------- 1 | 1.000000000000000000e+00 0.000000000000000000e+00 2 | 0.000000000000000000e+00 1.000000000000000000e+00 3 | --------------------------------------------------------------------------------