From 6a3c918bdcb875036f624d28dd0b8fe390a6b623 Mon Sep 17 00:00:00 2001 From: Sergey Lemeshevsky Date: Wed, 18 Mar 2020 21:39:35 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B8=D0=BB=20Untitled?= =?UTF-8?q?.ipynb?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Untitled.ipynb | 656 --- collections.ipynb | 2 +- datatype.ipynb | 2 +- fig-numpy/numpy-1.png | Bin 0 -> 69206 bytes fig-numpy/numpy-1.png~ | Bin 0 -> 58942 bytes fig-numpy/numpy-2.png | Bin 0 -> 97039 bytes fig-numpy/numpy-2.png~ | Bin 0 -> 120587 bytes fig-numpy/numpy-3.png | Bin 0 -> 26777 bytes intro.ipynb | 184 +- numpy.ipynb | 3700 +++++++++++++++++ src-collections/generate_usernames_ans.py | 102 + .../csv2html-checkpoint.py~ | 80 + .../print_unicode-checkpoint.py~ | 33 + .../quadratic-checkpoint.py~ | 50 + src-datatype/csv2html.py | 1 - src-datatype/quadratic.py | 4 +- .../{fib-checkpoint.py => fib-checkpoint.py~} | 0 ...llo-checkpoint.py => hello-checkpoint.py~} | 0 ...test-checkpoint.py => test-checkpoint.py~} | 0 src-numpy/array_archive.npz | Bin 0 -> 650 bytes src-numpy/arrays_compressed.npz | Bin 0 -> 424 bytes src-numpy/random_walk_numpy.py | 8 + src-numpy/random_walk_pure.py | 17 + src-numpy/some_array.npy | Bin 0 -> 208 bytes 24 files changed, 4029 insertions(+), 810 deletions(-) delete mode 100644 Untitled.ipynb create mode 100644 fig-numpy/numpy-1.png create mode 100644 fig-numpy/numpy-1.png~ create mode 100644 fig-numpy/numpy-2.png create mode 100644 fig-numpy/numpy-2.png~ create mode 100644 fig-numpy/numpy-3.png create mode 100644 numpy.ipynb create mode 100755 src-collections/generate_usernames_ans.py create mode 100644 src-datatype/.ipynb_checkpoints/csv2html-checkpoint.py~ create mode 100644 src-datatype/.ipynb_checkpoints/print_unicode-checkpoint.py~ create mode 100644 src-datatype/.ipynb_checkpoints/quadratic-checkpoint.py~ rename src-intro/.ipynb_checkpoints/{fib-checkpoint.py => fib-checkpoint.py~} (100%) rename src-intro/.ipynb_checkpoints/{hello-checkpoint.py => hello-checkpoint.py~} (100%) rename src-intro/.ipynb_checkpoints/{test-checkpoint.py => test-checkpoint.py~} (100%) create mode 100644 src-numpy/array_archive.npz create mode 100644 src-numpy/arrays_compressed.npz create mode 100644 src-numpy/random_walk_numpy.py create mode 100644 src-numpy/random_walk_pure.py create mode 100644 src-numpy/some_array.npy diff --git a/Untitled.ipynb b/Untitled.ipynb deleted file mode 100644 index 51c9b17..0000000 --- a/Untitled.ipynb +++ /dev/null @@ -1,656 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdin", - "output_type": "stream", - "text": [ - " 10\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "100\n" - ] - } - ], - "source": [ - "%run src-intro/test.py" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'/home/svl/Projects/Doconce/python-course/ipynb'" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "%pwd" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/home/svl/Projects/Doconce/python-course/ipynb/src-intro\n" - ] - } - ], - "source": [ - "%cd src-intro" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Hello from Python!\n" - ] - } - ], - "source": [ - "%run hello.py" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\n" - ] - } - ], - "source": [ - "%run fib.py" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "range(0, 5)" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "range(5)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " at 0x7f65857f9c80>\n" - ] - } - ], - "source": [ - "print(i for i in range(5))" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "\u001b[0;31mInit signature:\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m/\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mDocstring:\u001b[0m \n", - "range(stop) -> range object\n", - "range(start, stop[, step]) -> range object\n", - "\n", - "Return an object that produces a sequence of integers from start (inclusive)\n", - "to stop (exclusive) by step. range(i, j) produces i, i+1, i+2, ..., j-1.\n", - "start defaults to 0, and stop is omitted! range(4) produces 0, 1, 2, 3.\n", - "These are exactly the valid indices for a list of 4 elements.\n", - "When step is given, it specifies the increment (or decrement).\n", - "\u001b[0;31mType:\u001b[0m type\n", - "\u001b[0;31mSubclasses:\u001b[0m \n" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "range?" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[10, 8, 6, 4, 2]" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "list(range(10,1, -2))" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]\n" - ] - } - ], - "source": [ - "%run fib.py" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "ename": "TypeError", - "evalue": "can't multiply sequence by non-int of type 'float'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mfib\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1.0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/Projects/Doconce/python-course/ipynb/src-intro/fib.py\u001b[0m in \u001b[0;36mfib\u001b[0;34m(n)\u001b[0m\n\u001b[1;32m 5\u001b[0m \"\"\"\n\u001b[1;32m 6\u001b[0m \u001b[0mf0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn\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[1;32m 9\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf0\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mf1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mTypeError\u001b[0m: can't multiply sequence by non-int of type 'float'" - ] - } - ], - "source": [ - "fib(1.0)" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "> \u001b[0;32m/home/svl/Projects/Doconce/python-course/ipynb/src-intro/fib.py\u001b[0m(7)\u001b[0;36mfib\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32m 5 \u001b[0;31m \"\"\"\n", - "\u001b[0m\u001b[0;32m 6 \u001b[0;31m \u001b[0mf0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0m\u001b[0;32m----> 7 \u001b[0;31m \u001b[0mf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0m\u001b[0;32m 8 \u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn\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[0;32m 9 \u001b[0;31m \u001b[0mf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf0\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mf1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0m\n" - ] - }, - { - "name": "stdin", - "output_type": "stream", - "text": [ - "ipdb> f\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "*** NameError: name 'f' is not defined\n" - ] - }, - { - "name": "stdin", - "output_type": "stream", - "text": [ - "ipdb> f01\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "*** NameError: name 'f01' is not defined\n" - ] - }, - { - "name": "stdin", - "output_type": "stream", - "text": [ - "ipdb> f0\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0\n" - ] - }, - { - "name": "stdin", - "output_type": "stream", - "text": [ - "ipdb> f1\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1\n" - ] - }, - { - "name": "stdin", - "output_type": "stream", - "text": [ - "ipdb> n\n" - ] - } - ], - "source": [ - "%debug" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[1]" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[1, 1, 1, 1]" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a*4" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[1]" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[1, 1, 2]" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "fib(3)" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "name": "stdin", - "output_type": "stream", - "text": [ - "Once deleted, variables cannot be recovered. Proceed (y/[n])? y\n" - ] - } - ], - "source": [ - "%reset" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'a' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0ma\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mNameError\u001b[0m: name 'a' is not defined" - ] - } - ], - "source": [ - "a" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'fib' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mfib\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m4\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mNameError\u001b[0m: name 'fib' is not defined" - ] - } - ], - "source": [ - "fib(4)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]\n" - ] - } - ], - "source": [ - "%run fib.py" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "8.35 µs ± 194 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)\n" - ] - } - ], - "source": [ - "%timeit fib(100)" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 84 µs, sys: 0 ns, total: 84 µs\n", - "Wall time: 98.5 µs\n" - ] - } - ], - "source": [ - "result = %time fib(100)" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[1,\n", - " 1,\n", - " 2,\n", - " 3,\n", - " 5,\n", - " 8,\n", - " 13,\n", - " 21,\n", - " 34,\n", - " 55,\n", - " 89,\n", - " 144,\n", - " 233,\n", - " 377,\n", - " 610,\n", - " 987,\n", - " 1597,\n", - " 2584,\n", - " 4181,\n", - " 6765,\n", - " 10946,\n", - " 17711,\n", - " 28657,\n", - " 46368,\n", - " 75025,\n", - " 121393,\n", - " 196418,\n", - " 317811,\n", - " 514229,\n", - " 832040,\n", - " 1346269,\n", - " 2178309,\n", - " 3524578,\n", - " 5702887,\n", - " 9227465,\n", - " 14930352,\n", - " 24157817,\n", - " 39088169,\n", - " 63245986,\n", - " 102334155,\n", - " 165580141,\n", - " 267914296,\n", - " 433494437,\n", - " 701408733,\n", - " 1134903170,\n", - " 1836311903,\n", - " 2971215073,\n", - " 4807526976,\n", - " 7778742049,\n", - " 12586269025,\n", - " 20365011074,\n", - " 32951280099,\n", - " 53316291173,\n", - " 86267571272,\n", - " 139583862445,\n", - " 225851433717,\n", - " 365435296162,\n", - " 591286729879,\n", - " 956722026041,\n", - " 1548008755920,\n", - " 2504730781961,\n", - " 4052739537881,\n", - " 6557470319842,\n", - " 10610209857723,\n", - " 17167680177565,\n", - " 27777890035288,\n", - " 44945570212853,\n", - " 72723460248141,\n", - " 117669030460994,\n", - " 190392490709135,\n", - " 308061521170129,\n", - " 498454011879264,\n", - " 806515533049393,\n", - " 1304969544928657,\n", - " 2111485077978050,\n", - " 3416454622906707,\n", - " 5527939700884757,\n", - " 8944394323791464,\n", - " 14472334024676221,\n", - " 23416728348467685,\n", - " 37889062373143906,\n", - " 61305790721611591,\n", - " 99194853094755497,\n", - " 160500643816367088,\n", - " 259695496911122585,\n", - " 420196140727489673,\n", - " 679891637638612258,\n", - " 1100087778366101931,\n", - " 1779979416004714189,\n", - " 2880067194370816120,\n", - " 4660046610375530309,\n", - " 7540113804746346429,\n", - " 12200160415121876738,\n", - " 19740274219868223167,\n", - " 31940434634990099905,\n", - " 51680708854858323072,\n", - " 83621143489848422977,\n", - " 135301852344706746049,\n", - " 218922995834555169026,\n", - " 354224848179261915075]" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "result" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.1" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/collections.ipynb b/collections.ipynb index 649cee7..f1a93bb 100644 --- a/collections.ipynb +++ b/collections.ipynb @@ -10,7 +10,7 @@ " \n", "**С.В. Лемешевский** (email: `sergey.lemeshevsky@gmail.com`), Институт математики НАН Беларуси\n", "\n", - "Date: **Mar 8, 2020**\n", + "Date: **Mar 18, 2020**\n", "\n", "\n", "\n", diff --git a/datatype.ipynb b/datatype.ipynb index 40df308..5196874 100644 --- a/datatype.ipynb +++ b/datatype.ipynb @@ -10,7 +10,7 @@ " \n", "**С.В. Лемешевский** (email: `sergey.lemeshevsky@gmail.com`), Институт математики НАН Беларуси\n", "\n", - "Date: **Mar 4, 2020**\n", + "Date: **Mar 18, 2020**\n", "\n", "\n", "\n", diff --git a/fig-numpy/numpy-1.png b/fig-numpy/numpy-1.png new file mode 100644 index 0000000000000000000000000000000000000000..df3c0c4963ea5d37063943cb1bbd2e6ec816abcb GIT binary patch literal 69206 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≻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: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 ?B-AqXfdv2njH*cCCK> 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�S`FS!N1s8hMJ9LmJlSu;FGD(oLOgL=2AhO^vmVSrF;NukK{BMYTZ8G>bBll z{N=e^h!ycW^_JRbyy&@#!D$#83I^vAgb}Wk!OYCu*PC%)P=bO(9pa8EDG`Z@iOI%b z#9vlpFxuslzFx99mG|NktgNgC1_r(q)E+)mR8%~N4Gjr_hbvtyVgq`nqC!24R{&>U zURhZ=Fg&~<)z;p=17OcN#l_E>nwm^gINin^ut6(fKwC0?{*(u25p8L2|K!GvV7r8A z``@GF?{cwN3rBul-e+Ky9@=YxX9*Vq;=nC5hVY&PTa8YG`T>gZo}%Ym}In$R{H+Y2ZFh zW=E$T*;!wYc5!yrx_>`VxoF71tMlHyd(|u5O3~IXE~S^?@ZV*&qq#LTl$TnA_`zg|TTSgXJ8 zw&tH1;s-#}Te(xUEG@G$v$AxRm4j=xx+KnFTknY<9v$VCl?~2!rC2jDF+JDQv#}n` zE$q*Fd}hOd-uSjoc57;Cn%%9`d;Ce#^3I(*z{HBQcXX5-t<_C>dU_JO-;KWC(!m$+ s6bU>JC8$9D&ph=1M`!>4IMng^oS{n*lFF8=U_+3yq8c(^-pK!d0oIbBvj6}9 literal 0 HcmV?d00001 diff --git a/intro.ipynb b/intro.ipynb index 0cd12cd..98a81b8 100644 --- a/intro.ipynb +++ b/intro.ipynb @@ -10,7 +10,7 @@ " \n", "**С.В. Лемешевский** (email: `sergey.lemeshevsky@gmail.com`), Институт математики НАН Беларуси\n", "\n", - "Date: **Feb 26, 2020**\n", + "Date: **Mar 18, 2020**\n", "\n", "\n", "\n", @@ -354,10 +354,7 @@ "cell_type": "code", "execution_count": 1, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -430,10 +427,7 @@ "cell_type": "code", "execution_count": 2, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -556,10 +550,7 @@ "cell_type": "code", "execution_count": 3, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -669,10 +660,7 @@ "cell_type": "code", "execution_count": 4, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -760,10 +748,7 @@ "cell_type": "code", "execution_count": 5, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -774,10 +759,7 @@ "cell_type": "code", "execution_count": 6, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -788,10 +770,7 @@ "cell_type": "code", "execution_count": 7, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -802,10 +781,7 @@ "cell_type": "code", "execution_count": 8, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -816,10 +792,7 @@ "cell_type": "code", "execution_count": 9, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -845,10 +818,7 @@ "cell_type": "code", "execution_count": 10, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -859,10 +829,7 @@ "cell_type": "code", "execution_count": 11, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -873,10 +840,7 @@ "cell_type": "code", "execution_count": 12, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -887,10 +851,7 @@ "cell_type": "code", "execution_count": 13, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -940,10 +901,7 @@ "cell_type": "code", "execution_count": 14, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -954,10 +912,7 @@ "cell_type": "code", "execution_count": 15, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -988,10 +943,7 @@ "cell_type": "code", "execution_count": 16, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -1015,10 +967,7 @@ "cell_type": "code", "execution_count": 17, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -1029,10 +978,7 @@ "cell_type": "code", "execution_count": 18, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -1043,10 +989,7 @@ "cell_type": "code", "execution_count": 19, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -1065,10 +1008,7 @@ "cell_type": "code", "execution_count": 20, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -1079,10 +1019,7 @@ "cell_type": "code", "execution_count": 21, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -1114,10 +1051,7 @@ "cell_type": "code", "execution_count": 22, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -1157,10 +1091,7 @@ "cell_type": "code", "execution_count": 23, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -1212,10 +1143,7 @@ "cell_type": "code", "execution_count": 24, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -1226,10 +1154,7 @@ "cell_type": "code", "execution_count": 25, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -1240,10 +1165,7 @@ "cell_type": "code", "execution_count": 26, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -1284,10 +1206,7 @@ "cell_type": "code", "execution_count": 27, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -1311,10 +1230,7 @@ "cell_type": "code", "execution_count": 28, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -1384,10 +1300,7 @@ "cell_type": "code", "execution_count": 29, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -1398,10 +1311,7 @@ "cell_type": "code", "execution_count": 30, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -1432,10 +1342,7 @@ "cell_type": "code", "execution_count": 31, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -1463,10 +1370,7 @@ "cell_type": "code", "execution_count": 32, "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -2229,25 +2133,7 @@ ] } ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.1" - } - }, + "metadata": {}, "nbformat": 4, - "nbformat_minor": 4 + "nbformat_minor": 2 } diff --git a/numpy.ipynb b/numpy.ipynb new file mode 100644 index 0000000..6ee6cb8 --- /dev/null +++ b/numpy.ipynb @@ -0,0 +1,3700 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "# Основы NumPy: массивы и векторные вычисления\n", + "\n", + " \n", + "**С.В. Лемешевский** (email: `sergey.lemeshevsky@gmail.com`), Институт математики НАН Беларуси\n", + "\n", + "Date: **Mar 18, 2020**\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Рассматривается библиотека NumPy. NumPy (сокращение от *Numerical\n", + "Python*) предоставляет эффективный интерфейс для хранения и работы с\n", + "данными. В какой-то степени массивы NumPy аналогичны спискам Python,\n", + "но массивы NumPy обеспечивают гораздо более эффективное хранение и\n", + "операции с данными при увеличении массивов в размере. Если NumPy\n", + "установлен его можно импортировать следующей командой:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Большинство людей в мире научного Python импортируют NumPy, используя\n", + "`np` в качестве псевдонима:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> **О встроенной документации.**\n", + ">\n", + "> Как было рассказано выше IPython дает возможность быстро просмотреть\n", + "> содержание пакета, а также документацию по функциям.\n", + "> \n", + "> Например, для того чтобы отобразить содержание пространства имен\n", + "> `numpy`, можно выполнить следующее:\n", + ">" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> \n", + "> Для отображения встроенной документации NumPy можно набрать\n", + "> следующее:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> Более детальную документацию вместе с учебниками и другими ресурсами\n", + "> можно найти по адресу: \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Одна из причин того, почему NumPy настолько важен для численных\n", + "расчетов в Python, заключается в том, что он разработан, как уже\n", + "упоминалось выше, для более эффективной работы с большими массивами\n", + "данных, а именно:\n", + "\n", + "* NumPy хранит данные в непрерывных блоках памяти, независимо от других встроенных объектов Python. Библиотека алгоритмов NumPy, написанная на языке C, может работать на этой памяти без проверки типов или других накладных расходов. Массивы NumPy также используют намного меньше памяти, чем встроенные объекты Python.\n", + "\n", + "* Операции NumPy выполняют сложные вычисления над всем массивом без использования цикла `for`.\n", + "\n", + "Для того чтобы показать разницу в производительности, рассмотрим\n", + "массив NumPy из одного миллиона целых чисел и эквивалентный список:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "my_arr = np.arange(1000000)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "my_list = list(range(1000000))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%time for _ in range(10): my_arr2 = my_arr*2" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%time for _ in range(10): my_list2 = [x * 2 for x in my_list]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Объект многомерных массивов `ndarray`\n", + "
\n", + "\n", + "Одной из ключевых особенностей NumPy является объект N-мерных\n", + "массивов, или `ndarray`, который является быстрым, гибким контейнером \n", + "для больших наборов данных в Python. Массивы позволяют выполнять\n", + "математические операции над целыми блоками данных, используя схожий\n", + "синтаксис для эквивалентных операций со скалярными элементами.\n", + "\n", + "Рассмотрим пример: создадим небольшой массив случайных данных:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data = np.random.randn(2, 3)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data * 10" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data + data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`ndarray` является общим контейнером для однородных многомерных\n", + "данных, то есть все элементы должны быть одного типа. Каждый массив имеет\n", + "атрибут `shape` — кортеж, указывающий размер каждого измерения, и\n", + "атрибут `dtype`, объект, описывающий тип данных массива:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data.dtype" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Создание массива\n", + "
\n", + "\n", + "Простейший способ создания массива — использование функции\n", + "`array`. Она принимает некоторый объект типа последовательностей\n", + "(включая другие массивы) и создает новый массив NumPy, содержащий\n", + "переданные данные. Например:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data1 = [6, 7.5, 8, 0, 1]" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr1 = np.array(data1)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "In [15]: arr1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Вложенные последовательности, как список списков одинаковой длины,\n", + "будут преобразованы в многомерный массив:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data2 = [[1, 2, 3, 4], [5, 6, 7, 8]]" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr2 = np.array(data2)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Если явно не указано, `np.array` пытается вывести подходящий тип\n", + "данных для массива, который он создает. Тип данных хранится в\n", + "специальном объекте `dtype` метаданных; например, в двух предыдущих\n", + "примерах мы имеем:" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "In [19]: arr1.dtype\n", + "In [20]: arr2.dtype" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Кроме `np.array` есть несколько других функций для создания новых\n", + "массивов:" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.zeros(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.zeros((3, 6))" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.empty((2, 3, 2))" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.arange(15)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Таблица 1 : Функции создания массивов\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
Функция Описание
array Преобразует входные данные (список, кортеж, массив или другая последовательность) в ndarray, либо прогнозируя dtype, либо используя заданный dtype; копирует данные по-умолчанию
asarray Преобразует входные данные в ndarray, но не копирует их, если аргумент уже типа ndarray
arange Подобна встроенной функции range, но возвращает ndarray вместо списка
ones Создает массив из единиц заданной формы и dtype
ones_like Получает на вход массив и создает массив из единиц с такими же формой и dtype
zeros и zeros_like Подобны ones и ones_like, но создают массивы из нулей
empty и empty_like Создают новые массивы, выделяя новую память, но не инициализируют их какими-либо значениями, как ones и zeros
full Создает массив заданных формы и dtype, при этом все элементы инициализируются заданным значением fill_value
full_like Получает на вход массив и создает массив с такими же формой и dtype и значениями fill_value
eye и identity Создает квадратную единичную матрицу (с единицами на диагонали и нулями вне нее) размера $N\\times N$
\n", + "\n", + "\n", + "## Арифметические операции с массивами NumPy\n", + "
\n", + "\n", + "Массивы NumPy, как упоминалось выше, позволяют выполнять операции без\n", + "использования циклов. Любые арифметические операции между массивами\n", + "одинакового размера выполняются поэлементно:" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.array([[1., 2., 3.], [4., 5., 6.]])" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "In [3]: arr" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr * arr" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr - arr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Арифметические операции со скалярами распространяют скалярный аргумент\n", + "к каждому элементу массива:" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "1 / arr" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr ** 0.5" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr2 = np.array([[0., 4., 1.], [7., 2., 12.]])" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr2" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr2 > arrщ" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Основы индексирования и срезы\n", + "
\n", + "\n", + "Существует много способов выбора подмножества данных или элементов\n", + "массива. Одномерные массивы — это просто, на первый взгляд они\n", + "аналогичны спискам Python:" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.arange(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr[5]" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr[5:8]" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr[5:8] = 12" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Как видно, если присвоить скалярное значение срезу, как например,\n", + "`arr[5:8] = 12`, значение присваивается всем элементам среза. Первым\n", + "важным отличием от списков Python заключается в том, что срезы массива\n", + "являются *представлениями* исходного массива. Это означает, что данные\n", + "не копируются и любые изменения в представлении будут отражены в\n", + "исходном массиве.\n", + "\n", + "Рассмотрим пример. Сначала создадим срез массива `arr`:" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr_slice = arr[5:8]" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr_slice" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Теперь, если мы изменим значения в массиве `arr_slice`, то они\n", + "отразятся в исходном массиве `arr`:" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr_slice[1] = 12345" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "«Голый» срез `[:]` присвоит все значения в массиве:" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr_slice[:] = 64" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Поскольку NumPy был разработан для работы с очень большими массивами,\n", + "вы можете представить себе проблемы с производительностью и памятью,\n", + "если NumPy будет настаивать на постоянном копировании данных. \n", + "\n", + "> **Замечание.**\n", + ">\n", + "> Если вы захотите скопировать срез в массив вместо отображения, нужно\n", + "> явно скопировать массив, например, `arr[5:8].copy()`.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "С массивами более высокой размерности существует больше вариантов. В\n", + "двумерных массивах каждый элемент это уже не скаляр, а одномерный\n", + "массив." + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr2d[2]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Таким образом, к отдельному элементу можно получить доступ\n", + "рекурсивно, либо передать разделенный запятыми список\n", + "индексов. Например, следующие два примера эквивалентны:" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr2d[2]" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr2d[0][2]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Если в многомерном массиве опустить последние индексы, то возвращаемый\n", + "объект будет массивом меньшей размерности. Например, создадим массив\n", + "размерности $2 \\times 2 \\times 3$:" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr3d = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr3d" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "При этом `arr3d[0]` — массив размерности $2 \\times 3$:" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr3d[0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Можно присваивать `arr3d[0]` как скаляр, так и массивы:" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "old_values = arr3d[0].copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr3d[0] = 42" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr3d" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr3d[0] = old_values" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr3d" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Аналогично, `arr3d[1, 0]` возвращает все значения, чьи индексы\n", + "начинаются с `(1, 0)`, формируя одномерный массив:" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr3d[1, 0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Это выражение такое же, как если бы мы проиндексировали в два этапа:" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "x = arr3d[1]" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "x" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "x[0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Индексирование с помощью срезов\n", + "\n", + "
\n", + "\n", + "Как одномерные объекты, такие как списки, можно получать срезы\n", + "массивов посредством знакомого синтаксиса:" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr[1:6]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Рассмотрим введенный выше двумерный массив `arr2d`. Получение срезов\n", + "этого массива немного отличается от одномерного:" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr2d" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr[:2]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Как видно, мы получили срез вдоль оси 0, первой оси. Срез, таким\n", + "образом, выбирает диапазон элементов вдоль оси. Выражение `arr2d[:2]`\n", + "можно прочитать как «выбираем первые две строки массива `arr2d`».\n", + "\n", + "Можно передавать несколько срезов:" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr2d[:2, 1:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "При получении срезов мы получаем только отображения массивов того же\n", + "числа размерностей. Используя целые индексы и срезы, можно получить\n", + "срезы меньшей размерности:" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr2d[1, :2]" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr2d[:2, 2]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Смотрите рис. [numpy:ndarray:fig:1](#numpy:ndarray:fig:1).\n", + "\n", + "\n", + "\n", + "
\n", + "![Срезы двумерного массива](fig-numpy/numpy-1.png)\n", + "\n", + "\n", + "\n", + "## Логическое (Boolean) индексирование\n", + "
\n", + "\n", + "Рассмотрим следующий пример: пусть есть массив с данными (случайными)\n", + "и массив, содержащий имена с повторениями:" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data = np.random.randn(7, 4)" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "names" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Предположим, что каждое имя соответствует строке в массиве `data`, и\n", + "мы хотим выбрать все строки с соответствующим именем `'Bob'`. Как и\n", + "арифметические операции, операции сравнения (такие как `==`) с\n", + "массивами также векторизованы. Таким образом, сравнение массива\n", + "`names` со строкой `'Bob'` возвращает булев массив:" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "names == 'Bob'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Этот булев массив может использоваться при индексировании массива:" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data[names == 'Bob']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Булев массив должен быть той же длины, что и ось массива, по которой\n", + "осуществляется индексация. Вы даже можете смешивать и сопоставлять\n", + "логические массивы со срезами или целыми числами (или\n", + "последовательностями целых чисел)." + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data[names == 'Bob', 2:]" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data[names == 'Bob', 3]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Чтобы выбрать все, кроме `'Bob'`, можно использовать `!=` или\n", + "обращение условия ` `:" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "names != 'Bob'" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data[~(names == 'Bob')]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Оператор ` ` может быть полезен при инвертировании общего условия:" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "cond = names == 'Bob'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Выбрав два из трех имен для объединения нескольких логических условий,\n", + "можно использовать логические арифметические операторы, такие как `&` (и) и `|`\n", + "(или):" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mask = (names == 'Bob') | (names == 'Will')" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mask" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data[mask]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Выбор данных из массива с помощью логического индексирования *всегда*\n", + "создает копию данных, даже если возвращаемый массив не изменяется. \n", + "\n", + "> **Предупреждение.**\n", + ">\n", + "> Ключевые слова Python `and` и `or` не работают с булевыми массивами.\n", + "> Используйте `&` (и) и `|` (или).\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Присвоение значений массивам работает обычным образом. Замену\n", + "всех отрицательных значений на `0` можно сделать следующим образом:" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data[data < 0] = 0" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Можно также легко присваивать значения целым строкам или столбцам:" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data[names != 'Joe'] = 7" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Необычное индексирование\n", + "
\n", + "\n", + "*Необычное индексирование* (*fancy indexing*) — это термин, принятый в\n", + "NumPy для описания индексации с использованием целочисленных\n", + "массивов.\n", + "\n", + "Предположим, у нас есть массив размера $8 \\times 4$" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.empty((8, 4))" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "for i in range(8):\n", + " arr[i] = i" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Чтобы выбрать подмножество строк в определенном порядке, можно\n", + "просто передать список или массив целых чисел, указывающих желаемый\n", + "порядок:" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr[[4, 3, 0, 6]]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Использование отрицательных индексов выделяет строки с конца:" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr[[-3, -5, -7]]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Передача нескольких индексных массивов делает кое-что другое:\n", + "выбирается одномерный массив элементов, соответствующий каждому\n", + "кортежу индексов:" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.arange(32).reshape((8, 4))" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr[[1, 5, 7, 2], [0, 3, 1, 2]]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Здесь выбраны элементы с индексами `(1, 0)`, `(5, 3)`, `(7, 1)` и\n", + "`(2, 2)`. Независимо от того какая размерность у массива (в нашем\n", + "случае двумерный массив), результат такого индексирования — всегда\n", + "одномерный массив.\n", + "\n", + "Поведение индексирования в этом случае немного отличается\n", + "от того, что могли ожидать некоторые пользователи, а именно:\n", + "пользователь мог ожидать прямоугольную область, сформированную путем\n", + "выбора поднабора строк и столбцов матрицы. Ниже представлен один из\n", + "способов получения таких массивов с помощью необычного индексирования:" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr[[1, 5, 7, 2]][:, [0, 3, 1, 2]]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Имейте в виду, что необычное индексирование, в отличие от среза,\n", + "всегда копирует данные в новый массив. \n", + "\n", + "## Транспонирование массивов и замена осей\n", + "
\n", + "\n", + "*Транспонирование* — это особый способ изменения формы массива, который\n", + "возвращает представление исходных данных без их копирования. Массивы\n", + "имеют метод `transpose`, а также специальный атрибут `T`:" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.arange(15).reshape((3, 5))" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr.T" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "При выполнении матричных вычислений эта процедура может выполняться\n", + "очень часто, например, при вычислении произведения матриц с помощью\n", + "функции `np.dot`:" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.random.randn(6, 3)" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Для массивов большей размерности метод `transpose` принимает кортеж с\n", + "номерами осей, задающий перестановку осей:" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.arange(16).reshape((2, 2, 4))" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr.transpose((1, 0, 2))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Здесь оси были переупорядочены следующим образом: вторая ось стала\n", + "первой, первая ось — второй, а последняя осталась без изменений.\n", + "\n", + "Простое транспонирование с помощью `.T` является частным случаем\n", + "замены осей. Массивы имеют метод `swapaxes`, который получает пару\n", + "номеров осей и переставляет указанные оси." + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr.swapaxes(1, 2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Метод `swapaxes` возвращает представление данных без копирования.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "# Универсальные функции: быстрые поэлементные функции от массивов\n", + "
\n", + "\n", + "\n", + "*Универсальные функции* (или *ufunc*) — это функции, которые выполняют\n", + "поэлементные операции над данными массива. Можно рассматривать их как\n", + "быстрые векторизованные обертки для простых функций, которые\n", + "принимают одно или несколько скалярных значений и дают один или\n", + "несколько скалярных результатов.\n", + "\n", + "Многие универсальные функции — это простые поэлементные\n", + "преобразования, такие как `sqrt` и `exp`:" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.arange(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.sqrt(arr)" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.exp(arr)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Они являются *унарными* универсальными функциями. Такие функции как\n", + "`add` или `maximum` принимают два массива (таким образом,\n", + "они *бинарные*) и возвращают один массив:" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "x = np.random.randn(8)" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "y = np.random.randn(8)" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "x" + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "y" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.maximum(x, y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Функция `np.maximum` вычисляет максимумы элементов массивов `x` и `y`.\n", + "\n", + "Универсальная функция может возвращать несколько массивов (хотя и не\n", + "часто). Например, функция `np.modf` (векторизованная версия встроенной\n", + "функции `divmod`) возвращает целую и дробную части массива чисел с\n", + "плавающей запятой:" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.random.randn(7) * 5" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "frac_part, int_part = np.modf(arr)" + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "frac_part" + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "int_part" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Универсальные функции принимают опциональный аргумент `out`, который\n", + "позволяет выполнять операции прямо в заданном массиве." + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.sqrt(arr)" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.sqrt(arr, arr)" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "В таблицах [numpy:ufuncs:tbl:1](#numpy:ufuncs:tbl:1) и [numpy:ufuncs:tbl:2](#numpy:ufuncs:tbl:2)\n", + "представлены доступные универсальные функции.\n", + "\n", + "\n", + "## Таблица 2 : Унарные универсальные функции
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
Функция Описание
abs, fabs Вычисляет абсолютные значения каждого элементов массива
sqrt Вычисляет квадратный корень из каждого элемента массива (эквивалентно arr ** 0.5)
square Вычисляет квадрат каждого элемента массива (эквивалентно arr ** 2)
exp Вычисляет экспоненту ($e^x$) от каждого элемента массива
log, log10, log2, log1p Вычисляет натуральный, десятичный логарифмы, логарифм по основанию $2$ и $\\log(1 + x)$, соответственно
sign Вычисляет знак каждого элемента: $1$ (положительный элемент), $0$ (ноль), $-1$ (отрицательный элемент)
ceil Вычисляет наименьшее целое число большее либо равное каждого элемента массива
floor Вычисляет наибольшее целое число меньшее либо равное каждого элемента массива
rint Округляет элементы к ближайшим целым сохраняя dtype
modf Возвращает дробные и целые части каждого элемента массива
isnan Возвращает булев массив, указывающий является каждый элемент входного массива NaN (Not A Number)
isfinite, isinf Возвращает булев массив, указывающий является каждый элемент конечным (не inf и не NaN) или бесконечным, соотвественно
cos, cosh, sin, sinh, tan, tanh Обычные и тригонометрические функции
arccos, arccosh, arcsin, arcsinh, arctan, arctanh Обратные тригонометрические функции
logical_not Вычисляет истиное значение not x для каждого элемента (эквивалентно arr)
\n", + "\n", + "\n", + "\n", + "\n", + "## Таблица 3 : Бинарные универсальные функции
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
Функция Описание
add Складывает соответствующие элементы массивов
subtract Вычитает соответствующие элементы второго массива из элементов первого
multiply Перемножает элементы массивов
divide, floor_devide Деление или деление с отбрасыванием остатка
power Возведение элементов первого массива в степени указанные во втором массиве
maximum, fmax Поэлементный максимум, fmax игнорирует NaN
minimum, fmin Поэлементный минимум, fmin игнорирует NaN
mod Поэлементный модуль (остаток от деления)
copysign Копирует знаки элементов второго массива в элементы первого массива
greater, greater_equal, less, less_equal, equal, not_equal Поэлементное сравнение (эквивалентны операторам >, >=, <, <= ==, !=)
logical_and, logical_or, logical_xor Вычисляет поэлементное значение истинности логической операций (эквивалентны операторам &, | , ^)
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "# Программирование с использованием массивов\n", + "
\n", + "\n", + "Использование массивов NumPy позволяет выражать многие виды задач\n", + "обработки данных в виде кратких выражений с массивами, которые в\n", + "противном случае потребовали использования циклов. Такая практика\n", + "замены явных циклов на выражения с массивами обычно\n", + "называется *векторизацией*. Вообще говоря, векторизованные операции \n", + "с массивами часто на один-два (или более) порядка быстрее, чем их\n", + "эквиваленты Python, что оказывает большое влияние на любые виды\n", + "вычислений.\n", + "\n", + "В качестве простого примера, предположим, что мы хотим вычислить\n", + "функцию `sqrt(x^2 + y^2)` по всей регулярной сетке значений. Функция\n", + "`np.meshgrid` получает два одномерных массива и возвращает две\n", + "двумерные матрицы соответствующие всем парам `(x, y)` в двух массивах:" + ] + }, + { + "cell_type": "code", + "execution_count": 126, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "points = np.arange(-5, 5, 0.01)" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "xs, ys = np.meshgrid(points, points)" + ] + }, + { + "cell_type": "code", + "execution_count": 128, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "xs" + ] + }, + { + "cell_type": "code", + "execution_count": 129, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "ys" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Теперь для вычисления значений на всей сетке нужно написать то же\n", + "выражение, которое было бы написано для двух координат:" + ] + }, + { + "cell_type": "code", + "execution_count": 130, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "z = np.sqrt(xs ** 2 + ys ** 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 131, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "z" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Теперь воспользуемся библиотекой `matplotlib` (ее мы рассмотрим позже)\n", + "для визуализации двумерного массива:" + ] + }, + { + "cell_type": "code", + "execution_count": 132, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 133, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "plt.imshow(z, cmap=plt.cm.gray); plt.colorbar()" + ] + }, + { + "cell_type": "code", + "execution_count": 134, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "plt.title('Визуализация функции $\\sqrt{x^2 + y^2}$ на сетке')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Результат представлен на рисунке\n", + "[numpy:prog-with-array:fig:2](#numpy:prog-with-array:fig:2). Здесь использовалась функция\n", + "`imshow` библиотеки `matplotlib` для создания изображения по\n", + "двумерному массиву значений сеточной функции.\n", + "\n", + "\n", + "\n", + "
\n", + "![Визуализация функции, вычисленной на сетке](fig-numpy/numpy-2.png)\n", + "\n", + "\n", + "## Выражение условной логики в операциях с массивами\n", + "
\n", + "\n", + "Функция `np.where` — векторизованная версия тернарного выражения\n", + "`x if condition else y`. Предположим, у нас есть булев массив и два\n", + "массива значений:" + ] + }, + { + "cell_type": "code", + "execution_count": 135, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "xarr = np.array([1.1, 1.2, 1.3, 1.4, 1.5])" + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "yarr = np.array([2.1, 2.2, 2.3, 2.4, 2.5])" + ] + }, + { + "cell_type": "code", + "execution_count": 137, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "cond = np.array([True, False, True, True, False])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Предположим, мы хотим выбрать из массива `xarr` значения в том случае,\n", + "когда значение элемента массива `cond` равно `True`, иначе выбираем\n", + "значение из массива `yarr`. С использованием списка это может выглядеть\n", + "следующим образом:" + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "result = [(x if c else y) for x, y, c in zip(xarr, yarr, cond)]" + ] + }, + { + "cell_type": "code", + "execution_count": 139, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "result" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Такой подход имеет несколько проблем. Во-первых, это не будет быстро\n", + "работать для очень больших массивов (потому что вся работа будет\n", + "выполняться интерпретируемым Python-кодом). Во-вторых, это не будет\n", + "работать с многомерными массивами. С помощью `np.where` все это можно\n", + "записать коротко:" + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "result = np.where(cond, xarr, yarr)" + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "result = np.where(cond, xarr, yarr)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Второй и третий аргументы функции `np.where` не обязательно должны\n", + "быть массивами, они могут быть скалярами. Типичное использование\n", + "функции `np.where` в анализе данных — это создание нового массива\n", + "значений на основе другого массива. Предположим есть матрица случайно\n", + "сгенерированных значений и нужно заменить все положительные значения\n", + "на число $2$, а отрицательные значения — на $-2$. Это легко сделать с\n", + "помощью функции `np.where`:" + ] + }, + { + "cell_type": "code", + "execution_count": 142, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.random.randn(4, 4)" + ] + }, + { + "cell_type": "code", + "execution_count": 143, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "code", + "execution_count": 144, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr > 0" + ] + }, + { + "cell_type": "code", + "execution_count": 145, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.where(arr > 0, 2, -2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Можно объединять скаляры и массивы при использовании\n", + "`np.where`. Например, заменим все положительные элементы массива на\n", + "$2$:" + ] + }, + { + "cell_type": "code", + "execution_count": 146, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.where(arr > 0, 2, arr)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Математические и статистические методы\n", + "
\n", + "\n", + "Некоторые математические функции, которые вычисляют статистику по\n", + "данным всего массива или по данным по какой-либо оси, доступны как\n", + "методы класса. Вы можете использовать *агрегаты* (часто называемые\n", + "*редукциями*), такие как `sum`, `mean` и `std` (стандартное отклонение),\n", + "либо вызывая метод экземпляра массива, либо используя функцию NumPy\n", + "верхнего уровня.\n", + "\n", + "Ниже сгененированы случайные нормально распределенные данные и\n", + "вычислены некоторые статистические свойства:" + ] + }, + { + "cell_type": "code", + "execution_count": 147, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.random.randn(5, 4)" + ] + }, + { + "cell_type": "code", + "execution_count": 148, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "code", + "execution_count": 149, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 150, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.mean(arr)" + ] + }, + { + "cell_type": "code", + "execution_count": 151, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr.sum()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Функции типа `mean` и `sum` принимают опциональный аргумент `axis`,\n", + "указывающий по какой оси вычислять статистику. В результате получается\n", + "массив на одну размерность меньше." + ] + }, + { + "cell_type": "code", + "execution_count": 152, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr.mean(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 153, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr.sum(axis=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Здесь `arr.mean(axis=1)` означает «вычислить средние значения по\n", + "столбцам», а `arr.sum(axis=0)` означает «вычислить сумму по строкам».\n", + "\n", + "Другие методы, такие как `cumsum` и `cumprod`, не агрегируют, а\n", + "создают массив промежуточных результатов:" + ] + }, + { + "cell_type": "code", + "execution_count": 154, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.array([0, 1, 2, 3, 4, 5, 6, 7])" + ] + }, + { + "cell_type": "code", + "execution_count": 155, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr.cumsum()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "В многомерных массивах В многомерных массивах функции накопления,\n", + "такие как cumsum, возвращают массив того же размера, но с частичными\n", + "агрегатами, вычисленными вдоль указанной оси в соответствии с каждым\n", + "срезом меньшего размера:" + ] + }, + { + "cell_type": "code", + "execution_count": 156, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])" + ] + }, + { + "cell_type": "code", + "execution_count": 157, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "code", + "execution_count": 158, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr.cumsum(axis=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 159, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr.cumprod(axis=1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "В таблице [numpy:prog-with-array:tbl:1](#numpy:prog-with-array:tbl:1) представлен полный список таких функций.\n", + "\n", + "\n", + "## Таблица 4 : Основные статистические методы для массивов
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
Функция Описание
sum Сумма всех элементов массива или вдоль оси. Массив нулевой длины имеет сумму, равную 0
mean Арифметическое среднее. Массив нулевой длины имеет среднее значение NaN
std, var Стандартное отклонение и дисперсия, соответственно, с возможностью задания степени свободы (по умолчанию знаменатель равен n)
min, max Минимум и максимум
argmin, argmax Индексы минимального и максимального элементов, соответственно
cumsum Накопленная сумма элементов, начиная с $0$
cumprod Накопленное произведение элементов, начиная с $1$
\n", + "\n", + "\n", + "## Методы для булевых массивов\n", + "
\n", + "\n", + "В рассмотренных выше методах булевы значения приводятся к $1$ (`True`)\n", + "и $0$ (`False`). Таким образом, `sum` часто используется как средство\n", + "подсчета значений `True` в логическом массиве:" + ] + }, + { + "cell_type": "code", + "execution_count": 160, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.random.randn(100)" + ] + }, + { + "cell_type": "code", + "execution_count": 161, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(arr > 0).sum()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Есть два дополнительных метода: `any` и `all`, которые очень полезны\n", + "при работе с булевыми массивами. Метод `any` проверяет, есть ли хотя\n", + "бы одно значение в массиве равное `True`, a `all` проверяет, все ли\n", + "значения в массиве равны `True`:" + ] + }, + { + "cell_type": "code", + "execution_count": 162, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.array([False, False, True, False])" + ] + }, + { + "cell_type": "code", + "execution_count": 163, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr.any()" + ] + }, + { + "cell_type": "code", + "execution_count": 164, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr.all()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Эти методы также работают с небулевыми массивами. В этом случае\n", + "ненулевые элементы оцениваются как `True`. \n", + "\n", + "\n", + "## Сортировка\n", + "
\n", + "\n", + "Как и встроенный тип `list` массивы NumPy могут быть отсортированы с\n", + "помощью метода `sort`:" + ] + }, + { + "cell_type": "code", + "execution_count": 165, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.random.randn(6)" + ] + }, + { + "cell_type": "code", + "execution_count": 166, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "code", + "execution_count": 167, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr.sort()" + ] + }, + { + "cell_type": "code", + "execution_count": 168, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Можно отсортировать каждый одномерный массив многомерного вдоль оси,\n", + "которая задается как аргумент метода `sort`:" + ] + }, + { + "cell_type": "code", + "execution_count": 169, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.random.randn(5, 3)" + ] + }, + { + "cell_type": "code", + "execution_count": 170, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "code", + "execution_count": 171, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr.sort(1)" + ] + }, + { + "cell_type": "code", + "execution_count": 172, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Метод верхнего уровня `np.sort` возвращает отсортированный массив\n", + "вместо изменения исходного массива. Быстрый и простой способ вычислить\n", + "квантили массива — это отсортировать его и выбрать значение в\n", + "определенном ранге:" + ] + }, + { + "cell_type": "code", + "execution_count": 173, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "large_arr = np.random.randn(1000)" + ] + }, + { + "cell_type": "code", + "execution_count": 174, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "large_arr.sort()" + ] + }, + { + "cell_type": "code", + "execution_count": 175, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "large_arr[int(0.05 * len(large_arr))] # 5% квантиль" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Основные операции над множествами для массивов\n", + "
\n", + "\n", + "В NumPy имеются некоторые основные операции над множествами для\n", + "одномерных массивов. Обычно используется функция `np.unique`, которая\n", + "возвращает отсортированные уникальные значения в массиве:" + ] + }, + { + "cell_type": "code", + "execution_count": 176, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])" + ] + }, + { + "cell_type": "code", + "execution_count": 177, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.unique(names)" + ] + }, + { + "cell_type": "code", + "execution_count": 178, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "ints = np.array([3, 3, 3, 2, 2, 1, 1, 4, 4])" + ] + }, + { + "cell_type": "code", + "execution_count": 179, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.unique(ints)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Сравните `np.unique` с альтернативой на чистом Python:" + ] + }, + { + "cell_type": "code", + "execution_count": 180, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sorted(set(names))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Другая функция, `np.in1d`, проверяет нахождение значений из одного массива в\n", + "другом, возвращая логический массив:" + ] + }, + { + "cell_type": "code", + "execution_count": 181, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "values = np.array([6, 0, 0, 3, 2, 5, 6])" + ] + }, + { + "cell_type": "code", + "execution_count": 182, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.in1d(values, [2, 3, 6])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Таблица 5 : Операции над множествами из массивов
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
Метод Описание
unique(x) Возвращает отсортированные единственные элементы из x
intersect1d(x, y) Возвращает отсортированные общие элементы массивов x и y
union1d(x, y) Возвращает отсортированное объединение элементов массивов x и y
in1d(x, y) Возвращает булев массив, указывающий содержится ли каждый элемент массива x в y
setdiff1d(x, y) Разность множеств: элементы массива x, которых нет в y
setxor1d(x, y) Симметричная разность: элементы, которые есть либо в x, либо в y, но не в обоих массивах
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "# Чтение и запись в/из файлы массивов\n", + "
\n", + "\n", + "NumPy позволяет сохранять на диск и загружать с диска в текстовые или\n", + "двоичные файлы. Здесь рассмотрим только встроенные двоичные файлы\n", + "NumPy, так как большинство предпочтут использовать `pandas` или другие\n", + "инструменты для загрузки текста или таблиц.\n", + "\n", + "Функции `np.save` и `np.load` — это две рабочие лошадки для\n", + "эффективного сохранения и загрузки данных массива на диск. Массивы\n", + "сохраняются по умолчанию в несжатый двоичный формате с расширением\n", + "файла `.npy`:" + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arr = np.arange(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 184, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.save('some_array', arr)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "В пути к файлу не указывается разширение, оно добавляется по\n", + "умолчанию. Массив с диска потом можно загрузить с помощью функции\n", + "`np.load`:" + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.load('some_array.npy')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Можно сохранить несколько массивов в один несжатый файл, используя\n", + "функцию `np.savez` и передавая массивы в качестве аргументов:" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.savez('array_archive.npz', a=arr, b=arr)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "При загрузке файла `.npz` возвращается объект типа словаря, который\n", + "содержит отдельные массивы:" + ] + }, + { + "cell_type": "code", + "execution_count": 187, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arch = np.load('array_archive.npz')" + ] + }, + { + "cell_type": "code", + "execution_count": 188, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arch['b']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Если данные хорошо сжимаются, можно использовать функцию\n", + "`np.savez_compressed`:" + ] + }, + { + "cell_type": "code", + "execution_count": 189, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.savez_compressed('arrays_compressed.npz', a=arr, b=arr)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "# Линейная алгебра\n", + "
\n", + "\n", + "Матричные вычисления, такие как умножение матриц, построение\n", + "разложений матриц, вычисление определителя и др. являются важной\n", + "частью любой библиотеки программ для численных расчетов. В отличие от\n", + "некоторых языков программирования, таких как MATLAB, в NumPy операция\n", + "`*` — это поэлементное умножение матриц, а не стандартное умножение\n", + "матриц из линейной алгебры. В связи с этим в NumPy для умножения\n", + "матриц реализована функция `dot` как в виде метода объекта типа\n", + "`ndarray`, так и в виде функции из пространства имен `numpy`:" + ] + }, + { + "cell_type": "code", + "execution_count": 190, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.array([[1., 2., 3.], [4., 5., 6.]])" + ] + }, + { + "cell_type": "code", + "execution_count": 191, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "y = np.array([[6., 23.], [-1, 7], [8, 9]])" + ] + }, + { + "cell_type": "code", + "execution_count": 192, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "x" + ] + }, + { + "cell_type": "code", + "execution_count": 193, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "y" + ] + }, + { + "cell_type": "code", + "execution_count": 194, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "x.dot(y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Выражение `x.dot(y)` эквивалентно `np.dot(x, y)`:" + ] + }, + { + "cell_type": "code", + "execution_count": 195, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.dot(x, y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Произведение матрицы на согласованный одномерный массив дает\n", + "одномерный массив:" + ] + }, + { + "cell_type": "code", + "execution_count": 196, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.dot(x, np.ones(3))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Операция `@` также выполняет умножение матриц:" + ] + }, + { + "cell_type": "code", + "execution_count": 197, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "x @ np.ones(3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Модуль `numpy.linalg` стандартный набор функций для разложения матриц, а\n", + "также вычисления определителя и обратной матрицы. Они реализуются с\n", + "помощью тех же стандартных библиотек линейной алгебры, которые\n", + "используются в других языках (например, MATLAB и R), таких как BLAS,\n", + "LAPACK, или, возможно (в зависимости от вашей сборки NumPy),\n", + "проприетарной Intel MKL (Math Kernel Library):" + ] + }, + { + "cell_type": "code", + "execution_count": 198, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from numpy.linalg import inv, qr" + ] + }, + { + "cell_type": "code", + "execution_count": 199, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "X = np.random.randn(5, 5)" + ] + }, + { + "cell_type": "code", + "execution_count": 200, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mat = X.T.dot(X)" + ] + }, + { + "cell_type": "code", + "execution_count": 201, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "inv(mat)" + ] + }, + { + "cell_type": "code", + "execution_count": 202, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mat.dot(inv(mat))" + ] + }, + { + "cell_type": "code", + "execution_count": 203, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "q, r = qr(mat)" + ] + }, + { + "cell_type": "code", + "execution_count": 204, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "r" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "В таблице представлены наиболее часто используемые функции линейной\n", + "алгебры.\n", + "\n", + "\n", + "## Таблица 6 : Часто используемые функции модуля `numpy.linalg`
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
Функция Описание
diag Возвращает диагональные элементы квадратной матрицы в виде одномерного массива или преобразует одномерный массив в квадратную матрицу с нулями вне диагонали
dot Умножение матриц
trace След матрицы — сумма диагональных элементов
det Определитель матрицы
eig Вычисляет собственные значения и собственные векторы квадратной матрицы
inv Вычисляет обратную матрицу
pinv Вычисляет псевдообратную матрицу Мура—Пенроуза
qr Вычисляет $QR$ разложение матрицы
svd Вычисляет сингулярное разложение матрицы (SVD)
solve Решает линейную систему $A x = b$, где $A$ — квадратная матрица
lstsq Находит решение линейной системы $Ax = b$ методом наименьших квадратов
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "# Генерация псевдослучайных числел\n", + "
\n", + "\n", + "Модуль `numpy.random` дополняет встроенный в Python модуль `random`\n", + "функциями для эффективной для эффективной генерации целых массивов\n", + "выборок, подчиненых многим видам вероятностных\n", + "распределений. Например, можно получить массив размера $4\\times 4$\n", + "выборок из нормального распределения, используя функцию `normal`:" + ] + }, + { + "cell_type": "code", + "execution_count": 205, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "samples = np.random.normal(size=(4, 4))" + ] + }, + { + "cell_type": "code", + "execution_count": 206, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "samples" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Встроенный модуль `random` генерирует только одно число за раз. Как\n", + "видно из приведенного ниже теста, `numpy.random` на порядок быстрее\n", + "генерирует очень большие выборки:" + ] + }, + { + "cell_type": "code", + "execution_count": 207, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from random import normalvariate" + ] + }, + { + "cell_type": "code", + "execution_count": 208, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "N = 1000000" + ] + }, + { + "cell_type": "code", + "execution_count": 209, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%timeit samples = [normalvariate(0, 1) for _ in range(N)]" + ] + }, + { + "cell_type": "code", + "execution_count": 210, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%timeit np.random.normal(size=N)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "163/5000\n", + "Мы говорим, что это *псевдослучайные* числа, потому что они генерируются\n", + "алгоритмом с детерминированным поведением на основе *начального*\n", + "(seed) числа генератора случайных чисел. Можно изменить начальное\n", + "число генератора случайных чисел, используя функцию `np.random.seed`:" + ] + }, + { + "cell_type": "code", + "execution_count": 211, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.random.seed(1234)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Функция, генерирующие данные, из `numpy.random` используют глобальное\n", + "начальное число. Чтобы избежать глобального состояния, вы можете\n", + "использовать `np.random.RandomState` для создания генератора\n", + "случайных чисел, изолированного от других:" + ] + }, + { + "cell_type": "code", + "execution_count": 212, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "rng = np.random.RandomState(1234)" + ] + }, + { + "cell_type": "code", + "execution_count": 213, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "rng.randn(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "В таблице [numpy:pseudornd:tbl:1](#numpy:pseudornd:tbl:1) представлены некоторые функции\n", + "модуля `numpy.random`.\n", + "\n", + "\n", + "## Таблица 7 : Некоторые функции модуля `numpy.random`
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
Функция Описание
seed Начальная точка генератора случайных чисел
permutation Возвращает случайную перестановку последовательности или возвращает переставленный диапазон
shuffle Произвольно переставляет последовательность
rand Генерирует выборку из равномерного распределения
randint Генерирует случайные целые числа из заданного интервала
randn Генерирует выборку из нормального распределения со средним значением $0$ и стандартным отклонением $1$
binomial Генерирует выборку из биномиального распределения
normal Генерирует выборку из нормального (гауссового) распределения
beta Генерирует выборку из $\\beta$-распределения
chisquare Генерирует выборку из $\\chi^2$-распределения
gamma Генерирует выборку из $\\Gamma$-распределения
uniform Генерирует выборку из равномерного распределения на $[0, 1)$
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "# Пример: Случайное блуждание\n", + "
\n", + "\n", + "Моделирование [случайного блуждания](https://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D0%BE%D0%B5_%D0%B1%D0%BB%D1%83%D0%B6%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5) \n", + "предоставляет иллюстрацию применения операций с массивами. Вначале\n", + "рассмотрим случайное блуждание, начинающееся с $0$ с шагами $1$ и\n", + "$-1$, происходящие с равной вероятностью.\n", + "\n", + "Ниже представлен код сценария на чистом Python, который реализует\n", + "простое случайное блуждание в 1000 шагов и использует модуль `random`:" + ] + }, + { + "cell_type": "code", + "execution_count": 214, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import random\n", + "\n", + "position = 0\n", + "walk = [position]\n", + "steps = 1000\n", + "for i in range(100):\n", + " step = 1 if random.randint(0, 1) else -1\n", + " position += step\n", + " walk.append(position)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "На рис. [numpy:example:fig:1](#numpy:example:fig:1) графически представлены 100 первых значений одного случайного\n", + "блуждания.\n", + "\n", + "\n", + "\n", + "
\n", + "![Простое случайное блуждание](fig-numpy/numpy-3.png)\n", + "\n", + "\n", + "Заметим, что `walk` — это просто накопленная сумма случайных шагов, а\n", + "она может быть вычислена с помощью метода массива. Таким образом,\n", + "можно воспользоваться модулем `np.random` для генерации 1000 бросаний\n", + "монеты за раз, установить соответствующие значения в $1$ и $-1$ и\n", + "вычислить накопленную сумму:" + ] + }, + { + "cell_type": "code", + "execution_count": 215, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "\n", + "nsteps = 1000\n", + "draws = np.random.randint(0, 2, size=nsteps)\n", + "steps = np.where(draws > 0, 1, -1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Отсюда можно получить статистические данные, такие, например, как\n", + "минимум и максимум:" + ] + }, + { + "cell_type": "code", + "execution_count": 216, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "walk.min()" + ] + }, + { + "cell_type": "code", + "execution_count": 217, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "walk.max()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Более сложная статистика — *время первого «перехода»*, т.е. шаг, на\n", + "котором пусть достигает некоторого значения. Например, можно узнать,\n", + "сколько времени понадобилось случайному блужданию, чтобы пройти как\n", + "минимум 10 шагов от начала в любом направлении. Выражение\n", + "`np.abs(walk) >= 10` даст булев массив, указывающий, где элемент\n", + "`walk` достиг или превысил значение $10$. Но нам нужен индекс первого\n", + "элемента, равного $10$ или $-10$. Мы можем получить это с помощью\n", + "функции `argmax`, которая вернет первый индекс максимального\n", + "значения в булевом массиве (`True` — максимальное значение):" + ] + }, + { + "cell_type": "code", + "execution_count": 218, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(np.abs(walk) >= 10).argmax()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Обратите внимание, что использование argmax здесь не всегда\n", + "эффективно, потому что оно всегда выполняет полное сканирование\n", + "массива. В этом особом случае, когда есть значение `True`, мы знаем,\n", + "что это максимальное значение.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "# Упражнения\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Матрица из нулей и единиц\n", + "
\n", + "\n", + "Напишите функцию `decorate_matrix`, которая получает на вход одно целое\n", + "число больше единицы. Функция должна возвращать матрицу $N\\times N$, у\n", + "которой на границах стоят единицы, а на всех остальных позициях(если\n", + "остались позиции не на границах) стоят нули.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Моделирование нескольких случайных блужданий за раз\n", + "
\n", + "\n", + "Написать сценарий, в котором выполняется моделирование многих\n", + "случайных блужданий (путей) (например, 5000 путей). Кроме того,\n", + "вычислить максимальное и минимальное значения, полученные по всем\n", + "путям. Вычислить минимальное время перехода через $30$ или $-30$.\n", + "Используйте разные генераторы случайных чисел.\n", + "Имя файла: `many_random_walk_ans.py`.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ] + } + ], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/src-collections/generate_usernames_ans.py b/src-collections/generate_usernames_ans.py new file mode 100755 index 0000000..dcf0a0b --- /dev/null +++ b/src-collections/generate_usernames_ans.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python3 +# Copyright (c) 2008-11 Qtrac Ltd. All rights reserved. +# This program or module is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. It is provided for educational +# purposes and is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +import collections +import sys + + +ID, FORENAME, MIDDLENAME, SURNAME, DEPARTMENT = range(5) + +User = collections.namedtuple("User", + "username forename middlename surname id") + + +def main(): + if len(sys.argv) == 1 or sys.argv[1] in {"-h", "--help"}: + print("usage: {0} file1 [file2 [... fileN]]".format( + sys.argv[0])) + sys.exit() + + usernames = set() + users = {} + for filename in sys.argv[1:]: + with open(filename, encoding="utf8") as file: + for line in file: + line = line.rstrip() + if line: + user = process_line(line, usernames) + users[(user.surname.lower(), user.forename.lower(), + user.id)] = user + print_users(users) + + +def process_line(line, usernames): + fields = line.split(":") + username = generate_username(fields, usernames) + user = User(username, fields[FORENAME], fields[MIDDLENAME], + fields[SURNAME], fields[ID]) + return user + + +def generate_username(fields, usernames): + username = ((fields[FORENAME][0] + fields[MIDDLENAME][:1] + + fields[SURNAME]).replace("-", "").replace("'", "")) + username = original_name = username[:8].lower() + count = 1 + while username in usernames: + username = "{0}{1}".format(original_name, count) + count += 1 + usernames.add(username) + return username + + +def by_surname_forename(user): + return user.surname.lower(), user.forename.lower(), user.id + + +def print_users(users): + namewidth = 17 + usernamewidth = 9 + columngap = " " * 2 + + headline1 = "{0:<{nw}} {1:^6} {2:{uw}}".format("Name", "ID", + "Username", nw=namewidth, uw=usernamewidth) + headline2 = "{0:-<{nw}} {0:-<6} {0:-<{uw}}".format("", + nw=namewidth, uw=usernamewidth) + header = (headline1 + columngap + headline1 + "\n" + + headline2 + columngap + headline2) + + lines = [] + for key in sorted(users): + user = users[key] + initial = "" + if user.middlename: + initial = " " + user.middlename[0] + name = "{0.surname}, {0.forename}{1}".format(user, initial) + lines.append("{0:.<{nw}.{nw}} ({1.id:4}) " + "{1.username:{uw}}".format(name, user, + nw=namewidth, uw=usernamewidth)) + + lines_per_page = 64 + lino = 0 + for left, right in zip(lines[::2], lines[1::2]): + if lino == 0: + print(header) + print(left + columngap + right) + lino += 1 + if lino == lines_per_page: + print("\f") + lino = 0 + if lines[-1] != right: + print(lines[-1]) + + +main() diff --git a/src-datatype/.ipynb_checkpoints/csv2html-checkpoint.py~ b/src-datatype/.ipynb_checkpoints/csv2html-checkpoint.py~ new file mode 100644 index 0000000..6043b61 --- /dev/null +++ b/src-datatype/.ipynb_checkpoints/csv2html-checkpoint.py~ @@ -0,0 +1,80 @@ +# -*- coding: utf-8 -*- + +def main(): + maxwidth = 100 + print_start() + count = 0 + while True: + try: + line = input() + if count == 0: + color = "lightgreen" + elif count % 2: + color = "white" + else: + color = "lightyellow" + print_line(line, color, maxwidth) + count += 1 + except EOFError: + break + print_end() + +def print_start(): + print("") + +def print_end(): + print("
") + +def print_line(line, color, maxwidth): + print("".format(color)) + fields = extract_fields(line) + for field in fields: + if not field: + print("") + else: + number = field.replace(",", "") + try: + x = float(number) + print("{0:d}".format(round(x))) + except ValueError: + field = field.title() + field = field.replace(" And ", " and ") + field = escape_html(field) + if len(field) <= maxwidth: + print("{0}".format(field)) + else: + print("{0:.{1}} ...".format(field, maxwidth)) + print("") + +def extract_fields(line): + fields = [] + field = "" + quote = None + for c in line: + if c in "\"'": + if quote is None: # начало строки в кавычках + quote = c + elif quote == c: # конец строки в кавычках + quote = None + else: + field += c + # другая кавычка внутри строки в кавычках + continue + if quote is None and c == ",": # end of a field + fields.append(field) + field = "" + else: + field += c + # добавить символ в поле + if field: + fields.append(field) # добавить последнее поле в список + return fields + +def escape_html(text): + text = text.replace("&", "&") + text = text.replace("<", "<") + text = text.replace(">", ">") + return text + + +main() diff --git a/src-datatype/.ipynb_checkpoints/print_unicode-checkpoint.py~ b/src-datatype/.ipynb_checkpoints/print_unicode-checkpoint.py~ new file mode 100644 index 0000000..f69c980 --- /dev/null +++ b/src-datatype/.ipynb_checkpoints/print_unicode-checkpoint.py~ @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +import sys +import unicodedata + +def print_unicode_table(word): + print("decimal hex chr {0:^40}".format("name")) + print("------- ----- --- {0:-<40}".format("")) + + code = ord(" ") + end = sys.maxunicode + + while code < end: + c = chr(code) + name = unicodedata.name(c, "*** unknown ***") + if word is None or word in name.lower(): + print("{0:7} {0:5X} {0:^3c} {1}".format(code, name.title())) + code += 1 +# End print_unicode_table + +# Start main script +word = None + +if len(sys.argv) > 1: + if sys.argv[1] in ("-h", "--help"): + print("usage: {0} [string]".format(sys.argv[0])) + word = 0 + else: + word = sys.argv[1].lower() + +if word != 0: + print_unicode_table(word) + +#End main script diff --git a/src-datatype/.ipynb_checkpoints/quadratic-checkpoint.py~ b/src-datatype/.ipynb_checkpoints/quadratic-checkpoint.py~ new file mode 100644 index 0000000..77bcc69 --- /dev/null +++ b/src-datatype/.ipynb_checkpoints/quadratic-checkpoint.py~ @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +import cmath +import math +import sys + +# Start get_float +def get_float(msg, allow_zero): + x = None + while x is None: + try: + x = float(input(msg)) + if not allow_zero and abs(x) < sys.float_info.epsilon: + print("zero is not allowed") + x = None + + except ValueError as err: + print(err) + return x +# End get_float + + +# Start 1st block +print("ax\N{SUPERSCRIPT TWO} + bx + c = 0") +a = get_float("enter a: ", False) +b = get_float("enter b: ", False) +c = get_float("enter c: ", False) +# End 1st block + +# Start 2d block +x1 = None +x2 = None +discriminant = (b ** 2) - (4 * a * c) +if discriminant == 0: + x1 = -(b / (2 * a)) +else: + if discriminant > 0: + root = math.sqrt(discriminant) + else: # discriminant < 0 + root = cmath.sqrt(discriminant) + x1 = (-b + root) / (2 * a) + x2 = (-b - root) / (2 * a) +# End 2d block + +# Start 3d block +equation = ("{0}x\N{SUPERSCRIPT TWO} + {1}x + {2} = 0" + " \N{RIGHTWARDS ARROW} x = {3}").format(a, b, c, x1) +if x2 is not None: + equation += " or x = {0}".format(x2) +print(equation) +# End 3d block diff --git a/src-datatype/csv2html.py b/src-datatype/csv2html.py index 6043b61..0b6799e 100644 --- a/src-datatype/csv2html.py +++ b/src-datatype/csv2html.py @@ -76,5 +76,4 @@ def escape_html(text): text = text.replace(">", ">") return text - main() diff --git a/src-datatype/quadratic.py b/src-datatype/quadratic.py index 77bcc69..1223ca5 100644 --- a/src-datatype/quadratic.py +++ b/src-datatype/quadratic.py @@ -37,8 +37,8 @@ else: root = math.sqrt(discriminant) else: # discriminant < 0 root = cmath.sqrt(discriminant) - x1 = (-b + root) / (2 * a) - x2 = (-b - root) / (2 * a) + x1 = (-b + root) / (2 * a) + x2 = (-b - root) / (2 * a) # End 2d block # Start 3d block diff --git a/src-intro/.ipynb_checkpoints/fib-checkpoint.py b/src-intro/.ipynb_checkpoints/fib-checkpoint.py~ similarity index 100% rename from src-intro/.ipynb_checkpoints/fib-checkpoint.py rename to src-intro/.ipynb_checkpoints/fib-checkpoint.py~ diff --git a/src-intro/.ipynb_checkpoints/hello-checkpoint.py b/src-intro/.ipynb_checkpoints/hello-checkpoint.py~ similarity index 100% rename from src-intro/.ipynb_checkpoints/hello-checkpoint.py rename to src-intro/.ipynb_checkpoints/hello-checkpoint.py~ diff --git a/src-intro/.ipynb_checkpoints/test-checkpoint.py b/src-intro/.ipynb_checkpoints/test-checkpoint.py~ similarity index 100% rename from src-intro/.ipynb_checkpoints/test-checkpoint.py rename to src-intro/.ipynb_checkpoints/test-checkpoint.py~ diff --git a/src-numpy/array_archive.npz b/src-numpy/array_archive.npz new file mode 100644 index 0000000000000000000000000000000000000000..ae6d535de7bd597f5756e439802dddb54a699ca0 GIT binary patch literal 650 zcmWIWW@Zs#fB;1X8xBpr3qTGCvoeSRzLK#d@ni)#7KxtMe%?72}p)?1S=7iD#c!MEns1&djNvvP=^2j literal 0 HcmV?d00001 diff --git a/src-numpy/arrays_compressed.npz b/src-numpy/arrays_compressed.npz new file mode 100644 index 0000000000000000000000000000000000000000..6824394257048a7528f4ac8ce09aef4be7331ea8 GIT binary patch literal 424 zcmWIWW@Zs#U|`??VnqfU4o$vzAnO7UvoeS 0, 1, -1) +walk = steps.cumsum() diff --git a/src-numpy/random_walk_pure.py b/src-numpy/random_walk_pure.py new file mode 100644 index 0000000..a96a00b --- /dev/null +++ b/src-numpy/random_walk_pure.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- + +import matplotlib.pyplot as plt +import random + +position = 0 +walk = [position] +steps = 1000 +for i in range(100): + step = 1 if random.randint(0, 1) else -1 + position += step + walk.append(position) + +plt.plot(walk[:100]) +plt.savefig('numpy-3.png') + + diff --git a/src-numpy/some_array.npy b/src-numpy/some_array.npy new file mode 100644 index 0000000000000000000000000000000000000000..a3ff5af9540510ac6518b5a2478bc1a40f992371 GIT binary patch literal 208 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlWC!@qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= wXCxM+0{I$-20EHL3bhL411<(AV1&|4P?{M^vp{K9D9r|?*`YKCl;(ue0P!XpoB#j- literal 0 HcmV?d00001