Skip to content

Instantly share code, notes, and snippets.

@ischurov
Last active October 12, 2017 16:03
Show Gist options
  • Save ischurov/9a86458c19581a4b3b004667f30b0bd7 to your computer and use it in GitHub Desktop.
Save ischurov/9a86458c19581a4b3b004667f30b0bd7 to your computer and use it in GitHub Desktop.
math-ml-intro.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "2 * 2",
"execution_count": 1,
"outputs": [
{
"data": {
"text/plain": "4"
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Занятие про Python\nМы, наконец, запустили Jupyter Notebook."
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "(2 + 3) ** 5",
"execution_count": 2,
"outputs": [
{
"data": {
"text/plain": "3125"
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "2 / 3",
"execution_count": 3,
"outputs": [
{
"data": {
"text/plain": "0.6666666666666666"
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "5 // 3",
"execution_count": 4,
"outputs": [
{
"data": {
"text/plain": "1"
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "x = 10",
"execution_count": 5,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "x + 5",
"execution_count": 6,
"outputs": [
{
"data": {
"text/plain": "15"
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "type(5)",
"execution_count": 7,
"outputs": [
{
"data": {
"text/plain": "int"
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "type(1.)",
"execution_count": 8,
"outputs": [
{
"data": {
"text/plain": "float"
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "y = 5",
"execution_count": 9,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "x + y",
"execution_count": 10,
"outputs": [
{
"data": {
"text/plain": "15"
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "4 + 3\n5 + 10",
"execution_count": 11,
"outputs": [
{
"data": {
"text/plain": "15"
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "print(x)\nprint(y)",
"execution_count": 12,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "10\n5\n"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "x = x + 1",
"execution_count": 13,
"outputs": []
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "x",
"execution_count": 14,
"outputs": [
{
"data": {
"text/plain": "11"
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "for i in range(5):\n print(i)\n print(\"Next i, please\")\nprint(\"That's all\")",
"execution_count": 18,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "0\nNext i, please\n1\nNext i, please\n2\nNext i, please\n3\nNext i, please\n4\nNext i, please\nThat's all\n"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "list(range(5))",
"execution_count": 16,
"outputs": [
{
"data": {
"text/plain": "[0, 1, 2, 3, 4]"
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "i",
"execution_count": 17,
"outputs": [
{
"data": {
"text/plain": "4"
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "my_list = [2, 10, 4, 3, 1, \"Hello\"]",
"execution_count": 19,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "my_list[0]",
"execution_count": 20,
"outputs": [
{
"data": {
"text/plain": "2"
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false,
"collapsed": true
},
"cell_type": "code",
"source": "my_list[4] = 999",
"execution_count": 23,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "my_list",
"execution_count": 24,
"outputs": [
{
"data": {
"text/plain": "[2, 10, 4, 3, 999, 'Hello']"
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "for element in my_list:\n print(element)",
"execution_count": 25,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "2\n10\n4\n3\n999\nHello\n"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "other_list = [4, 3, 5, 1]",
"execution_count": 26,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "my_list + other_list",
"execution_count": 27,
"outputs": [
{
"data": {
"text/plain": "[2, 10, 4, 3, 999, 'Hello', 4, 3, 5, 1]"
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "my_list",
"execution_count": 28,
"outputs": [
{
"data": {
"text/plain": "[2, 10, 4, 3, 999, 'Hello']"
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "my_list[2:5]",
"execution_count": 29,
"outputs": [
{
"data": {
"text/plain": "[4, 3, 999]"
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "my_list[:4]",
"execution_count": 30,
"outputs": [
{
"data": {
"text/plain": "[2, 10, 4, 3]"
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "my_list[4:]",
"execution_count": 31,
"outputs": [
{
"data": {
"text/plain": "[999, 'Hello']"
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "my_list[-1]",
"execution_count": 32,
"outputs": [
{
"data": {
"text/plain": "'Hello'"
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "my_list[len(my_list)-1]",
"execution_count": 33,
"outputs": [
{
"data": {
"text/plain": "'Hello'"
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "my_tuple = (2, 1, 5, 10)",
"execution_count": 34,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "my_tuple[2] = 10",
"execution_count": 35,
"outputs": [
{
"ename": "TypeError",
"evalue": "'tuple' object does not support item assignment",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-35-ba4bcf080663>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mmy_tuple\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m10\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;31mTypeError\u001b[0m: 'tuple' object does not support item assignment"
]
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "s = \"123\"",
"execution_count": 36,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "s + 2",
"execution_count": 38,
"outputs": [
{
"ename": "TypeError",
"evalue": "must be str, not int",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-38-1ffac3e9a4d8>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0ms\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;36m2\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;31mTypeError\u001b[0m: must be str, not int"
]
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "int(s)",
"execution_count": 39,
"outputs": [
{
"data": {
"text/plain": "123"
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "x",
"execution_count": 40,
"outputs": [
{
"data": {
"text/plain": "11"
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "x = 12\nif x > 10:\n print(\"x is large\")\nelse:\n print(\"x is small\")",
"execution_count": 44,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "x is large\n"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "x = -12\nif x > 10:\n print(\"x is large\")\nelif x > 0:\n print(\"x is small but positive\")\nelse:\n print(\"x is negative\")",
"execution_count": 46,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "x is negative\n"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "sqrt(4)",
"execution_count": 47,
"outputs": [
{
"ename": "NameError",
"evalue": "name 'sqrt' is not defined",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-47-718d7f173e1d>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0msqrt\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m4\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;31mNameError\u001b[0m: name 'sqrt' is not defined"
]
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "import math",
"execution_count": 48,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "math.sqrt(4)",
"execution_count": 49,
"outputs": [
{
"data": {
"text/plain": "2.0"
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "math.sin(math.pi)",
"execution_count": 50,
"outputs": [
{
"data": {
"text/plain": "1.2246467991473532e-16"
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "from math import sin, sqrt",
"execution_count": 51,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "sin(5)",
"execution_count": 52,
"outputs": [
{
"data": {
"text/plain": "-0.9589242746631385"
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "import math as mt",
"execution_count": 53,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "mt.sqrt(100)",
"execution_count": 54,
"outputs": [
{
"data": {
"text/plain": "10.0"
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "# from math import *\n# так лучше не делать",
"execution_count": 55,
"outputs": []
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "import numpy as np",
"execution_count": 56,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "my_list",
"execution_count": 57,
"outputs": [
{
"data": {
"text/plain": "[2, 10, 4, 3, 999, 'Hello']"
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "my_list.append(123)",
"execution_count": 58,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "my_list",
"execution_count": 59,
"outputs": [
{
"data": {
"text/plain": "[2, 10, 4, 3, 999, 'Hello', 123]"
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "numbers = [1., 2., 5.] * 1000",
"execution_count": 60,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "$$\\{x^2\\mid x \\in \\mathbb N\\}$$"
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "%%timeit\nsquares = [x ** 2 for x in numbers]",
"execution_count": 64,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "1000 loops, best of 3: 490 µs per loop\n"
}
]
},
{
"metadata": {
"trusted": false,
"collapsed": true
},
"cell_type": "code",
"source": "numbers_array = np.array(numbers)",
"execution_count": 65,
"outputs": []
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "x = np.array([1, 2, 3])\ny = np.array([2, 5, 10])",
"execution_count": 66,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "y[2]",
"execution_count": 70,
"outputs": [
{
"data": {
"text/plain": "10"
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "x + y",
"execution_count": 71,
"outputs": [
{
"data": {
"text/plain": "array([ 3, 7, 13])"
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "x * 2",
"execution_count": 72,
"outputs": [
{
"data": {
"text/plain": "array([2, 4, 6])"
},
"execution_count": 72,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "x * y",
"execution_count": 73,
"outputs": [
{
"data": {
"text/plain": "array([ 2, 10, 30])"
},
"execution_count": 73,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "np.sin(x)",
"execution_count": 74,
"outputs": [
{
"data": {
"text/plain": "array([ 0.84147098, 0.90929743, 0.14112001])"
},
"execution_count": 74,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "np.exp(x)",
"execution_count": 75,
"outputs": [
{
"data": {
"text/plain": "array([ 2.71828183, 7.3890561 , 20.08553692])"
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false,
"collapsed": true
},
"cell_type": "code",
"source": "numbers_array = np.array(numbers)",
"execution_count": 77,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "%%timeit\nsquares_array = numbers_array ** 2",
"execution_count": 80,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "The slowest run took 9.99 times longer than the fastest. This could mean that an intermediate result is being cached.\n100000 loops, best of 3: 2.89 µs per loop\n"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "numbers_array[0] = \"Hello\"",
"execution_count": 82,
"outputs": [
{
"ename": "ValueError",
"evalue": "could not convert string to float: 'Hello'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-82-6cb524a95af9>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mnumbers_array\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"Hello\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;31mValueError\u001b[0m: could not convert string to float: 'Hello'"
]
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "numbers_array.dtype",
"execution_count": 83,
"outputs": [
{
"data": {
"text/plain": "dtype('float64')"
},
"execution_count": 83,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "string_array = np.array([\"one\", \"two\", \"three\"])",
"execution_count": 84,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "string_array",
"execution_count": 85,
"outputs": [
{
"data": {
"text/plain": "array(['one', 'two', 'three'], \n dtype='<U5')"
},
"execution_count": 85,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "string_array[0] = \"This is a test\"",
"execution_count": 86,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "string_array",
"execution_count": 87,
"outputs": [
{
"data": {
"text/plain": "array(['This ', 'two', 'three'], \n dtype='<U5')"
},
"execution_count": 87,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "string_array[2] = 123567",
"execution_count": 90,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "string_array",
"execution_count": 91,
"outputs": [
{
"data": {
"text/plain": "array(['This ', 'two', '12356'], \n dtype='<U5')"
},
"execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "objects = np.array([1, 2, '123', 'some string'], \n dtype='object')",
"execution_count": 92,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "objects",
"execution_count": 93,
"outputs": [
{
"data": {
"text/plain": "array([1, 2, '123', 'some string'], dtype=object)"
},
"execution_count": 93,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "table = [[2, 5, 10], [1, 2, 5]]",
"execution_count": 94,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "table[0][0]",
"execution_count": 96,
"outputs": [
{
"data": {
"text/plain": "2"
},
"execution_count": 96,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "[row[0] for row in table]",
"execution_count": 97,
"outputs": [
{
"data": {
"text/plain": "[2, 1]"
},
"execution_count": 97,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "array_2d = np.array(table)",
"execution_count": 98,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "array_2d",
"execution_count": 99,
"outputs": [
{
"data": {
"text/plain": "array([[ 2, 5, 10],\n [ 1, 2, 5]])"
},
"execution_count": 99,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "array_2d[0, 1]",
"execution_count": 100,
"outputs": [
{
"data": {
"text/plain": "5"
},
"execution_count": 100,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "array_2d[0]",
"execution_count": 101,
"outputs": [
{
"data": {
"text/plain": "array([ 2, 5, 10])"
},
"execution_count": 101,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "array_2d[:,1]",
"execution_count": 102,
"outputs": [
{
"data": {
"text/plain": "array([5, 2])"
},
"execution_count": 102,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "v = np.array([4, 2, 1])",
"execution_count": 104,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "array_2d",
"execution_count": 105,
"outputs": [
{
"data": {
"text/plain": "array([[ 2, 5, 10],\n [ 1, 2, 5]])"
},
"execution_count": 105,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "array_2d @ v",
"execution_count": 107,
"outputs": [
{
"data": {
"text/plain": "array([28, 13])"
},
"execution_count": 107,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "array_2d.dot(v)",
"execution_count": 108,
"outputs": [
{
"data": {
"text/plain": "array([28, 13])"
},
"execution_count": 108,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "u = np.array([2, 1, 4])",
"execution_count": 109,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "u @ v",
"execution_count": 110,
"outputs": [
{
"data": {
"text/plain": "14"
},
"execution_count": 110,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "u.T",
"execution_count": 112,
"outputs": [
{
"data": {
"text/plain": "array([2, 1, 4])"
},
"execution_count": 112,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "array_2d",
"execution_count": 113,
"outputs": [
{
"data": {
"text/plain": "array([[ 2, 5, 10],\n [ 1, 2, 5]])"
},
"execution_count": 113,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "array_2d.T",
"execution_count": 114,
"outputs": [
{
"data": {
"text/plain": "array([[ 2, 1],\n [ 5, 2],\n [10, 5]])"
},
"execution_count": 114,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "array_2d",
"execution_count": 115,
"outputs": [
{
"data": {
"text/plain": "array([[ 2, 5, 10],\n [ 1, 2, 5]])"
},
"execution_count": 115,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "new_matrix = np.array([[4, 3], [1, 2], [3, 5]])",
"execution_count": 116,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "array_2d @ new_matrix",
"execution_count": 117,
"outputs": [
{
"data": {
"text/plain": "array([[43, 66],\n [21, 32]])"
},
"execution_count": 117,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "new_matrix @ array_2d",
"execution_count": 118,
"outputs": [
{
"data": {
"text/plain": "array([[11, 26, 55],\n [ 4, 9, 20],\n [11, 25, 55]])"
},
"execution_count": 118,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "u",
"execution_count": 119,
"outputs": [
{
"data": {
"text/plain": "array([2, 1, 4])"
},
"execution_count": 119,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "v",
"execution_count": 120,
"outputs": [
{
"data": {
"text/plain": "array([4, 2, 1])"
},
"execution_count": 120,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "sum(u * v)",
"execution_count": 123,
"outputs": [
{
"data": {
"text/plain": "14"
},
"execution_count": 123,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "u @ v",
"execution_count": 122,
"outputs": [
{
"data": {
"text/plain": "14"
},
"execution_count": 122,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "u = np.array([1, 2, 1, 2, 14, 5, 3, 4, 16])",
"execution_count": 124,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "np.mean(u)",
"execution_count": 126,
"outputs": [
{
"data": {
"text/plain": "5.333333333333333"
},
"execution_count": 126,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "u - np.mean(u)",
"execution_count": 127,
"outputs": [
{
"data": {
"text/plain": "array([ -4.33333333, -3.33333333, -4.33333333, -3.33333333,\n 8.66666667, -0.33333333, -2.33333333, -1.33333333, 10.66666667])"
},
"execution_count": 127,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "X = np.array([[1, 2], [15, 4], [6, 3], [4, 6]])",
"execution_count": 128,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "X",
"execution_count": 129,
"outputs": [
{
"data": {
"text/plain": "array([[ 1, 2],\n [15, 4],\n [ 6, 3],\n [ 4, 6]])"
},
"execution_count": 129,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "X - np.mean(X, axis=0)",
"execution_count": 133,
"outputs": [
{
"data": {
"text/plain": "array([[-5.5 , -1.75],\n [ 8.5 , 0.25],\n [-0.5 , -0.75],\n [-2.5 , 2.25]])"
},
"execution_count": 133,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false,
"collapsed": true
},
"cell_type": "code",
"source": "numbers = np.array([1, 2, 4, 6])",
"execution_count": 141,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "numbers",
"execution_count": 142,
"outputs": [
{
"data": {
"text/plain": "array([1, 2, 4, 6])"
},
"execution_count": 142,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "numbers.reshape(2, 2)",
"execution_count": 143,
"outputs": [
{
"data": {
"text/plain": "array([[1, 2],\n [4, 6]])"
},
"execution_count": 143,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "numbers.reshape(2, -1)",
"execution_count": 144,
"outputs": [
{
"data": {
"text/plain": "array([[1, 2],\n [4, 6]])"
},
"execution_count": 144,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "numbers.reshape(1, -1)",
"execution_count": 145,
"outputs": [
{
"data": {
"text/plain": "array([[1, 2, 4, 6]])"
},
"execution_count": 145,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "numbers.reshape(-1, 1)",
"execution_count": 146,
"outputs": [
{
"data": {
"text/plain": "array([[1],\n [2],\n [4],\n [6]])"
},
"execution_count": 146,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "q = np.arange(12)",
"execution_count": 147,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "q",
"execution_count": 148,
"outputs": [
{
"data": {
"text/plain": "array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])"
},
"execution_count": 148,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "q.reshape(3, 4)",
"execution_count": 149,
"outputs": [
{
"data": {
"text/plain": "array([[ 0, 1, 2, 3],\n [ 4, 5, 6, 7],\n [ 8, 9, 10, 11]])"
},
"execution_count": 149,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "q.reshape(2, 6)",
"execution_count": 150,
"outputs": [
{
"data": {
"text/plain": "array([[ 0, 1, 2, 3, 4, 5],\n [ 6, 7, 8, 9, 10, 11]])"
},
"execution_count": 150,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "q.reshape(2, -1)",
"execution_count": 151,
"outputs": [
{
"data": {
"text/plain": "array([[ 0, 1, 2, 3, 4, 5],\n [ 6, 7, 8, 9, 10, 11]])"
},
"execution_count": 151,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "import matplotlib.pyplot as plt\n%matplotlib inline",
"execution_count": 152,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "plt.plot([1, 2, 3, 5], [4, 2, 8, 0], '-.*');",
"execution_count": 167,
"outputs": [
{
"data": {
"image/png": "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\nAAAAAElFTkSuQmCC\n",
"text/plain": "<matplotlib.figure.Figure at 0x8cddb38>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "x = np.linspace(-np.pi, np.pi, 10 )",
"execution_count": 172,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "plt.figure(figsize=(6, 6))\nplt.plot(np.cos(x), np.sin(x))",
"execution_count": 173,
"outputs": [
{
"data": {
"text/plain": "[<matplotlib.lines.Line2D at 0xa1589b0>]"
},
"execution_count": 173,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": "<matplotlib.figure.Figure at 0xa0fc6d8>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "x = np.linspace(-np.pi, np.pi, 200)\nplt.figure(figsize=(6, 6))\nplt.plot(x, np.sin(x**2))",
"execution_count": 175,
"outputs": [
{
"data": {
"text/plain": "[<matplotlib.lines.Line2D at 0xa29f6a0>]"
},
"execution_count": 175,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nfwGiyayCNQSVZQAAAABJRU5ErkJggg==\n",
"text/plain": "<matplotlib.figure.Figure at 0xa223080>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "points = np.array([[0, 0], [2, 0], [2, 2], [1, 3], [0, 2], \n [0, 0]])\n",
"execution_count": 182,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "A @ points.T",
"execution_count": 184,
"outputs": [
{
"data": {
"text/plain": "array([[ 0. , 4. , 4. , 2. , 0. , 0. ],\n [ 0. , 0. , -1. , -1.5, -1. , 0. ]])"
},
"execution_count": 184,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "A = np.array([[1, 1], [0, -0.5]])\nplt.figure(figsize=(4, 4))\nplt.xlim(-5, 5)\nplt.ylim(-5, 5)\nnew_points = A @ points.T\n\nplt.plot(points[:, 0], points[:, 1], '-o')\nplt.plot(new_points[0], new_points[1], '-o')",
"execution_count": 189,
"outputs": [
{
"data": {
"text/plain": "[<matplotlib.lines.Line2D at 0xa34bdd8>]"
},
"execution_count": 189,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nEvh/F0eO7x2Y/PwAAAAASUVORK5CYII=\n",
"text/plain": "<matplotlib.figure.Figure at 0xa3a2fd0>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"trusted": false,
"collapsed": true
},
"cell_type": "code",
"source": "A = np.array([[1, 4], [3, 2]])",
"execution_count": 191,
"outputs": []
},
{
"metadata": {
"trusted": false,
"collapsed": true
},
"cell_type": "code",
"source": "eigvals, eigvects = np.linalg.eig(A)",
"execution_count": 193,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "eigvals",
"execution_count": 195,
"outputs": [
{
"data": {
"text/plain": "array([-2., 5.])"
},
"execution_count": 195,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "eigvects",
"execution_count": 196,
"outputs": [
{
"data": {
"text/plain": "array([[-0.8 , -0.70710678],\n [ 0.6 , -0.70710678]])"
},
"execution_count": 196,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "np.diag(eigvals)",
"execution_count": 197,
"outputs": [
{
"data": {
"text/plain": "array([[-2., 0.],\n [ 0., 5.]])"
},
"execution_count": 197,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": false,
"collapsed": true
},
"cell_type": "code",
"source": "A = np.random.uniform(size=(100, 100))\neigvals, eigvects = np.linalg.eig(A)",
"execution_count": 200,
"outputs": []
},
{
"metadata": {
"trusted": false,
"collapsed": true
},
"cell_type": "code",
"source": "A_rec = eigvects @ np.diag(eigvals) @ np.linalg.inv(eigvects)",
"execution_count": 202,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"cell_type": "code",
"source": "np.all(np.isclose(A, A_rec))",
"execution_count": 212,
"outputs": [
{
"data": {
"text/plain": "True"
},
"execution_count": 212,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "import numpy as np\nimport matplotlib.pyplot as plt\n%matplotlib inline",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "n = 30 # размер выборки\np = 0.3\nnumber_of_samples = 10000\nsamples = ((np.random.uniform(size=(number_of_samples, n))) < p) * 1\nplt.xlim(0, 1)\nplt.hist(samples.mean(axis=1), bins=20);",
"execution_count": 8,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "<matplotlib.figure.Figure at 0x1042a8ba8>",
"image/png": "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\nSJI6/x8tOpPrCySjTQAAAABJRU5ErkJggg==\n"
},
"metadata": {}
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": false
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.6.1",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"gist": {
"id": "",
"data": {
"description": "math-ml-intro.ipynb",
"public": false
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment