{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Python: Diferenciais\n", "\n", "#### Tipagem Dinâmica e Sintaxe Elegange\n", "\n", "Em C:" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "#include \n", "\n", "int soma(int a, int b)\n", "{\n", " return a + b;\n", "}\n", "\n", "void main() \n", "{\n", " printf(\"Resultado: %d\\n\", soma(102, 459));\n", " return;\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Em Python:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Resultado: 561\n" ] } ], "source": [ "def soma(a, b):\n", " return a + b\n", "\n", "print(\"Resultado: %d\" % soma(102, 459))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Baterias Incluídas\n", "\n", "+ Manipulação de Strings\n", "+ Tipos de Dados: *datetime*, *sets*, *Queue*, *Fraction*\n", "+ Algoritmos: *sort*, *bisect*, *random* \n", "+ Sistema de Arquivos (multiplataforma):\n", " + cópia e manipulação de arquivos\n", " + compactação de dados\n", " + arquvios temporários\n", " + váriaveis de ambiente\n", "+ Formato de Dados: *csv*, *xml*, *json*\n", "+ Rede: e-mail, FTP, HTML parser" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. Vamos Começar\n", "\n", "Baixar e Instalar o [Anaconda](https://www.continuum.io/downloads) (Distribuição Python)\n", "\n", "Inicializar o Spyder (IDE Python)\n", "\n", "![](files/resource/spyder.png)\n", "\n", "1. Editor de arquivos\n", "1. Inspetor de Variáveis\n", "1. Console Python\n", "\n", "**Atalhos Importantes:**\n", "\n", "+ Ctrl+Espaço - Lista de Funções\n", "+ Ctrl+I - Mostra Documentação\n", "+ Ctrl+Shift+I - Foco no Console\n", "+ Ctrl+Shift+V - Foco Inspetor de Variáveis\n", "+ Ctrl+Shift+E - Foco no Editor\n", "+ F5 - Executa Script\n", "\n", "### Console pode ser usado como Calculadora\n", "\n", "Você pode testar comandos na janela de Console, os resultados são apresentados instantaneamente" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "99.25" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "12 * 3 + 64 - 3 / 4" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "6.25\n" ] } ], "source": [ "x = 2.5\n", "y = x ** 2\n", "print(y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Strings" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'Texto normal'" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"Texto normal\"" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'Teste de \"aspas\"'" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "'Teste de \"aspas\"'" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'texto grande assim com várias linhas'" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"texto grande assim \\\n", "com várias linhas\"" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'texto grande assim com várias linhas'" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"texto grande assim \" + \\\n", "\"com várias linhas\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Formatação pode ser feita de duas maneiras:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'2.5 ao quadrado é 6.2'" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"%.1f ao quadrado é %.1f\" % (x, y) #old style" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'2.5 ao quadrado é 6.2'" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"{:.1f} ao quadrado é {:.1f}\".format(x, y) #new style" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mais informações na [documentação oficial](https://docs.python.org/3.4/library/string.html#format-specification-mini-language)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Entrada/Saída de Arquivos\n", "\n", "Escrevendo arquivo texto:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "texto_filename = \"meu-texto.txt\"" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [], "source": [ "with open(texto_filename, \"w\") as texto_file:\n", " texto_file.write(\"Com Python\\n\")\n", " texto_file.write(\"sou mais feliz\\n\")\n", " texto_file.write(\"-- fim --\\n\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lendo arquivo texto:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'Com Python\\n'" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "with open(texto_filename, \"r\") as texto_file:\n", " texto = texto_file.readline()\n", "texto" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Com Python\n", "sou mais feliz\n", "-- fim --\n", "\n" ] } ], "source": [ "texto_lido = \"\"\n", "with open(texto_filename, \"r\") as texto_file:\n", " for line in texto_file:\n", " texto_lido += line\n", "print(texto_lido)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Forma insegura de abrir um arquivo" ] }, { "cell_type": "raw", "metadata": { "collapsed": false }, "source": [ "texto_file = open(texto_filename)\n", "texto_file" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mais informações na [documentação](https://docs.python.org/3.4/library/os.html#module-os)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Listas" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'Botafogo'" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "clubes = [\"Botafogo\", \"Criciuma\", \"Náutico\", \"Vitória\"]\n", "clubes[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> **Atenção:** Indexação de vetores no Python inicia em 0 (zero)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['maça', 1, 15.3, 11]" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Listas podem ter diferentes tipos (porém, não é boa prática)\n", "[\"maça\", 1, 15.3, 0xB]" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['Botafogo', 'Criciuma', 'Náutico', 'Vitória', 'Bragantino']" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "clubes.append(\"Bragantino\")\n", "clubes" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['Bahia', 'Botafogo', 'Criciuma', 'Náutico', 'Vitória', 'Bragantino']" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "clubes.insert(0, \"Bahia\")\n", "clubes" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'Bahia'" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "clube = clubes.pop(0)\n", "clube" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Indexação/Slicing" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'Bragantino'" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "clubes[-1]" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['Náutico', 'Vitória', 'Bragantino']" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "clubes[2:]" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['Criciuma', 'Náutico', 'Vitória']" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "clubes[1:4]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Dicionários" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fruits: dict_keys(['banana', 'orange', 'apple'])\n" ] } ], "source": [ "# Dicts\n", "fruit_calories = {}\n", "fruit_calories[\"apple\"] = 53\n", "fruit_calories[\"banana\"] = 95\n", "fruit_calories[\"orange\"] = 63\n", "\n", "# Getting dict keys\n", "print(\"Fruits: \", fruit_calories.keys())" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Calories: dict_values([95, 63, 53])\n" ] } ], "source": [ "# Getting dict values\n", "print(\"Calories: \", fruit_calories.values())" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Orange calories: 63\n" ] } ], "source": [ "# Query\n", "print(\"Orange calories:\", fruit_calories[\"orange\"])" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Orange has 63 calories\n" ] } ], "source": [ "# Formated response\n", "print(\"Orange has {0} calories\".format(fruit_calories[\"orange\"]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Condicionais/Repetição" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Texto Pequeno\n" ] } ], "source": [ "if len(texto_lido) > 100:\n", " print(\"Texto Grande\")\n", "else:\n", " print(\"Texto Pequeno\")" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Texto Médio\n" ] } ], "source": [ "if len(texto_lido) > 100:\n", " print(\"Texto Grande\")\n", "elif len(texto_lido) > 20:\n", " print(\"Texto Médio\")\n", "else:\n", " print(\"Texto Pequeno\")" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Botafogo\n", "Criciuma\n", "Náutico\n", "Vitória\n", "Bragantino\n" ] } ], "source": [ "for clube in clubes:\n", " print(clube)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "2\n", "3\n" ] } ], "source": [ "for i in range(1, 4):\n", " print(i)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 Botafogo\n", "2 Criciuma\n", "3 Náutico\n", "4 Vitória\n", "5 Bragantino\n" ] } ], "source": [ "for i, clube in enumerate(clubes):\n", " print (i+1, clube)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Botafogo\n", "Bragantino\n", "Criciuma\n", "Náutico\n", "Vitória\n" ] } ], "source": [ "for clube in sorted(clubes):\n", " print(clube)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 1.00 0.00 1.00\n", "2 4.00 0.91 -0.42\n", "4 16.00 -0.76 -0.65\n", "6 64.00 -0.28 0.96\n" ] } ], "source": [ "import math\n", "# De 0 a 10, imprime somente números pares e interromple se x >= 8\n", "for x in range(10):\n", " if x % 2 != 0:\n", " continue # pula para próxima iteração (x+1)\n", " if x >= 8:\n", " break # finaliza o loop\n", " print(\"{:<8d}{:8.2f}{: 8.2f}{: 8.2f}\".format(x, math.pow(2,x), math.sin(x), math.cos(x)))" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(9, 1024)" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = 2\n", "i = 0\n", "while i < 10 and x < 1000:\n", " i += 1\n", " x = x * 2\n", "i, x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Funções" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def count_char(word, char):\n", " count = 0\n", " for w in word:\n", " if w == char:\n", " count += 1\n", " return count" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "count_char(\"ESSS\", \"S\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Argumentos Default" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def count_char(text, char, case_sens=False, stop_eol=False):\n", " count = 0\n", " if stop_eol:\n", " text = text.split(\"\\n\")[0]\n", " if not case_sens:\n", " text = text.lower()\n", " char = char.lower()\n", " for w in text:\n", " if w == char:\n", " count += 1\n", " return count" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "count_char(\"ESSS\", \"s\")" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "count_char(\"ESSS\", \"s\", True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Argumento Nomeado" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Melhor\n", "count_char(\"ESSS\", \"s\", case_sens=True)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "count_char(texto_lido, \"m\")" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "count_char(texto_lido, \"m\", stop_eol=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Bibliotecas\n", "\n", "#### math" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import math" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.9999996829318346" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "math.sin(3.14 / 2)" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "math.sin(math.pi / 2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mais informações na [documentação](https://docs.python.org/3.4/library/math.html?highlight=math#module-math)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### os" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import os" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'C:\\\\Users\\\\itghisi'" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "home_dir = os.path.expanduser(\"~\")\n", "home_dir" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'X:\\\\py4eng-course\\\\notebooks\\\\webinar-2015'" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import os\n", "os.getcwd()" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "os.path.isdir(r\"C:\\\\Windows\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mais informações na [documentação](https://docs.python.org/3.4/library/os.html#module-os)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### numpy" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Criação de Arrays" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 1.2, 10. , 33. , 12.4, 5. ])" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "numpy.array([1.2, 10, 33, 12.4, 5])" ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "numpy.arange(10)" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.zeros(10, \"d\")" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([7, 6, 6, 3, 8, 1, 8, 3, 2, 8])" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "numpy.random.randint(1, 10, 10)" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "collapsed": false }, "outputs": [], "source": [ "r = np.linspace(0, np.pi/2, 10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mais informacões no [manual da NumPy](http://docs.scipy.org/doc/numpy/reference/routines.array-creation.html)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Operações Básicas" ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([False, False, False, False, True, True, True, True, True, True], dtype=bool)" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v = np.sin(r)\n", "v > 0.5" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0. , 1.73648178, 3.42020143, 5. ,\n", " 6.4278761 , 7.66044443, 8.66025404, 9.39692621,\n", " 9.84807753, 10. ])" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v * 10" ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0. , 0.01736482, 0.03420201, 0.05 , 0.06427876,\n", " 0.07660444, 0.08660254, 0.09396926, 0.09848078, 0.1 ])" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v / 10" ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "collapsed": false }, "outputs": [], "source": [ "A = np.array([[3, 12, 4],\n", " [0, 3, 9],\n", " [1, 4, 3]])" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x = np.array([3, 4, 4])" ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([73, 48, 31])" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.dot(A, x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mais informacões [aqui](http://docs.scipy.org/doc/numpy/user/basics.indexing.html#other-indexing-options) e [aqui](http://docs.scipy.org/doc/numpy/reference/routines.array-creation.html)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Manipulação de Arrays (slicing)" ] }, { "cell_type": "code", "execution_count": 70, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v[-1]" ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0. , 0.17364818, 0.34202014, 0.5 , 0.64278761])" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v[0:5]" ] }, { "cell_type": "code", "execution_count": 72, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0.93969262, 0.98480775, 1. ])" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v[-3:]" ] }, { "cell_type": "code", "execution_count": 73, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 3, 4, 4, 73, 48, 31])" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.concatenate([x, np.dot(A, x)])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mais informacões no [manual da NumPy](http://docs.scipy.org/doc/numpy/reference/routines.array-manipulation.html)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### matplotlib" ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 75, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plt.plot(v)" ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(r, v)" ] }, { "cell_type": "code", "execution_count": 78, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n0QgAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(r, v, \"ro\")\n", "plt.xlabel(\"x\")\n", "plt.ylabel(\"$sin(x)$\")\n", "plt.title(\"Tutorial do Plot\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mais Informações:\n", "\n", "+ [PyPloy Tutorial](http://matplotlib.org/users/pyplot_tutorial.html)\n", "+ [`plot()` function reference](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.plot)\n", "+ [Samples gallery](http://matplotlib.org/gallery.html)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "#### scipy" ] }, { "cell_type": "code", "execution_count": 80, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import scipy.integrate" ] }, { "cell_type": "code", "execution_count": 81, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.9999999999999999" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fx, err = scipy.integrate.quad(math.cos, 0, math.pi/2.0)\n", "fx" ] }, { "cell_type": "code", "execution_count": 82, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.9999999999999999" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from scipy.integrate import quad\n", "fx, err = quad(math.cos, 0, math.pi/2.0)\n", "fx" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "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.4.3" } }, "nbformat": 4, "nbformat_minor": 0 }