From f27edcb075a6d6032dea750e9f1ec904a94a4175 Mon Sep 17 00:00:00 2001 From: Hayltons <65053778+Hayltons@users.noreply.github.com> Date: Fri, 2 Oct 2020 14:40:52 -0300 Subject: [PATCH 01/10] Criado usando o Colaboratory --- ...DP_1_Feature Engineering_Fase1-TESTE.ipynb | 4856 +++++++++++++++++ 1 file changed, 4856 insertions(+) create mode 100644 Notebooks/3DP_1_Feature Engineering_Fase1-TESTE.ipynb diff --git a/Notebooks/3DP_1_Feature Engineering_Fase1-TESTE.ipynb b/Notebooks/3DP_1_Feature Engineering_Fase1-TESTE.ipynb new file mode 100644 index 000000000..13a846cc6 --- /dev/null +++ b/Notebooks/3DP_1_Feature Engineering_Fase1-TESTE.ipynb @@ -0,0 +1,4856 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "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.6.4" + }, + "colab": { + "name": "Copy of 10. Feature Selection Techniques.ipynb", + "provenance": [], + "toc_visible": true, + "include_colab_link": true + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ngLc7b9XiKxN" + }, + "source": [ + "# 3DP_FEATURE ENGINEERING - FASE 1" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "JNj9RdXbXmWq" + }, + "source": [ + "## Carrega as biblotecas:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "T9JCQatsiKxR" + }, + "source": [ + "from sklearn import feature_selection\n", + "import pandas as pd\n", + "import numpy as np\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline" + ], + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_ebv3nAzU2ac" + }, + "source": [ + "## Carrega o dataframe\n", + "* A seguir, os principais atributos/features do dataframe:\n", + " * **PassengerID**: ID do passageiro;\n", + " * **Survived**: Indicador, sendo 1= Passageiro sobreviveu e 0= Passageiro morreu;\n", + " * **Pclass**: Classe em que o passageiro viaja (1 classe, 2 classe, 3 classe, etc);\n", + " * **Age**: Idade do Passageiro;\n", + " * **SibSp**: Número de parentes a bordo (esposa, irmãos, pais e etc);\n", + " * **Parch**: Número de pais/crianças a bordo;\n", + " * **Fare**: Valor pago pela viagem;\n", + " * **Cabin**: Cabine do Passageiro;\n", + " * **Embarked**: A porta pelo qual o Passageiro embarcou.\n", + " * **Name**: Nome do Passageiro;\n", + " * **Sex**: Sexo do Passageiro." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "8M5uO9r-Vtze" + }, + "source": [ + "url_train= 'https://raw.githubusercontent.com/MathMachado/DSWP/master/Dataframes/Titanic_With_MV.csv'\n", + "url_test= 'https://raw.githubusercontent.com/MathMachado/DSWP/master/Dataframes/Titanic_test.csv'\n", + "\n", + "# Carrega os dataframes de treinamento e teste e define 'PassengerId' como chave\n", + "df_train= pd.read_csv(url_train, index_col='PassengerId')\n", + "df_test= pd.read_csv(url_test, index_col='PassengerId')\n", + "\n", + "# Faz uma cópia dos dados originais da variável resposta 'Survived'\n", + "df_train_Survived = df_train[\"Survived\"].copy()\n", + "\n", + "# merge train and test\n", + "df = df_train.append(df_test, sort= False)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QvbVxLs4ZZ0B" + }, + "source": [ + "## Entendendo o dataframe" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "yr4kSh-vZcam", + "outputId": "8b2389b7-ad00-4a86-8748-3104a3ec5996", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "# Número de linhas/instâncias do dataframe\n", + "df.shape" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(1309, 11)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 229 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "icC1tMH1ZhlA", + "outputId": "64a5866c-06ec-4401-bfcc-2d753e070ac5", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + } + }, + "source": [ + "# Colunas do dataframe\n", + "df.columns" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Index(['Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp', 'Parch', 'Ticket',\n", + " 'Fare', 'Cabin', 'Embarked'],\n", + " dtype='object')" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 230 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "fsVfiqfjwXcX", + "outputId": "2390399f-b753-448b-eba7-3817c8b8e35d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + } + }, + "source": [ + "# Tratar o nome das colunas usando lower\n", + "df.columns= [cols.lower() for cols in df.columns]\n", + "\n", + "# Verificar se o nome das variáveis estão ok\n", + "df.columns" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Index(['survived', 'pclass', 'name', 'sex', 'age', 'sibsp', 'parch', 'ticket',\n", + " 'fare', 'cabin', 'embarked'],\n", + " dtype='object')" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 231 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "D2opFNkvZ2sf", + "outputId": "e3a5efc3-4e57-4d31-d909-db35cff48129", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 289 + } + }, + "source": [ + "# Informações gerais sobre o dataframe\n", + "df.info()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "\n", + "Int64Index: 1309 entries, 1 to 1309\n", + "Data columns (total 11 columns):\n", + "survived 891 non-null float64\n", + "pclass 1309 non-null int64\n", + "name 1309 non-null object\n", + "sex 1309 non-null object\n", + "age 1046 non-null float64\n", + "sibsp 1309 non-null int64\n", + "parch 1309 non-null int64\n", + "ticket 1309 non-null object\n", + "fare 1308 non-null float64\n", + "cabin 295 non-null object\n", + "embarked 1307 non-null object\n", + "dtypes: float64(3), int64(3), object(5)\n", + "memory usage: 122.7+ KB\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MeHf-pPtaFfM" + }, + "source": [ + "O que você diria do output acima? Que informações você consegue abstrair disso?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "GAM06rMgaMnZ", + "outputId": "ae88c0f3-7f46-48e2-fb0a-8494ff4ed1b3", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 354 + } + }, + "source": [ + "# Visualizando parte do dataframe\n", + "df.head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\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", + " \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", + " \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", + " \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", + " \n", + "
survivedpclassnamesexagesibspparchticketfarecabinembarked
PassengerId
10.03Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
21.01Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
31.03Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
41.01Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
50.03Allen, Mr. William Henrymale35.0003734508.0500NaNS
\n", + "
" + ], + "text/plain": [ + " survived pclass ... cabin embarked\n", + "PassengerId ... \n", + "1 0.0 3 ... NaN S\n", + "2 1.0 1 ... C85 C\n", + "3 1.0 3 ... NaN S\n", + "4 1.0 1 ... C123 S\n", + "5 0.0 3 ... NaN S\n", + "\n", + "[5 rows x 11 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 233 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ngoNsaGgaXsJ" + }, + "source": [ + "## Deletar atributos/features que não são de interesse\n", + "* Eu não vejo, a priori, valor na variável 'ticket'. Portanto, vou deletá-la do dataframe." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "BIihFnbTaj6K", + "outputId": "c4220be8-0f4c-455c-d087-4404e8360790", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 269 + } + }, + "source": [ + "df= df.drop(['ticket'], axis=1) # axis= 1 indica que se trata de uma operação na coluna do dataframe. Lembre-se: axis= 0 indica operação nas linhas do dataframe.\n", + "df.head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
survivedpclassnamesexagesibspparchfarecabinembarked
PassengerId
10.03Braund, Mr. Owen Harrismale22.0107.2500NaNS
21.01Cumings, Mrs. John Bradley (Florence Briggs Th...female38.01071.2833C85C
31.03Heikkinen, Miss. Lainafemale26.0007.9250NaNS
41.01Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01053.1000C123S
50.03Allen, Mr. William Henrymale35.0008.0500NaNS
\n", + "
" + ], + "text/plain": [ + " survived pclass ... cabin embarked\n", + "PassengerId ... \n", + "1 0.0 3 ... NaN S\n", + "2 1.0 1 ... C85 C\n", + "3 1.0 3 ... NaN S\n", + "4 1.0 1 ... C123 S\n", + "5 0.0 3 ... NaN S\n", + "\n", + "[5 rows x 10 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 234 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "C8Sb5kOJasHr" + }, + "source": [ + "Observe que a coluna 'ticket' foi de fato deletada do dataframe." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3bbuq8rOawGN" + }, + "source": [ + "A seguir, crio a variável 'survived2' para ajudar no entendimento dos dados:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "AyyfGIGya1bw", + "outputId": "13c90a85-66e7-4b87-9ea6-56dc2f1241ec", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 371 + } + }, + "source": [ + "df['survived2'] = df['survived']\n", + "df['survived2'] = df['survived2'].map({0:'Died',1:'Survived'})\n", + "df.head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\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", + " \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", + " \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", + " \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", + " \n", + "
survivedpclassnamesexagesibspparchfarecabinembarkedsurvived2
PassengerId
10.03Braund, Mr. Owen Harrismale22.0107.2500NaNSDied
21.01Cumings, Mrs. John Bradley (Florence Briggs Th...female38.01071.2833C85CSurvived
31.03Heikkinen, Miss. Lainafemale26.0007.9250NaNSSurvived
41.01Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01053.1000C123SSurvived
50.03Allen, Mr. William Henrymale35.0008.0500NaNSDied
\n", + "
" + ], + "text/plain": [ + " survived pclass ... embarked survived2\n", + "PassengerId ... \n", + "1 0.0 3 ... S Died\n", + "2 1.0 1 ... C Survived\n", + "3 1.0 3 ... S Survived\n", + "4 1.0 1 ... S Survived\n", + "5 0.0 3 ... S Died\n", + "\n", + "[5 rows x 11 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 235 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Cegg0IcQa6NL" + }, + "source": [ + "## Entendendo as variáveis Originais do Dataframe\n", + "* Vamos verificar como as variáveis estão preenchidas a fim de corrigir possíveis problemas de preenchimento." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_WCbklv0bDlp" + }, + "source": [ + "A função a seguir nos ajudará com o Data Visualization, cruzando a variável-resposta 'Survived' com qualquer outra passada à função:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "epxI-F2UbGGS" + }, + "source": [ + "def Avalia_Taxa_Sobrevivencia(df, column):\n", + " title_xt = pd.crosstab(df[column], df['survived2'])\n", + " print(pd.crosstab(df[column], df['survived2'], margins=True))\n", + " title_xt_pct = title_xt.div(title_xt.sum(1).astype(float), axis=0)\n", + " \n", + " title_xt_pct.plot(kind='bar', stacked=True, title='Taxa de Sobrevivência dos Passageiros', \n", + " color= ['r', 'g'])\n", + " plt.xlabel(column)\n", + " plt.ylabel('Taxa de Sobrevivência')\n", + " plt.legend(loc='upper center', bbox_to_anchor=(0.5, -0.05),shadow=True, ncol=2)\n", + " plt.show()\n", + "\n", + "def Catplot_Graph(x, y, hue= 'survived2', col= None):\n", + " plt.rcdefaults()\n", + " g= sns.catplot(x= x, y= y, hue= hue, palette={'Died':'red','Survived':'blue'}, col= col, data=df, kind= 'bar', height=4, aspect=.7)\n", + " plt.show()" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "a11nwzJKbNE-" + }, + "source": [ + "### Variável 'sex'" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "j56d6Z6ZbQ2m" + }, + "source": [ + "Vamos avaliar o preenchimento desta variável." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "5X-0G4xNbU_b", + "outputId": "4f602695-5eb0-4b4e-a7bf-ad996fdac034", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 272 + } + }, + "source": [ + "df['sex'].value_counts()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "male 833\n", + "female 458\n", + "m 4\n", + "M 3\n", + "f 2\n", + "W 1\n", + "MALE 1\n", + "w 1\n", + "Woman 1\n", + "F 1\n", + "fEMALE 1\n", + "Men 1\n", + "mALE 1\n", + "Female 1\n", + "Name: sex, dtype: int64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 237 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "eS2lsALObZwX" + }, + "source": [ + "Qual sua opinião sobre esse preenchimento?\n", + "\n", + "Algum problema?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "AYQCZ9HObhXk" + }, + "source": [ + "Aqui temos vários problemas... Olhando para estes resultados, você concorda que 'male', 'm', 'MALE', M', 'mALE' e 'Men' se trata da mesma informação?\n", + "\n", + "Da mesma forma, 'female', 'f', 'F', 'Female', 'fEMALE', 'Woman', 'w' e 'W' também se trata da mesma informação?\n", + "\n", + "Então, vamos fazer o seguinte:\n", + "\n", + "Toda vez que eu encontrar um desses valores: ['m', 'MALE', 'M', 'mALE', 'Men'], vou substituir por 'male'; Toda vez que eu encontrar um desses valores: ['f', 'F', 'Female', 'fEMALE', 'Woman', 'w', 'W'], vou substituit por 'female'. O comando a seguir faz estas substituições:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "hQx_tNBQblst" + }, + "source": [ + "Definindo o dicionário para fazermos as substituições dos valores inconsistentes:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "LPZzQwRfbnSi", + "outputId": "b8f78b06-59b2-4843-e7cd-9378f86a1df1", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 255 + } + }, + "source": [ + "dSex= {}\n", + "dSex.update(dict.fromkeys(['m', 'MALE', 'M', 'mALE', 'Men', 'male'], 'male'))\n", + "dSex.update(dict.fromkeys(['f', 'F', 'Female', 'fEMALE', 'Woman', 'w', 'W', 'female'], 'female'))\n", + "dSex" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "{'F': 'female',\n", + " 'Female': 'female',\n", + " 'M': 'male',\n", + " 'MALE': 'male',\n", + " 'Men': 'male',\n", + " 'W': 'female',\n", + " 'Woman': 'female',\n", + " 'f': 'female',\n", + " 'fEMALE': 'female',\n", + " 'female': 'female',\n", + " 'm': 'male',\n", + " 'mALE': 'male',\n", + " 'male': 'male',\n", + " 'w': 'female'}" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 238 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YQ3lwKRKbsx0" + }, + "source": [ + "Aplica a transformação:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "idBwRNI7bvCC", + "outputId": "4b83067f-3096-4425-cf46-e7eb365c5e56", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + } + }, + "source": [ + "df['sex2']= df['sex'].map(dSex)\n", + "df['sex2'].value_counts()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "male 843\n", + "female 466\n", + "Name: sex2, dtype: int64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 239 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FzDl78rfb3p5" + }, + "source": [ + "Qual a conclusão? Este preenchimento faz mais sentido que o anterior?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YPOpGyCpb_Yy" + }, + "source": [ + "**Atenção:** Os comandos abaixo são uma alternativa ao map() aplicado anteriormente para corrigir os atributos da variável 'Sex':\n", + "\n", + "```\n", + "df['Sex2'] = df['Sex'].replace(['m', 'MALE', 'M', 'mALE', 'Men'], 'male')\n", + "df['Sex3'] = df['Sex2'].replace(['f', 'F', 'Female', 'fEMALE', 'Woman', 'w', 'W'], 'female') \n", + "df.Sex3.value_counts()\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "muDUjFZecMAK" + }, + "source": [ + "Ok, de fato corrigimos os problemas de preenchimento da variável 'sex'. então, vamos renomear nossa variável para o que tínhamos antes:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "iWiYCTj8b1Dq", + "outputId": "9f36189e-58a0-4b47-bbb2-a123a8a6ee11", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 371 + } + }, + "source": [ + "# Deleta as variáveis 'sex':\n", + "df= df.drop(columns= ['sex'], axis= 1)\n", + "\n", + "# Renomea a variável auxiliar 'sex2' para 'sex':\n", + "df= df.rename(columns= {'sex2': 'sex'})\n", + "\n", + "# Mostra os dados:\n", + "df.head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\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", + " \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", + " \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", + " \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", + " \n", + "
survivedpclassnameagesibspparchfarecabinembarkedsurvived2sex
PassengerId
10.03Braund, Mr. Owen Harris22.0107.2500NaNSDiedmale
21.01Cumings, Mrs. John Bradley (Florence Briggs Th...38.01071.2833C85CSurvivedfemale
31.03Heikkinen, Miss. Laina26.0007.9250NaNSSurvivedfemale
41.01Futrelle, Mrs. Jacques Heath (Lily May Peel)35.01053.1000C123SSurvivedfemale
50.03Allen, Mr. William Henry35.0008.0500NaNSDiedmale
\n", + "
" + ], + "text/plain": [ + " survived pclass ... survived2 sex\n", + "PassengerId ... \n", + "1 0.0 3 ... Died male\n", + "2 1.0 1 ... Survived female\n", + "3 1.0 3 ... Survived female\n", + "4 1.0 1 ... Survived female\n", + "5 0.0 3 ... Died male\n", + "\n", + "[5 rows x 11 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 240 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "XxKmFfe9cSxE", + "outputId": "22eed0ae-4d82-4d36-984d-c34ea9987709", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 386 + } + }, + "source": [ + "sns.catplot(x=\"sex\", kind=\"count\", data=df)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 241 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\nrkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-tYbYZW1V_eO" + }, + "source": [ + "### Variável 'cabin'\n", + "* No caso da variável 'cabin', vamos construir as variáveis 'deck' e 'seat'" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "GCflGdANp4jU", + "outputId": "1bc2cf22-9273-4a5f-d78f-4a4f83b341b2", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + } + }, + "source": [ + "set(df['cabin'])" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "{'A10',\n", + " 'A11',\n", + " 'A14',\n", + " 'A16',\n", + " 'A18',\n", + " 'A19',\n", + " 'A20',\n", + " 'A21',\n", + " 'A23',\n", + " 'A24',\n", + " 'A26',\n", + " 'A29',\n", + " 'A31',\n", + " 'A32',\n", + " 'A34',\n", + " 'A36',\n", + " 'A5',\n", + " 'A6',\n", + " 'A7',\n", + " 'A9',\n", + " 'B10',\n", + " 'B101',\n", + " 'B102',\n", + " 'B11',\n", + " 'B18',\n", + " 'B19',\n", + " 'B20',\n", + " 'B22',\n", + " 'B24',\n", + " 'B26',\n", + " 'B28',\n", + " 'B3',\n", + " 'B30',\n", + " 'B35',\n", + " 'B36',\n", + " 'B37',\n", + " 'B38',\n", + " 'B39',\n", + " 'B4',\n", + " 'B41',\n", + " 'B42',\n", + " 'B45',\n", + " 'B49',\n", + " 'B5',\n", + " 'B50',\n", + " 'B51 B53 B55',\n", + " 'B52 B54 B56',\n", + " 'B57 B59 B63 B66',\n", + " 'B58 B60',\n", + " 'B61',\n", + " 'B69',\n", + " 'B71',\n", + " 'B73',\n", + " 'B77',\n", + " 'B78',\n", + " 'B79',\n", + " 'B80',\n", + " 'B82 B84',\n", + " 'B86',\n", + " 'B94',\n", + " 'B96 B98',\n", + " 'C101',\n", + " 'C103',\n", + " 'C104',\n", + " 'C105',\n", + " 'C106',\n", + " 'C110',\n", + " 'C111',\n", + " 'C116',\n", + " 'C118',\n", + " 'C123',\n", + " 'C124',\n", + " 'C125',\n", + " 'C126',\n", + " 'C128',\n", + " 'C130',\n", + " 'C132',\n", + " 'C148',\n", + " 'C2',\n", + " 'C22 C26',\n", + " 'C23 C25 C27',\n", + " 'C28',\n", + " 'C30',\n", + " 'C31',\n", + " 'C32',\n", + " 'C39',\n", + " 'C45',\n", + " 'C46',\n", + " 'C47',\n", + " 'C49',\n", + " 'C50',\n", + " 'C51',\n", + " 'C52',\n", + " 'C53',\n", + " 'C54',\n", + " 'C55 C57',\n", + " 'C6',\n", + " 'C62 C64',\n", + " 'C65',\n", + " 'C68',\n", + " 'C7',\n", + " 'C70',\n", + " 'C78',\n", + " 'C80',\n", + " 'C82',\n", + " 'C83',\n", + " 'C85',\n", + " 'C86',\n", + " 'C87',\n", + " 'C89',\n", + " 'C90',\n", + " 'C91',\n", + " 'C92',\n", + " 'C93',\n", + " 'C95',\n", + " 'C97',\n", + " 'C99',\n", + " 'D',\n", + " 'D10 D12',\n", + " 'D11',\n", + " 'D15',\n", + " 'D17',\n", + " 'D19',\n", + " 'D20',\n", + " 'D21',\n", + " 'D22',\n", + " 'D26',\n", + " 'D28',\n", + " 'D30',\n", + " 'D33',\n", + " 'D34',\n", + " 'D35',\n", + " 'D36',\n", + " 'D37',\n", + " 'D38',\n", + " 'D40',\n", + " 'D43',\n", + " 'D45',\n", + " 'D46',\n", + " 'D47',\n", + " 'D48',\n", + " 'D49',\n", + " 'D50',\n", + " 'D56',\n", + " 'D6',\n", + " 'D7',\n", + " 'D9',\n", + " 'E10',\n", + " 'E101',\n", + " 'E12',\n", + " 'E121',\n", + " 'E17',\n", + " 'E24',\n", + " 'E25',\n", + " 'E31',\n", + " 'E33',\n", + " 'E34',\n", + " 'E36',\n", + " 'E38',\n", + " 'E39 E41',\n", + " 'E40',\n", + " 'E44',\n", + " 'E45',\n", + " 'E46',\n", + " 'E49',\n", + " 'E50',\n", + " 'E52',\n", + " 'E58',\n", + " 'E60',\n", + " 'E63',\n", + " 'E67',\n", + " 'E68',\n", + " 'E77',\n", + " 'E8',\n", + " 'F',\n", + " 'F E46',\n", + " 'F E57',\n", + " 'F E69',\n", + " 'F G63',\n", + " 'F G73',\n", + " 'F2',\n", + " 'F33',\n", + " 'F38',\n", + " 'F4',\n", + " 'G6',\n", + " 'T',\n", + " nan}" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 242 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7E6yje89u7KF" + }, + "source": [ + "Como podemos ver, trata-se de uma variável categórica com vários níveis. Portanto, vamos capturar somente a primeira letra da variável 'cabin'. Para tal, vamos utilizar a função slice().\n", + "\n", + "> slice() - Get substring from a given string using slice object;" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "wmZLlSaArR6F" + }, + "source": [ + "A seguir, capturamos a primeira letra da variável 'Cabin':" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "hUZTJU0MvVxP", + "outputId": "1b05c1a5-65af-4d90-9a51-696ee929af48", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 170 + } + }, + "source": [ + "# definindo a variável 'deck' que representará a primeira letra da variável 'cabin'\n", + "df[\"deck\"] = df[\"cabin\"].str.slice(0,1) # slice(inicio, tamanho_da_string)\n", + "df['deck'].value_counts()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "C 94\n", + "B 65\n", + "D 46\n", + "E 41\n", + "A 22\n", + "F 21\n", + "G 5\n", + "T 1\n", + "Name: deck, dtype: int64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 243 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6myhrth0rZ6t" + }, + "source": [ + "A seguir, vamos extrair a parte numérica da variável 'cabin' usando Expressões Regulares:\n", + "\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "8UXkACPmsfwN" + }, + "source": [ + "# Importar a biblioiteca para Expressões Regulares\n", + "import re" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "QKk-fnW4rf4o", + "outputId": "1c9c1b59-19ce-4e10-80ea-61b80a9443fd", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + } + }, + "source": [ + "# Primeiramente, usamos a função split() para separar o conteúdo da variável em colunas: \n", + "new = df[\"cabin\"].str.split(\" \", n= 3, expand = True) \n", + "new.head(5)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\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", + " \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", + " \n", + " \n", + " \n", + " \n", + "
0123
PassengerId
1NaNNaNNaNNaN
2C85NoneNoneNone
3NaNNaNNaNNaN
4C123NoneNoneNone
5NaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " 0 1 2 3\n", + "PassengerId \n", + "1 NaN NaN NaN NaN\n", + "2 C85 None None None\n", + "3 NaN NaN NaN NaN\n", + "4 C123 None None None\n", + "5 NaN NaN NaN NaN" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 245 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dFqoR-Xew9gX" + }, + "source": [ + "Observe acima que o comando gera quantos splits da variável eu quiser. No entanto, por simplicidade, me interessa somente o primeiro split." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_M7vA6WoVG05" + }, + "source": [ + "Agora, vou extrair o número do assento do passageiro usando Expressões Regulares:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "rVH5o9KT_IH3", + "outputId": "fbb20adc-123a-4e37-f163-2c980568598f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 136 + } + }, + "source": [ + "# Aqui está o conteúdo de new[0]:\n", + "new[0].head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "PassengerId\n", + "1 NaN\n", + "2 C85\n", + "3 NaN\n", + "4 C123\n", + "5 NaN\n", + "Name: 0, dtype: object" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 246 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "P7NTcsGOxxSX", + "outputId": "61481b94-bf2c-4259-894b-95e34abc7483", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + } + }, + "source": [ + "new2= new[0].str.extract('(\\d+)')\n", + "new2.head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0
PassengerId
1NaN
285
3NaN
4123
5NaN
\n", + "
" + ], + "text/plain": [ + " 0\n", + "PassengerId \n", + "1 NaN\n", + "2 85\n", + "3 NaN\n", + "4 123\n", + "5 NaN" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 247 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "bf8vw2Mc18bQ" + }, + "source": [ + "Por fim, vou carregar esta informação ao dataframe df:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "6l6EoRvsxRXn", + "outputId": "760b25ed-ee3a-4a5e-da60-61eaee32c5a8", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 527 + } + }, + "source": [ + "df[\"seat\"]= new2\n", + "df.head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
survivedpclassnameagesibspparchfarecabinembarkedsurvived2sexdeckseat
PassengerId
10.03Braund, Mr. Owen Harris22.0107.2500NaNSDiedmaleNaNNaN
21.01Cumings, Mrs. John Bradley (Florence Briggs Th...38.01071.2833C85CSurvivedfemaleC85
31.03Heikkinen, Miss. Laina26.0007.9250NaNSSurvivedfemaleNaNNaN
41.01Futrelle, Mrs. Jacques Heath (Lily May Peel)35.01053.1000C123SSurvivedfemaleC123
50.03Allen, Mr. William Henry35.0008.0500NaNSDiedmaleNaNNaN
\n", + "
" + ], + "text/plain": [ + " survived pclass ... deck seat\n", + "PassengerId ... \n", + "1 0.0 3 ... NaN NaN\n", + "2 1.0 1 ... C 85\n", + "3 1.0 3 ... NaN NaN\n", + "4 1.0 1 ... C 123\n", + "5 0.0 3 ... NaN NaN\n", + "\n", + "[5 rows x 13 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 248 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LK4V61uy3N9s" + }, + "source": [ + "Por fim, excluir a variável 'cabin':" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "4uAr55J43NY7" + }, + "source": [ + "df= df.drop(columns= [\"cabin\"], axis=1, errors=\"ignore\")" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qZuH7YJXZCgY" + }, + "source": [ + "### Variável 'embarked'" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "nTPikhrIZGya", + "outputId": "fd84dd6a-7289-40d1-feab-9e5191b91258", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 85 + } + }, + "source": [ + "df['embarked'].value_counts()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "S 914\n", + "C 270\n", + "Q 123\n", + "Name: embarked, dtype: int64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 250 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ixbZsuqOZsOc", + "outputId": "f7ace000-ed9d-455a-a4ce-a8722ecb9dd3", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 386 + } + }, + "source": [ + "sns.catplot(x=\"embarked\", kind=\"count\", data=df)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 251 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n3JLUzP8DH9rOtI0QD4kAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VvdU8aAwZNvG" + }, + "source": [ + "Não vejo problemas com esta variável. Vamos em frente..." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QBWfecCEF9ie" + }, + "source": [ + "### Variável 'pclass'" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "5TajFI92F_UI", + "outputId": "b762b729-d4c2-4e80-9dd2-334f67ea72ec", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 85 + } + }, + "source": [ + "df['pclass'].value_counts()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "3 709\n", + "1 323\n", + "2 277\n", + "Name: pclass, dtype: int64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 252 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "atG9HFsYGNHE" + }, + "source": [ + "Algum problema com esta variável?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "hdBdLzIPg3xD", + "outputId": "c6e49200-d76b-4025-9331-4ba999a09b3f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 386 + } + }, + "source": [ + "sns.catplot(x=\"pclass\", kind=\"count\", data=df)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 253 + }, + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW4AAAFgCAYAAACbqJP/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAE6RJREFUeJzt3X+s3fV93/HnKxhKSxMMyZ3n2kZk\nq0XE2obQW0pGV3WwdEDXGHUpSdoGl3lyJ5EokaatbJXatc3aZF2bAZ2QrJLUTmlSSpLhUURnOfRX\nFiAmOEAwGbeozPYMvoQf+cHSiuzdP87nlpMb2xw6f++5H9/nQzo63+/nfM/hbV3p6S9fn3tOqgpJ\nUj9eMe0BJEkvj+GWpM4YbknqjOGWpM4YbknqjOGWpM4YbknqjOGWpM4YbknqzKppD/D/49JLL607\n77xz2mNI0vGSSQ7q+oz7qaeemvYIkrTkug63JK1EhluSOmO4JakzhluSOmO4JakzhluSOmO4Jakz\nhluSOmO4JakzhluSOmO4JakzhluSOtP1pwNKGs5FN1w07RFOGJ9616eO6+sNdsad5Jwke8duX0ry\nniRnJtmV5NF2f0Y7PkmuTzKX5IEk5w81myT1bLBwV9UXquq8qjoP+F7geeATwLXA7qraCOxu+wCX\nARvbbStw41CzSVLPluoa9yXAn1fV48AmYHtb3w5c0bY3ATtq5G5gdZK1SzSfJHVjqcL9NuAjbXtN\nVR1q208Aa9r2OmD/2HMOtLVvkGRrkj1J9szPzw81ryQtW4OHO8kpwJuB31/8WFUVUC/n9apqW1XN\nVtXszMzMcZpSkvqxFGfclwGfraon2/6TC5dA2v3htn4Q2DD2vPVtTZI0ZinC/XZevEwCsBPY3LY3\nA7eNrV/V3l1yIfDc2CUVSVIz6Pu4k5wGvAn4mbHl9wG3JNkCPA5c2dbvAC4H5hi9A+XqIWeTpF4N\nGu6q+irw6kVrX2T0LpPFxxZwzZDzSNKJwF95l6TOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTO\nGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J\n6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6syg\n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\nrkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Qrnc6VUKSTNp" + }, + "source": [ + "### Variável 'parch'" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "2i4ed-0zSvJc", + "outputId": "029427d3-2436-4fe8-f957-9b8ec2baf4ec", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 170 + } + }, + "source": [ + "df['parch'].value_counts()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0 1002\n", + "1 170\n", + "2 113\n", + "3 8\n", + "5 6\n", + "4 6\n", + "9 2\n", + "6 2\n", + "Name: parch, dtype: int64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 254 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "qd7u__6KZ6DM", + "outputId": "b9638d31-849f-4888-fe06-a39852a1a9ce", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 386 + } + }, + "source": [ + "sns.catplot(x=\"parch\", kind=\"count\", data=df)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 255 + }, + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW4AAAFgCAYAAACbqJP/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAE7FJREFUeJzt3X+w3XV95/HnSyJFaAWEuywmOGFa\nxmrddqG3lJYu7cKujdQaxqJju2qWZSe7W3SxdFppO1NYd5zR2VpFbZlJCTZU6o+CltRxUAYQW2el\nBqWCRNcMrSYZMBcF/DXWYt/7x/kEjpgbTuo953s+3Odj5s79fr/ne895R5lnvvme8/3eVBWSpH48\nZegBJEmHxnBLUmcMtyR1xnBLUmcMtyR1xnBLUmcMtyR1xnBLUmcMtyR1Zs3QA0zDhg0b6sYbbxx6\nDEk6VJlkpyflEfcDDzww9AiSNDVPynBL0pOZ4ZakzhhuSeqM4ZakzhhuSeqM4ZakzhhuSeqM4Zak\nzhhuSeqM4Zakzkwt3EmuTrIvyd1j256R5KYkn2/fj23bk+StSXYl+XSS08Z+ZlPb//NJNk1rXknq\nxTSPuP8U2PC4bZcCN1fVKcDNbR3gBcAp7WszcCWMQg9cBvw0cDpw2f7YS9JqNbW7A1bVR5Osf9zm\njcAvtOVtwEeA17bt11RVAR9PckySE9u+N1XVVwCS3MToL4N3HcosP/lb1/yL/gzfrzv+zysHeV1J\nT26zPsd9QlXd15bvB05oy2uB3WP77Wnbltv+PZJsTrIjyY6lpaWVnVqS5shgb062o+tawefbUlWL\nVbW4sLCwUk8rSXNn1uH+UjsFQvu+r23fC5w0tt+6tm257ZK0as063NuB/Z8M2QTcMLb9le3TJWcA\nD7dTKh8Cnp/k2Pam5PPbNklatab25mSSdzF6c/H4JHsYfTrkDcB7k1wIfAF4adv9g8C5wC7gm8AF\nAFX1lST/G/hE2+91+9+olKTVapqfKvnVZR465wD7FnDRMs9zNXD1Co4mSV3zyklJ6ozhlqTOGG5J\n6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozh\nlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTO\n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\nmCRr2lH1OmBv238vcBKwJ8ka4Gjgy7MfW5Lmw8yPuKvqd6pqXVWtB14G3FJV/wm4FTi/7bYJuKEt\nb2/rtMdvqaqa4ciSNFfm6XPcrwUuSbKL0TnsrW37VuC4tv0S4NKB5pOkuTDEqZJHVdVHgI+05XuB\n0w+wz7eAl8x0MEmaY/N0xC1JmoDhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozh\nlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTO\nGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J\n6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozhlqTOGG5J6ozh\nlqTOGG5J6szMw53kpCS3JrknyWeSXNy2PyPJTUk+374f27YnyVuT7Ery6SSnzXpmSZonQxxxPwL8\nZlU9FzgDuCjJc4FLgZur6hTg5rYO8ALglPa1Gbhy9iNL0vyYebir6r6q+mRb/hqwE1gLbAS2td22\nAee15Y3ANTXyceCYJCfOeGxJmhuDnuNOsh44FbgdOKGq7msP3Q+c0JbXArvHfmxP2/b459qcZEeS\nHUtLS1ObWZKGNli4k/wgcD3wmqr66vhjVVVAHcrzVdWWqlqsqsWFhYUVnFSS5ssg4U7yVEbRvraq\n3tc2f2n/KZD2fV/bvhc4aezH17VtkrQqDfGpkgBbgZ1V9YdjD20HNrXlTcANY9tf2T5dcgbw8Ngp\nFUladdYM8JpnAq8A7kpyZ9v2u8AbgPcmuRD4AvDS9tgHgXOBXcA3gQtmO64kzZeZh7uq/gbIMg+f\nc4D9C7hoqkNJUke8clKSOmO4JakzhluSOjPEm5Nqvvi6fzPI6z7r9+8a5HUlrQyPuCWpM4Zbkjpj\nuCWpM4ZbkjpjuCWpM4ZbkjpjuCWpM4ZbkjpjuCWpM4ZbkjpjuCWpM4ZbkjpjuCWpM4ZbkjpjuCWp\nM96PW9/jzLedOcjrfuzVHxvkdaXeeMQtSZ0x3JLUGcMtSZ0x3JLUGcMtSZ0x3JLUGcMtSZ0x3JLU\nGcMtSZ0x3JLUGcMtSZ0x3JLUGcMtSZ0x3JLUGcMtSZ0x3JLUGcMtSZ0x3JLUGcMtSZ0x3JLUGcMt\nSZ0x3JLUGcMtSZ0x3JLUGcMtSZ0x3JLUGcMtSZ0x3JLUGcMtSZ1ZM/QAk0qyAbgCOAy4qqreMPBI\nmrHbzvr5QV735z962yCvKy2ni3AnOQz4I+A/AnuATyTZXlX3DDuZVru3/+ZfDfbar3rTLy/72Otf\nfv4MJ/luv/fO6wZ77dWii3ADpwO7qupegCTvBjYChlvqyM7X3zLI6z7n984+6OOXX375bAZZoddN\nVa3sJFOQ5HxgQ1X917b+CuCnq+pVY/tsBja31WcDn1uhlz8eeGCFnmslOdehca7JzeNMsDrmeqCq\nNjzRTr0ccT+hqtoCbFnp502yo6oWV/p5v1/OdWica3LzOBM417hePlWyFzhpbH1d2yZJq04v4f4E\ncEqSk5McDrwM2D7wTJI0iC5OlVTVI0leBXyI0ccBr66qz8zo5Vf89MsKca5D41yTm8eZwLke1cWb\nk5Kkx/RyqkSS1BhuSeqM4T6IJBuSfC7JriSXDj0PQJKrk+xLcvfQs4xLclKSW5Pck+QzSS6eg5mO\nSPK3Sf6uzfS/hp5pXJLDknwqyQeGnmW/JP+Q5K4kdybZMfQ8+yU5Jsl1ST6bZGeSnxl6JoAkFye5\nu/339ZqZva7nuA+sXWb//xi7zB741aEvs09yFvB14Jqqet6Qs4xLciJwYlV9MskPAXcA5w35v1eS\nAEdV1deTPBX4G+Diqvr4UDONS3IJsAg8vapeOPQ8MAo3sFhVc3WhS5JtwF9X1VXtk2VHVtVDA8/0\nPODdjK7s/jZwI/Dfq2rXtF/bI+7lPXqZfVV9m9H/QRsHnomq+ijwlaHneLyquq+qPtmWvwbsBNYO\nPFNV1dfb6lPb11wcqSRZB/wScNXQs8y7JEcDZwFbAarq20NHu3kOcHtVfbOqHgFuA148ixc23Mtb\nC+weW9/DwCHqRZL1wKnA7cNO8ujpiDuBfcBNVTX4TM1bgN8G/nnoQR6ngA8nuaPdRmIenAwsAe9o\np5auSnLU0EMBdwP/LslxSY4EzuW7LxScGsOtFZXkB4HrgddU1VeHnqeqvlNV/5bR1bant3/eDirJ\nC4F9VXXH0LMcwM9V1WnAC4CL2qm5oa0BTgOurKpTgW8Ag7/nVFU7gTcCH2Z0muRO4DuzeG3DvTwv\nsz9E7Tzy9cC1VfW+oecZ1/5pfSvwhDfwmYEzgRe188nvBs5O8s5hRxqpqr3t+z7g/YxOGQ5tD7Bn\n7F9L1zEK+eCqamtV/WRVnQU8yOh9sakz3MvzMvtD0N4I3ArsrKo/HHoegCQLSY5py09j9EbzZ4ed\nCqrqd6pqXVWtZ/Tf1S1V9fKBxyLJUe2NZdqpiOczOh0wqKq6H9id5Nlt0znMyS2dk/yr9v1ZjM5v\n//ksXreLS96HMPBl9stK8i7gF4Djk+wBLquqrcNOBYyOIl8B3NXOKQP8blV9cMCZTgS2tU8IPQV4\nb1XNzUfv5tAJwPtHfwezBvjzqrpx2JEe9Wrg2nYQdS9wwcDz7Hd9kuOAfwIumtWbpn4cUJI646kS\nSeqM4ZakzhhuSeqM4ZakzhhuSeqM4ZZWUJL183bnRj35GG7pXyCJ10BoMIZbq1Y7Ov5skmvbPZ6v\nS3Jkkt9P8ol2n+Ut7apQknwkyVvafaovTnJCkve3+33/XZKfbU99WJI/afdo/nC7alNaMYZbq92z\ngT+uqucAXwV+HXh7Vf1Uu9/504Dxe2UfXlWLVfUm4K3AbVX1E4zunbH/ytpTgD+qqh8DHgJ+ZUZ/\nFq0Shlur3e6q+lhbfifwc8C/T3J7kruAs4EfG9v/PWPLZwNXwqN3IXy4bf/7qtp/2f8dwPppDa/V\nyfN0Wu0ef8+HAv6Y0W+B2Z3kcuCIsce/McFz/uPY8ncYHbVLK8Yjbq12zxr7/YW/xujXmwE80O4t\nfv5BfvZm4H/Ao7+w4ejpjSk9xnBrtfsco18YsBM4ltGpjz9hdDvTDzG6ve9yLmZ0WuUuRqdEnjvl\nWSXAuwNqFWu/Yu0D8/RLl6VJeMQtSZ3xiFuSOuMRtyR1xnBLUmcMtyR1xnBLUmcMtyR15v8DHTPO\ndbcumhYAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Z9vM3vktC7BG" + }, + "source": [ + "#### Exercício:\n", + "* Criar o atributo 'sozinho_parch', onde sozinho= 1 significa que o passageiro viaja sozinho e 0, caso contrário." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Nd4TyOYjs-HW" + }, + "source": [ + "# Função para retornar 0 ou 1 em função dos valores de variavel\n", + "def sozinho(variavel):\n", + " if (variavel == 0):\n", + " return 1\n", + " else:\n", + " return 0" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "5oByiBuos_B3", + "outputId": "ca493249-7147-4273-e3ac-cf22ff8ecec7", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 527 + } + }, + "source": [ + "df['sozinho_parch'] = df['parch'].map(sozinho)\n", + "df.head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
survivedpclassnameagesibspparchfareembarkedsurvived2sexdeckseatsozinho_parch
PassengerId
10.03Braund, Mr. Owen Harris22.0107.2500SDiedmaleNaNNaN1
21.01Cumings, Mrs. John Bradley (Florence Briggs Th...38.01071.2833CSurvivedfemaleC851
31.03Heikkinen, Miss. Laina26.0007.9250SSurvivedfemaleNaNNaN1
41.01Futrelle, Mrs. Jacques Heath (Lily May Peel)35.01053.1000SSurvivedfemaleC1231
50.03Allen, Mr. William Henry35.0008.0500SDiedmaleNaNNaN1
\n", + "
" + ], + "text/plain": [ + " survived pclass ... seat sozinho_parch\n", + "PassengerId ... \n", + "1 0.0 3 ... NaN 1\n", + "2 1.0 1 ... 85 1\n", + "3 1.0 3 ... NaN 1\n", + "4 1.0 1 ... 123 1\n", + "5 0.0 3 ... NaN 1\n", + "\n", + "[5 rows x 13 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 257 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "C1ICby1oSd41" + }, + "source": [ + "### Variável 'sibsp'" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "5n7JNEQqTNjz", + "outputId": "dc13b210-2928-488d-84e9-22a36929848a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 153 + } + }, + "source": [ + "df['sibsp'].value_counts()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0 891\n", + "1 319\n", + "2 42\n", + "4 22\n", + "3 20\n", + "8 9\n", + "5 6\n", + "Name: sibsp, dtype: int64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 258 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "NLfMhiy0x4u5" + }, + "source": [ + "* Algum problema?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "nayYFRK9g8iV", + "outputId": "feb5e2e5-a924-49ee-8f1c-7d3f56745e5f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 386 + } + }, + "source": [ + "sns.catplot(x=\"sibsp\", kind=\"count\", data=df)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 259 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_58rZqMaDzf-" + }, + "source": [ + "#### Exercício:\n", + "* Criar o atributo 'sozinho_sibsp', onde sozinho= 1 significa que o passageiro viaja sozinho e 0, caso contrário." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "HUrJ4IywrEoA", + "outputId": "c2e6a80d-a2ba-4a47-ed3c-6e7c501eeb28", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 527 + } + }, + "source": [ + "df['sozinho_sibsp'] = df['sibsp'].map(sozinho)\n", + "df.head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
survivedpclassnameagesibspparchfareembarkedsurvived2sexdeckseatsozinho_parchsozinho_sibsp
PassengerId
10.03Braund, Mr. Owen Harris22.0107.2500SDiedmaleNaNNaN10
21.01Cumings, Mrs. John Bradley (Florence Briggs Th...38.01071.2833CSurvivedfemaleC8510
31.03Heikkinen, Miss. Laina26.0007.9250SSurvivedfemaleNaNNaN11
41.01Futrelle, Mrs. Jacques Heath (Lily May Peel)35.01053.1000SSurvivedfemaleC12310
50.03Allen, Mr. William Henry35.0008.0500SDiedmaleNaNNaN11
\n", + "
" + ], + "text/plain": [ + " survived pclass ... sozinho_parch sozinho_sibsp\n", + "PassengerId ... \n", + "1 0.0 3 ... 1 0\n", + "2 1.0 1 ... 1 0\n", + "3 1.0 3 ... 1 1\n", + "4 1.0 1 ... 1 0\n", + "5 0.0 3 ... 1 1\n", + "\n", + "[5 rows x 14 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 260 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0MO9jj2NvGp_" + }, + "source": [ + "### Variável 'fare'" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "UuWlMV6XvQHs" + }, + "source": [ + "Transformações: arredondar variável Fare." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "boAj64RHvQHu" + }, + "source": [ + "df['fare']= round(df['fare'], 0)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3CIqHUJpvcPa" + }, + "source": [ + "### Variável 'age'" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VULFXjvap3qZ" + }, + "source": [ + "Transformações: arredondar variável 'age'." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "kpNhCRxcp7h9" + }, + "source": [ + "df['age']= round(df['age'], 0)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "B0fZMKKpdHIl" + }, + "source": [ + "## Derivar outros atributos/features" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "H6n6PzWjoSYf" + }, + "source": [ + "### Variável 'mv_age':\n", + "* Variável (dummy) que assume os valores 1, se o valor de age> 0 e 0, caso contrário." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "QluOnZD7kHFW", + "outputId": "26077a35-f1ea-4d12-bf39-3733787d9168", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 527 + } + }, + "source": [ + "df.head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
survivedpclassnameagesibspparchfareembarkedsurvived2sexdeckseatsozinho_parchsozinho_sibsp
PassengerId
10.03Braund, Mr. Owen Harris22.0107.0SDiedmaleNaNNaN10
21.01Cumings, Mrs. John Bradley (Florence Briggs Th...38.01071.0CSurvivedfemaleC8510
31.03Heikkinen, Miss. Laina26.0008.0SSurvivedfemaleNaNNaN11
41.01Futrelle, Mrs. Jacques Heath (Lily May Peel)35.01053.0SSurvivedfemaleC12310
50.03Allen, Mr. William Henry35.0008.0SDiedmaleNaNNaN11
\n", + "
" + ], + "text/plain": [ + " survived pclass ... sozinho_parch sozinho_sibsp\n", + "PassengerId ... \n", + "1 0.0 3 ... 1 0\n", + "2 1.0 1 ... 1 0\n", + "3 1.0 3 ... 1 1\n", + "4 1.0 1 ... 1 0\n", + "5 0.0 3 ... 1 1\n", + "\n", + "[5 rows x 14 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 263 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qKMVIXGDsNkh" + }, + "source": [ + "Para construir a variável 'mv_age', vamos utilizar a função pd.isna(). Por exemplo, o comando abaixo verifica se cada linha/observação da variável 'age' é um NaN." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "UHzKFytXsNkh", + "outputId": "45bc64e2-5708-493a-9e2e-3f2ac06c37ab", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "df['age'].isna().sum()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "263" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 264 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lW4NYZrjsNkk" + }, + "source": [ + "A seguir, criamos uma variável auxiliar intitulada 'mv_aux', que receberá 'True', caso 'age' seja NaN e 'False', caso contrário.\n", + "\n", + "Veja abaixo:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-bTvVuVpsNkl", + "outputId": "3efb4a54-5d14-40f1-b620-5fb9cdbeff72", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 527 + } + }, + "source": [ + "df['mv_aux']= df['age'].isna()\n", + "df.head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + "
survivedpclassnameagesibspparchfareembarkedsurvived2sexdeckseatsozinho_parchsozinho_sibspmv_aux
PassengerId
10.03Braund, Mr. Owen Harris22.0107.0SDiedmaleNaNNaN10False
21.01Cumings, Mrs. John Bradley (Florence Briggs Th...38.01071.0CSurvivedfemaleC8510False
31.03Heikkinen, Miss. Laina26.0008.0SSurvivedfemaleNaNNaN11False
41.01Futrelle, Mrs. Jacques Heath (Lily May Peel)35.01053.0SSurvivedfemaleC12310False
50.03Allen, Mr. William Henry35.0008.0SDiedmaleNaNNaN11False
\n", + "
" + ], + "text/plain": [ + " survived pclass ... sozinho_sibsp mv_aux\n", + "PassengerId ... \n", + "1 0.0 3 ... 0 False\n", + "2 1.0 1 ... 0 False\n", + "3 1.0 3 ... 1 False\n", + "4 1.0 1 ... 0 False\n", + "5 0.0 3 ... 1 False\n", + "\n", + "[5 rows x 15 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 265 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "R_gk5S4nsNko", + "outputId": "0f69dcb5-75e6-4280-da3d-bab15059d47c", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 527 + } + }, + "source": [ + "# Adiciona a nova coluna baseado no dicionario \n", + "df['mv_age'] = df['mv_aux'].map({True: 1, False: 0})\n", + "df.head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
survivedpclassnameagesibspparchfareembarkedsurvived2sexdeckseatsozinho_parchsozinho_sibspmv_auxmv_age
PassengerId
10.03Braund, Mr. Owen Harris22.0107.0SDiedmaleNaNNaN10False0
21.01Cumings, Mrs. John Bradley (Florence Briggs Th...38.01071.0CSurvivedfemaleC8510False0
31.03Heikkinen, Miss. Laina26.0008.0SSurvivedfemaleNaNNaN11False0
41.01Futrelle, Mrs. Jacques Heath (Lily May Peel)35.01053.0SSurvivedfemaleC12310False0
50.03Allen, Mr. William Henry35.0008.0SDiedmaleNaNNaN11False0
\n", + "
" + ], + "text/plain": [ + " survived pclass ... mv_aux mv_age\n", + "PassengerId ... \n", + "1 0.0 3 ... False 0\n", + "2 1.0 1 ... False 0\n", + "3 1.0 3 ... False 0\n", + "4 1.0 1 ... False 0\n", + "5 0.0 3 ... False 0\n", + "\n", + "[5 rows x 16 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 266 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "IHzMcHl8sNkq" + }, + "source": [ + "Deleta a variável auxiliar 'mv_aux':" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "DYKh0uMYsNks", + "outputId": "ddcc284c-af6f-4761-8dc4-bc25e4ac94b2", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 527 + } + }, + "source": [ + "df= df.drop(columns= ['mv_aux'], axis=1)\n", + "df.head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + "
survivedpclassnameagesibspparchfareembarkedsurvived2sexdeckseatsozinho_parchsozinho_sibspmv_age
PassengerId
10.03Braund, Mr. Owen Harris22.0107.0SDiedmaleNaNNaN100
21.01Cumings, Mrs. John Bradley (Florence Briggs Th...38.01071.0CSurvivedfemaleC85100
31.03Heikkinen, Miss. Laina26.0008.0SSurvivedfemaleNaNNaN110
41.01Futrelle, Mrs. Jacques Heath (Lily May Peel)35.01053.0SSurvivedfemaleC123100
50.03Allen, Mr. William Henry35.0008.0SDiedmaleNaNNaN110
\n", + "
" + ], + "text/plain": [ + " survived pclass ... sozinho_sibsp mv_age\n", + "PassengerId ... \n", + "1 0.0 3 ... 0 0\n", + "2 1.0 1 ... 0 0\n", + "3 1.0 3 ... 1 0\n", + "4 1.0 1 ... 0 0\n", + "5 0.0 3 ... 1 0\n", + "\n", + "[5 rows x 15 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 267 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "34-Qbd_QrC8W" + }, + "source": [ + "Qual a relação entre a variável 'mv_age' e a variável-resposta?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "bhY8-UjyrC8Z", + "outputId": "f9c29d9b-3ba4-4eb4-ffa6-1f8b6d55a264", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 383 + } + }, + "source": [ + "Avalia_Taxa_Sobrevivencia(df, 'mv_age')" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "survived2 Died Survived All\n", + "mv_age \n", + "0 424 290 714\n", + "1 125 52 177\n", + "All 549 342 891\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEZCAYAAAB4hzlwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XmYHVWZx/HvrzsBgmHThJCFLMiu\nQDDNoghGcFgcbAYFkiBxRpgJy4ABHBxGCRCEGUHGBWSA6DABJYRNpEVHGBEQ2bsBgSQgESQJJCYB\nEkhMJEm/80edLi5N9+0b6Lo36fw+z9NP13ar3rq3br33nFN1ShGBmZkZQF2tAzAzs3WHk4KZmeWc\nFMzMLOekYGZmOScFMzPLOSmYmVnOScFykg6VNLsG210g6ZNV2tZvJI1Zi+VPl/SKpD1qsf0u1vWw\npOO6Y109iaSNJS2TNKjWsayPnBRqIB2wbX+tklaUjH+x1vG9F5KGS/qZpMWSlkp6al3cl4g4MCJu\nrGTZlAj2AxqAb0vqU83t10JK0H9Jx+ICST+StGmt41obEfHXiOgbEa/UOpb1kZNCDaQDtm9E9AXm\nAJ8rmXZ9reN7j24AngO2BfoBXwYWdfdGJPXq7nV2JiJ+HxFHR8QrEXFwRKyo1rZr7OB0bO4N7A98\nrcbxdCtJ9bWOYV3mpLAOkrSfpEckLUlVF99tOxlK+rSkhZIGpvG9JL0u6cNp/FxJL0p6U9Izkv62\nzHY+IOn6tJ2ngT3bzd9W0u3p1/8Lkk7qZD0i+zX9PxGxIiJWRURLRNxVsswXJM1M2/q1pB3areYT\nkp6V9JqkKZI2Tq87VNJsSZMk/Rm4Mk0/MpVGlki6X9Kuafp5kn7SLr6rJV2Shh+WdJykTdOv4e1L\nlhucSm1bldtGmrdA0hnpPV6a3seNSuYfnV77pqTnJR1Uuv00vLOke9M+L5J0raTNynxef5vWtUTS\nd9rNq5c0WdIcSX+WdE3butLnPD1tZ0k6trbqbDttImIOcBfw0bSeE9Nn9Gb6TI4v2f42kn6V1v+q\npN+UzJskab6kNyTNkrR/mt7pcd7B/n5P7arLUjzPpf36haTBafomkkLSkDQ+XdJlku6StBz4uKQP\nSpqW3vcXJX0tHcdtn8vv0ue6SNJ1Xb1XPUpE+K+Gf8CfgM+0m7Y3sBdQD3wYmA2cVDL/P4H/BTYF\n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\n5yuY7f1rbW3V/Pnzd5ozZ84jjY2NDU1NTfNrHZO9zd9yK6u1tXXnAQMG9HJCsO5SV1fHwIED63r3\n7j0I+LfGxsZ+tY7J3uZvunXFJQTrdnV1daTHsW9GdgWcrSP8bTezWutd6wDsbW5TsLXT3Q8pr+Dq\nt/r6enbbbTdWrVpFr169+NKXvsQZZ5xBXV0dzc3NXHfddVx22WUVb3L06NFceumlNDR07+N/Nbl7\n35s4r7IrAy+66CKmTZtGfX09dXV1XH311eyzzz7va9tNTU3MnDmTs89+/z2g9O3bl2XLlr3v9Vh1\nOCnYOq9Pnz48+WR2+frChQs59thjeeONN5g8eTINDQ3dfnJfnzz00EPccccdPP7442y88cYsXryY\nt956q6LXrl69ml69Oj4FNDY20tjY2J2h2nrC1Ue2Xtl6662ZMmUKP/jBD4gI7r33Xg4//HAAli9f\nzvHHH8/ee+/Nnnvuye233w7AihUrGDt2LLvssgtHHnkkK1asqOUudKv58+fTr18/Nt54YwD69evH\noEGDGD58OIsXLwagubmZ0aNHA3D++eczfvx49ttvP8aPH8++++7LjBkz8vWNHj2a5uZmpk6dyqmn\nnsrSpUsZNmwYra1ZTyjLly9n2223ZdWqVfzxj3/k0EMPZdSoUey///48++yzALz44ot8/OMfZ7fd\nduOcc86p4rth3cFJwdY72223HWvWrGHhwoXvmH7RRRdx4IEH8uijj3LPPfdw1llnsXz5cq688ko2\n3XRTZs2axeTJk2lpaalR5N3v4IMPZu7cuey4446ccsop3HfffV2+ZubMmfz617/mhhtuYMyYMdx0\n001AlmDmz5//jpLXFltswciRI/P13nHHHRxyyCH07t2bCRMmcPnll9PS0sKll17KKaecAsDEiRM5\n+eSTefrppxk4cGABe21FclKwHuOuu+7iW9/6FiNHjmT06NGsXLmSOXPm8Nvf/pbjjjsOgN13353d\nd9+9xpF2n759+9LS0sKUKVPo378/Y8aMYerUqWVf09jYSJ8+fQA45phjuOWWWwC46aabOOqoo961\n/JgxY7jxxhsBmD59OmPGjGHZsmU8+OCDHH300YwcOZITTzyR+fOz2w0eeOABxo0bB8D48eO7a1et\nStymYOudF154gfr6erbeemtmzXr7+UARwa233spOO+1Uw+iqr76+ntGjRzN69Gh22203rr32Wnr1\n6pVX+axcufIdy3/gAx/IhwcPHsyHPvQhnnrqKW688Uauuuqqd62/sbGRr3/967z22mu0tLRw4IEH\nsnz5crbccsu8rac9dfcFCVY1LinYemXRokWcdNJJnHrqqe868RxyyCFcfvnltPXn9cQTTwBwwAEH\nMG3aNACeeeYZnnqqs16a1z+SNyn6AAAB/0lEQVTPPfcczz//fD7+5JNPMmzYMIYPH55Xk916661l\n1zFmzBguueQSli5d2mEpqm/fvuy1115MnDiRww8/nPr6ejbffHNGjBjBzTffDGQJ+fe//z0A++23\nH9OnTwfg+uuv75b9tOpxScHWTg06UFyxYgUjR47ML0kdP348Z5555ruWmzRpEqeffjq77747ra2t\njBgxgjvuuIOTTz6ZL3/5y+yyyy7ssssujBo1qpA4K72EtDstW7aM0047jSVLltCrVy+23357pkyZ\nwqxZszjhhBOYNGlS3sjcmaOOOoqJEycyadKkTpcZM2YMRx99NPfee28+7frrr+fkk0/mwgsvZNWq\nVYwdO5Y99tiD73//+xx77LFcfPHFHHHEEd20p1Yt7iXVymppaYmiTqK2YWtpaWHy5MlTgWuampru\nr3U8lnH1kZmZ5ZwUzMws56RgXYm2q1jMuktrayuuul43OSlYWXV1dc8uWLBgjRODdZfW1lbmz5/f\nunLlysW1jsXezVcfWVmtra0Hz5s37/5XXnlluK89t+4QEaxcufK166677sdAP+CNWsdkb3NSsLJG\njRo1r7GxcSdgAjAKWFPjkKzn+CDwO2BGVwta9fiSVKtIY2NjL2AwsEmtY7EeYwXwclNTk39orEOc\nFMzMLOeGZjMzyzkpmJlZzknBzMxy/w91op44Q8PhVAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "umQ3fIKlsNlN" + }, + "source": [ + "### Variável 'age_category'\n", + "* Construir a variável 'age_category' baseado na variável 'age'." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "W66GkyuKkhFe" + }, + "source": [ + "def Age_Category(age):\n", + " if (age <= 1):\n", + " return 1\n", + " elif (age <= 5):\n", + " return 2\n", + " elif(age <= 10):\n", + " return 3\n", + " elif (age <= 15):\n", + " return 4\n", + " elif (age <= 20):\n", + " return 5\n", + " elif (age <= 25):\n", + " return 6\n", + " elif(age < 30):\n", + " return 7\n", + " elif(age < 35):\n", + " return 8\n", + " elif(age < 40):\n", + " return 9\n", + " elif(age < 45):\n", + " return 10\n", + " elif(age < 50):\n", + " return 11\n", + " elif(age < 60):\n", + " return 12\n", + " elif(age < 70):\n", + " return 13\n", + " elif(age < 80):\n", + " return 14\n", + " else:\n", + " return 15" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "TnLzC6hCkuBL" + }, + "source": [ + "df['age_category'] = df['age'].map(Age_Category)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "kG8td6HPsNlP", + "outputId": "a1debdae-ae3e-41e4-fc8f-52696809fc11", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "set(df['age_category']) # Esse comando mostra os NaN's da variável" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 271 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "B_3s5cgxfNKQ" + }, + "source": [ + "### Variável 'title'\n", + "\n", + "* Para fins de Data Manipulation, vamos capturar o tratamento dos passageiros contido na variável 'Name'. Ou seja, 'Mr.', 'Mrs.', 'Miss' e etc...\n", + "\n", + "> Fonte: As funções get_title e title_map foram extraídas de https://www.kaggle.com/tjsauer/titanic-survival-python-solution" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gslSjRdDoJFY", + "outputId": "68f27f6d-d52b-48e8-c2e3-ad86acf44792", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 527 + } + }, + "source": [ + "df.head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
survivedpclassnameagesibspparchfareembarkedsurvived2sexdeckseatsozinho_parchsozinho_sibspmv_ageage_category
PassengerId
10.03Braund, Mr. Owen Harris22.0107.0SDiedmaleNaNNaN1006
21.01Cumings, Mrs. John Bradley (Florence Briggs Th...38.01071.0CSurvivedfemaleC851009
31.03Heikkinen, Miss. Laina26.0008.0SSurvivedfemaleNaNNaN1107
41.01Futrelle, Mrs. Jacques Heath (Lily May Peel)35.01053.0SSurvivedfemaleC1231009
50.03Allen, Mr. William Henry35.0008.0SDiedmaleNaNNaN1109
\n", + "
" + ], + "text/plain": [ + " survived pclass ... mv_age age_category\n", + "PassengerId ... \n", + "1 0.0 3 ... 0 6\n", + "2 1.0 1 ... 0 9\n", + "3 1.0 3 ... 0 7\n", + "4 1.0 1 ... 0 9\n", + "5 0.0 3 ... 0 9\n", + "\n", + "[5 rows x 16 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 272 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "nfIG6toGfhd5" + }, + "source": [ + "def get_title(name):\n", + " if '.' in name:\n", + " return name.split(',')[1].split('.')[0].strip()\n", + " else:\n", + " return 'Unknown'\n", + "\n", + "def title_map(title):\n", + " if title in ['Mr', 'Ms']:\n", + " return 1\n", + " elif title in ['Master']:\n", + " return 2\n", + " elif title in ['Ms','Mlle','Miss']:\n", + " return 3\n", + " elif title in [\"Mme\", \"Ms\", \"Mrs\"]:\n", + " return 4\n", + " elif title in [\"Jonkheer\", \"Don\", \"Sir\", \"the Countess\", \"Dona\", \"Lady\"]:\n", + " return 5\n", + " elif title in [\"Capt\", \"Col\", \"Major\", \"Dr\", \"Rev\"]:\n", + " return 6\n", + " else:\n", + " return 7" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7qNUwnCepe_x" + }, + "source": [ + "Captura o tratamento dos passageiros:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "r-Ltf33vgJ6Q", + "outputId": "930abc58-2b12-434e-9e93-c3da788dc000", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "df['title'] = df['name'].apply(get_title).apply(title_map) \n", + "set(df['title']) # Esse comando mostra os NaN's da variável" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "{1, 2, 3, 4, 5, 6}" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 274 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "D3hY0WVhpRYK" + }, + "source": [ + "Drop a coluna 'Name', pois não vamos mais precisar dela em nossas análises:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Y8i3xKCes5WF" + }, + "source": [ + "df= df.drop(columns= [\"name\"], axis=1)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7Sl1uFdwpW3y" + }, + "source": [ + "Apresenta o conteúdo do dataframe:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "2uFnw-pZpan-", + "outputId": "a72224f4-41de-406a-da4c-07be3c824184", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 410 + } + }, + "source": [ + "df.head(10)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \n", + "
survivedpclassagesibspparchfareembarkedsurvived2sexdeckseatsozinho_parchsozinho_sibspmv_ageage_categorytitle
PassengerId
10.0322.0107.0SDiedmaleNaNNaN10061
21.0138.01071.0CSurvivedfemaleC8510094
31.0326.0008.0SSurvivedfemaleNaNNaN11073
41.0135.01053.0SSurvivedfemaleC12310094
50.0335.0008.0SDiedmaleNaNNaN11091
60.03NaN008.0QDiedmaleNaNNaN111151
70.0154.00052.0SDiedmaleE46110121
80.032.03121.0SDiedmaleNaNNaN00022
91.0327.00211.0SSurvivedfemaleNaNNaN01074
101.0214.01030.0CSurvivedfemaleNaNNaN10044
\n", + "
" + ], + "text/plain": [ + " survived pclass age ... mv_age age_category title\n", + "PassengerId ... \n", + "1 0.0 3 22.0 ... 0 6 1\n", + "2 1.0 1 38.0 ... 0 9 4\n", + "3 1.0 3 26.0 ... 0 7 3\n", + "4 1.0 1 35.0 ... 0 9 4\n", + "5 0.0 3 35.0 ... 0 9 1\n", + "6 0.0 3 NaN ... 1 15 1\n", + "7 0.0 1 54.0 ... 0 12 1\n", + "8 0.0 3 2.0 ... 0 2 2\n", + "9 1.0 3 27.0 ... 0 7 4\n", + "10 1.0 2 14.0 ... 0 4 4\n", + "\n", + "[10 rows x 16 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 276 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ci5FKBazGidH" + }, + "source": [ + "### Variável 'family_size'\n", + "* As variáveis 'sibsp' e 'parch' estão relacionadas ao grupo familiar. Portanto, vamos criar a variável 'family_size', da seguinte forma:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "DICRTPxhGvt5" + }, + "source": [ + "df['family_size']= df['sibsp']+df['parch']+1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "6tLLmTrZhDvG", + "outputId": "6d120e96-a9b6-4291-d7ad-f64b3dba1c6a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 386 + } + }, + "source": [ + "sns.catplot(x=\"family_size\", kind=\"count\", data=df)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 278 + }, + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW4AAAFgCAYAAACbqJP/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAGBdJREFUeJzt3XvUXXWd3/H3RwJeGIcAPk0xoYVW\nimU5wy2lcZg6legIjALjAgZbJTJMM+3C22jrMDNdo2O1Szs6COqiiyVqUIuDeCFeirICaGcqOAGR\nq44RRRKBPHLzwnhBvv3j/FIPISEPkn3O80ver7XOOr/927+z95eQfJ79/M6+pKqQJPXjCdMuQJL0\n2BjcktQZg1uSOmNwS1JnDG5J6ozBLUmdMbglqTMGtyR1xuCWpM4smHYBj8fRRx9dl1566bTLkKTt\nJXMZ1PUR9/e+971plyBJE9d1cEvSzsjglqTOGNyS1BmDW5I6Y3BLUmcGDe4kf5TkpiQ3JrkwyZOS\n7J/k6iTrkvx1kt3a2Ce25XVt/X5D1iZJvRosuJMsBl4FLK2qZwG7AKcAbwPOqqpnAPcCp7ePnA7c\n2/rPauMkSZsZeqpkAfDkJAuApwB3AEcBF7f1q4ATWvv4tkxbvzzJnE5Gl6SdyWDBXVUbgLcD32EU\n2PcD1wD3VdWDbdh6YHFrLwZub599sI3fe6j6JKlXQ06V7MnoKHp/4OnA7sDR22G7K5OsTbJ2dnb2\n8W5Okroz5FTJ84BvVdVsVf0M+DhwJLCwTZ0ALAE2tPYGYF+Atn4P4O7NN1pV51XV0qpaOjMzM2D5\nkjQ/DRnc3wGWJXlKm6teDtwMXAGc2MasAC5p7dVtmbb+8qqqAeuTpC4NdnfAqro6ycXAtcCDwFeA\n84DPAB9J8ubWd377yPnAB5OsA+5hdAbKY3L4f7lge5Q+J9f85akT25ckjRv0tq5V9QbgDZt13woc\nsYWxPwZOGrIeSdoReOWkJHXG4JakzhjcktQZg1uSOmNwS1JnDG5J6ozBLUmdMbglqTMGtyR1xuCW\npM4Y3JLUGYNbkjpjcEtSZwxuSeqMwS1JnTG4JakzBrckdcbglqTOGNyS1BmDW5I6Y3BLUmcMbknq\njMEtSZ0xuCWpMwa3JHXG4JakzhjcktQZg1uSOjNYcCc5MMl1Y6/vJ3lNkr2SXJbkG+19zzY+Sc5J\nsi7J9UkOG6o2SerZYMFdVV+vqkOq6hDgcOAB4BPAmcCaqjoAWNOWAY4BDmivlcC5Q9UmST2b1FTJ\ncuCbVXUbcDywqvWvAk5o7eOBC2rkKmBhkn0mVJ8kdWNSwX0KcGFrL6qqO1r7TmBRay8Gbh/7zPrW\n9zBJViZZm2Tt7OzsUPVK0rw1eHAn2Q04Dvjo5uuqqoB6LNurqvOqamlVLZ2ZmdlOVUpSPyZxxH0M\ncG1V3dWW79o0BdLeN7b+DcC+Y59b0vokSWMmEdwv4RfTJACrgRWtvQK4ZKz/1HZ2yTLg/rEpFUlS\ns2DIjSfZHXg+8Idj3W8FLkpyOnAbcHLr/yxwLLCO0Rkopw1ZmyT1atDgrqofAXtv1nc3o7NMNh9b\nwBlD1iNJOwKvnJSkzhjcktQZg1uSOmNwS1JnDG5J6ozBLUmdMbglqTMGtyR1xuCWpM4Y3JLUGYNb\nkjpjcEtSZwxuSeqMwS1JnTG4JakzBrckdcbglqTOGNyS1BmDW5I6Y3BLUmcMbknqjMEtSZ0xuCWp\nMwa3JHXG4JakzhjcktQZg1uSOmNwS1JnBg3uJAuTXJzka0luSfLsJHsluSzJN9r7nm1skpyTZF2S\n65McNmRtktSroY+4zwYurapnAgcDtwBnAmuq6gBgTVsGOAY4oL1WAucOXJskdWmw4E6yB/Ac4HyA\nqvppVd0HHA+sasNWASe09vHABTVyFbAwyT5D1SdJvRryiHt/YBZ4f5KvJHlvkt2BRVV1RxtzJ7Co\ntRcDt499fn3re5gkK5OsTbJ2dnZ2wPIlaX4aMrgXAIcB51bVocCP+MW0CABVVUA9lo1W1XlVtbSq\nls7MzGy3YiWpF0MG93pgfVVd3ZYvZhTkd22aAmnvG9v6DcC+Y59f0vokSWMGC+6quhO4PcmBrWs5\ncDOwGljR+lYAl7T2auDUdnbJMuD+sSkVSVKzYODtvxL4cJLdgFuB0xj9sLgoyenAbcDJbexngWOB\ndcADbawkaTODBndVXQcs3cKq5VsYW8AZQ9YjSTsCr5yUpM4Y3JLUGYNbkjpjcEtSZwxuSeqMwS1J\nnTG4JakzBrckdcbglqTOGNyS1BmDW5I6Y3BLUmcMbknqjMEtSZ0xuCWpMwa3JHXG4JakzhjcktQZ\ng1uSOmNwS1JnDG5J6ozBLUmdMbglqTMGtyR1xuCWpM4Y3JLUGYNbkjozaHAn+XaSG5Jcl2Rt69sr\nyWVJvtHe92z9SXJOknVJrk9y2JC1SVKvJnHE/dyqOqSqlrblM4E1VXUAsKYtAxwDHNBeK4FzJ1Cb\nJHVnGlMlxwOrWnsVcMJY/wU1chWwMMk+U6hPkua1oYO7gM8nuSbJyta3qKruaO07gUWtvRi4feyz\n61vfwyRZmWRtkrWzs7ND1S1J89aCgbf/m1W1Ick/Ai5L8rXxlVVVSeqxbLCqzgPOA1i6dOlj+qwk\n7QgGPeKuqg3tfSPwCeAI4K5NUyDtfWMbvgHYd+zjS1qfJGnMYMGdZPckT93UBn4buBFYDaxow1YA\nl7T2auDUdnbJMuD+sSkVSVIz5FTJIuATSTbt539V1aVJ/g64KMnpwG3AyW38Z4FjgXXAA8BpA9Ym\nSd0aLLir6lbg4C303w0s30J/AWcMVY8k7Si8clKSOmNwS1JnDG5J6ozBLUmdMbglqTMGtyR1xuCW\npM4Y3JLUGYNbkjpjcEtSZwxuSeqMwS1JnTG4JakzBrckdWZOwZ1kzVz6JEnDe9T7cSd5EvAU4GlJ\n9gTSVv0qW3iQryRpeNt6kMIfAq8Bng5cwy+C+/vAuwesS5K0FY8a3FV1NnB2kldW1bsmVJMk6VHM\n6dFlVfWuJL8B7Df+maq6YKC6JElbMafgTvJB4J8D1wE/b90FGNySNGFzfVjwUuCg9kBfSdIUzfU8\n7huBfzxkIZKkuZnrEffTgJuTfBn4yabOqjpukKokSVs11+B+45BFSJLmbq5nlXxh6EIkSXMz17NK\nfsDoLBKA3YBdgR9V1a8OVZgkacvmesT91E3tJAGOB5YNVZQkaese890Ba+STwAsGqEeStA1znSp5\n8djiExid1/3jOX52F2AtsKGqXphkf+AjwN6M7n/ysqr6aZInMrqg53DgbuD3qurbc/0PkaSdxVyP\nuF809noB8ANG0yVz8WrglrHltwFnVdUzgHuB01v/6cC9rf+sNk6StJm5znGf9stsPMkS4HeAtwCv\nbfPjRwH/rg1ZxehUw3MZ/SB4Y+u/GHh3kni1piQ93FwfpLAkySeSbGyvj7VQ3pZ3Aq8HHmrLewP3\nVdWDbXk9v7iv92LgdoC2/v42fvNaViZZm2Tt7OzsXMqXpB3KXKdK3g+sZnRf7qcDn2p9W5XkhcDG\nqrrmcVW4mao6r6qWVtXSmZmZ7blpSerCXIN7pqreX1UPttcHgG2l5pHAcUm+zejLyKOAs4GFSTZN\n0SwBNrT2BmBfgLZ+D0ZfUkqSxsw1uO9O8tIku7TXS9lGqFbVn1TVkqraDzgFuLyq/j1wBXBiG7YC\nuKS1V7dl2vrLnd+WpEeaa3D/PnAycCdwB6Ngffkvuc8/ZvRF5TpGc9jnt/7zgb1b/2uBM3/J7UvS\nDm2uN5l6E7Ciqu4FSLIX8HZGgb5NVXUlcGVr3wocsYUxPwZOmmM9krTTmusR969vCm2AqroHOHSY\nkiRJj2auwf2EJHtuWmhH3HM9WpckbUdzDd93AF9K8tG2fBKji2okSRM21ysnL0iyltEpfQAvrqqb\nhytLkrQ1c57uaEFtWEvSlD3m27pKkqbL4JakzhjcktQZg1uSOmNwS1JnDG5J6ozBLUmdMbglqTMG\ntyR1xuCWpM4Y3JLUGYNbkjpjcEtSZwxuSeqMwS1JnTG4JakzBrckdcbglqTOGNyS1BmDW5I6Y3BL\nUmcMbknqzGDBneRJSb6c5KtJbkryF61//yRXJ1mX5K+T7Nb6n9iW17X1+w1VmyT1bMgj7p8AR1XV\nwcAhwNFJlgFvA86qqmcA9wKnt/GnA/e2/rPaOEnSZgYL7hr5YVvctb0KOAq4uPWvAk5o7ePbMm39\n8iQZqj5J6tWgc9xJdklyHbARuAz4JnBfVT3YhqwHFrf2YuB2gLb+fmDvLWxzZZK1SdbOzs4OWb4k\nzUuDBndV/byqDgGWAEcAz9wO2zyvqpZW1dKZmZnHXaMk9WYiZ5VU1X3AFcCzgYVJFrRVS4ANrb0B\n2Begrd8DuHsS9UlST4Y8q2QmycLWfjLwfOAWRgF+Yhu2AriktVe3Zdr6y6uqhqpPknq1YNtDfmn7\nAKuS7MLoB8RFVfXpJDcDH0nyZuArwPlt/PnAB5OsA+4BThmwNknq1mDBXVXXA4duof9WRvPdm/f/\nGDhpqHokaUfhlZOS1BmDW5I6Y3BLUmcMbknqjMEtSZ0xuCWpMwa3JHXG4JakzhjcktQZg1uSOmNw\nS1JnDG5J6ozBLUmdMbglqTMGtyR1xuCWpM4Y3JLUGYNbkjoz5DMnd1rfedOvTWxf/+TPb5jYviTN\nDx5xS1JnDG5J6ozBLUmdMbglqTMGtyR1xuCWpM4Y3JLUGYNbkjpjcEtSZwYL7iT7Jrkiyc1Jbkry\n6ta/V5LLknyjve/Z+pPknCTrklyf5LChapOkng15xP0g8LqqOghYBpyR5CDgTGBNVR0ArGnLAMcA\nB7TXSuDcAWuTpG4NFtxVdUdVXdvaPwBuARYDxwOr2rBVwAmtfTxwQY1cBSxMss9Q9UlSryYyx51k\nP+BQ4GpgUVXd0VbdCSxq7cXA7WMfW9/6Nt/WyiRrk6ydnZ0drGZJmq8GD+4kvwJ8DHhNVX1/fF1V\nFVCPZXtVdV5VLa2qpTMzM9uxUknqw6DBnWRXRqH94ar6eOu+a9MUSHvf2Po3APuOfXxJ65MkjRny\nrJIA5wO3VNVfja1aDaxo7RXAJWP9p7azS5YB949NqUiSmiEfpHAk8DLghiTXtb4/Bd4KXJTkdOA2\n4OS27rPAscA64AHgtAFrk6RuDRbcVfU3QLayevkWxhdwxlD1SNKOwisnJakzBrckdcbglqTOGNyS\n1BmDW5I6Y3BLUmcMbknqjMEtSZ0xuCWpM0Ne8q4pO/JdR050f3/7yr+d6P6knZVH3JLUGYNbkjpj\ncEtSZwxuSeqMwS1JnTG4JakzBrckdcbglqTOGNyS1BmDW5I6Y3BLUmcMbknqjMEtSZ0xuCWpMwa3\nJHXG4JakzhjcktSZwYI7yfuSbExy41jfXkkuS/KN9r5n60+Sc5KsS3J9ksOGqkuSejfkEfcHgKM3\n6zsTWFNVBwBr2jLAMcAB7bUSOHfAuiSpa4MFd1V9Ebhns+7jgVWtvQo4Yaz/ghq5CliYZJ+hapOk\nnk16jntRVd3R2ncCi1p7MXD72Lj1re8RkqxMsjbJ2tnZ2eEqlaR5ampfTlZVAfVLfO68qlpaVUtn\nZmYGqEyS5rdJB/ddm6ZA2vvG1r8B2Hds3JLWJ0nazKSDezWworVXAJeM9Z/azi5ZBtw/NqUiSRqz\nYKgNJ7kQ+LfA05KsB94AvBW4KMnpwG3AyW34Z4FjgXXAA8BpQ9UlSb0bLLir6iVbWbV8C2MLOGOo\nWiRpR+KVk5LUGYNbkjpjcEtSZwxuSeqMwS1JnTG4JakzBrckdcbglqTOGNyS1BmDW5I6Y3BLUmcM\nbknqjMEtSZ0xuCWpMwa3JHVmsPtxS+O+8Jzfmti+fuuLX5jYvqRp8IhbkjpjcEtSZwxuSeqMwS1J\nnTG4JakzBrckdcbTAaUpeMtLT5zo/v7sQxdPdH8alsGtncq7X/epie3rFe940cT2pZ2LUyWS1BmP\nuKWd3C1vuXxi+/qXf3bUxPa1I/OIW5I64xG3JI256KNHTHR/J5/05cf8mXkV3EmOBs4GdgHeW1Vv\nnXJJkibkjW984w65ryHMm6mSJLsA7wGOAQ4CXpLkoOlWJUnzz7wJbuAIYF1V3VpVPwU+Ahw/5Zok\nad5JVU27BgCSnAgcXVV/0JZfBvzrqnrFZuNWAivb4oHA1x/nrp8GfO9xbmN7mS+1WMcjzZdarOOR\n5kst26OO71XV0dsaNK/muOeiqs4Dztte20uytqqWbq/tPR7zpRbreKT5Uot1PNJ8qWWSdcynqZIN\nwL5jy0tanyRpzHwK7r8DDkiyf5LdgFOA1VOuSZLmnXkzVVJVDyZ5BfA5RqcDvq+qbprArrfbtMt2\nMF9qsY5Hmi+1WMcjzZdaJlbHvPlyUpI0N/NpqkSSNAcGtyR1ZqcN7iTvS7IxyY1TrmPfJFckuTnJ\nTUlePcVanpTky0m+2mr5i2nV0urZJclXknx6ijV8O8kNSa5LsnaKdSxMcnGSryW5Jcmzp1THge3P\nYtPr+0leM6Va/qj9Pb0xyYVJnjTBfT8iP5Kc1Op5KMmgpwXutMENfADY5onuE/Ag8LqqOghYBpwx\nxUv9fwIcVVUHA4cARydZNqVaAF4N3DLF/W/y3Ko6ZMrnCp8NXFpVzwQOZkp/LlX19fZncQhwOPAA\n8IlJ15FkMfAqYGlVPYvRCQ2nTLCED/DI/LgReDHwxaF3vtMGd1V9EbhnHtRxR1Vd29o/YPQPcvGU\naqmq+mFb3LW9pvLtdZIlwO8A753G/ueTJHsAzwHOB6iqn1bVfdOtCoDlwDer6rYp7X8B8OQkC4Cn\nAN+d1I63lB9VdUtVPd4ruedkpw3u+SjJfsChwNVTrGGXJNcBG4HLqmpatbwTeD3w0JT2v0kBn09y\nTbvdwjTsD8wC729TR+9NsvuUahl3CnDhNHZcVRuAtwPfAe4A7q+qz0+jlmkwuOeJJL8CfAx4TVV9\nf1p1VNXP26/BS4Ajkjxr0jUkeSGwsaqumfS+t+A3q+owRnetPCPJc6ZQwwLgMODcqjoU+BFw5hTq\n+P/aRXLHAR+d0v73ZHQTuv2BpwO7J3npNGqZBoN7HkiyK6PQ/nBVfXza9QC0X8WvYDrfAxwJHJfk\n24zuEnlUkg9NoY5NR3ZU1UZGc7mTvcv+yHpg/dhvPxczCvJpOga4tqrumtL+nwd8q6pmq+pnwMeB\n35hSLRNncE9ZkjCau7ylqv5qyrXMJFnY2k8Gng98bdJ1VNWfVNWSqtqP0a/jl1fVxI+mkuye5Kmb\n2sBvM/oCaqKq6k7g9iQHtq7lwM2TrmMzL2FK0yTNd4BlSZ7S/g0tZ358kT0RO21wJ7kQ+BJwYJL1\nSU6fUilHAi9jdFS56RSrY6dUyz7AFUmuZ3TvmMuqamqn4s0Di4C/SfJV4MvAZ6rq0inV8krgw+3/\nzSHAf59SHZt+iD2f0VHuVLTfPi4GrgVuYJRlk7vkfAv5keR3k6wHng18JsnnBtu/l7xLUl922iNu\nSeqVwS1JnTG4JakzBrckdcbglqTOGNyS1BmDW91K8qp2i9MPP87tvCnJ81r7yu11S852T5Fp3elR\nOzDP41a3knwNeF5Vrd+O27wS+M9VNbV7b0vb4hG3upTkfwL/DPjfSf44yZfanfP+76ZLw5O8PMkn\nk1zWHojwiiSvbeOuSrJXG/eBJCdutv3fT/LOseX/kOSsrdSye5LPtAdQ3Jjk91r/lUmWJjlu7KrY\nryf5Vlt/eJIvtDsPfi7JPsP8aWlHY3CrS1X1Hxndf/m5wLnAv2l3zvtzHn45+LMY3dz+XwFvAR5o\n474EnPoou7gIeFG7ARjAacD7tjL2aOC7VXVwu6n/wy6Lr6rVYw8f+Crw9rbddwEnVtXhbdtvmdt/\nvXZ2C6ZdgLQd7AGsSnIAo/tn7zq27or2gIofJLkf+FTrvwH49a1tsKp+mORy4IVJbgF2raobtjL8\nBuAdSd4GfLqq/s+WBiV5PfAPVfWedrvcZwGXje6RxC6M7istbZPBrR3Bf2MU0L/bHkZx5di6n4y1\nHxpbfoht//1/L/CnjO6Q+P6tDaqqv09yGHAs8OYka6rqTeNj2pefJzF6kg1AgJuqairPjlTfDG7t\nCPYANrT2y7fXRqvq6iT7Mrr39VaPzpM8Hbinqj6U5D7gDzZb/0+B9wAvqKp/aN1fB2aSPLuqvtSm\nTv5FVd20verXjsvg1o7gfzCaKvmvwGe287YvAg6pqnsfZcyvAX+Z5CHgZ8B/2mz9y4G9gU+2aZHv\nVtWx7QvRc9ozJRcwelybwa1t8nRA6VEk+TRwVlWtmXYt0iaeVSJtQZKFSf6e0ZeJhrbmFY+4pTlK\nsjewpRBfXlV3T7oe7bwMbknqjFMlktQZg1uSOmNwS1JnDG5J6sz/A4+9fj1otfugAAAAAElFTkSu\nQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "sxwSYcLBY1gy", + "outputId": "0b4ad32e-8d61-49fd-b022-adab64863a26", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "set(df['family_size']) # Esse comando mostra os NaN's da variável" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "{1, 2, 3, 4, 5, 6, 7, 8, 11}" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 279 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "s5LrvxqXo2uL" + }, + "source": [ + "# DataViz - Data Visualization" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "rJlcGd49vmkk", + "outputId": "8bd4559e-4ec7-499d-f664-cec23cab9e89", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 255 + } + }, + "source": [ + "df.head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
survivedpclassagesibspparchfareembarkedsurvived2sexdeckseatsozinho_parchsozinho_sibspmv_ageage_categorytitlefamily_size
PassengerId
10.0322.0107.0SDiedmaleNaNNaN100612
21.0138.01071.0CSurvivedfemaleC85100942
31.0326.0008.0SSurvivedfemaleNaNNaN110731
41.0135.01053.0SSurvivedfemaleC123100942
50.0335.0008.0SDiedmaleNaNNaN110911
\n", + "
" + ], + "text/plain": [ + " survived pclass age ... age_category title family_size\n", + "PassengerId ... \n", + "1 0.0 3 22.0 ... 6 1 2\n", + "2 1.0 1 38.0 ... 9 4 2\n", + "3 1.0 3 26.0 ... 7 3 1\n", + "4 1.0 1 35.0 ... 9 4 2\n", + "5 0.0 3 35.0 ... 9 1 1\n", + "\n", + "[5 rows x 17 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 282 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "htQ1dODRwfHw", + "outputId": "e7ea64a5-ff9e-4a2e-e4d9-d224192a4a7b", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 275 + } + }, + "source": [ + "df.plot.scatter('age','fare', s= 50, c= 'survived')" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 291 + }, + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAADxCAYAAADGO7BSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsnXd4lMX2x7+zm83WFAgtlFCj9JaA\nAt4AIkWQoFIUsCAoRVB/gHJRFEGUK6JwhQtK1yDCpYWiIL2JoPQOgiBEiARISNvNJtk9vz92szfL\ntneT3dTzeZ55su+8886c983unHfmnDkjiAgMwzBM+UVW3AIwDMMwxQsrAoZhmHIOKwKGYZhyDisC\nhmGYcg4rAoZhmHIOKwKGYZhyDisChmGYYkAIsVQIkSSEOOvivBBCzBFCXBFCnBZCtPaXLKwIGIZh\niodvAPRwc/5JAJHWNBzAV/4ShBUBwzBMMUBE+wEkuynSB0AcWTgMIFQIEe4PWQL8UWlRUalSJapT\np05xi8EwTCng2LFjd4mocmHqEEJ4E4rhHICsfMcLiWihF9fXAJCQ7/gva16iF3VIolQrgjp16uDo\n0aPFLQbDMKUAIcT1Im4yi4iii7jNAlGqFQHDMExRI4SQVM4HcdxuAqiV77imNc/nsI2AYRjGC2Qy\nmaTkAzYBeMnqPfQogFQi8vm0EMAjAoZhGMkIISR38iaTyVNdKwF0AlBJCPEXgA8BKACAiL4GsAVA\nTwBXAOgBvFJQuT3BioBhGMYLpE4NeYKIBno4TwBG+6QxD/DUEFNiOHjwIFq1agWVSoWgoCC0bNkS\nTZo0Qfv27fHNN98gOzu7uEVkGAghJKXSBI8ImBLBt99+iyFDhtiOjUYjTp06ZTs+ffo0Fi9ejF27\ndkGpVBaDhAxjobR18lLgEQFT7JjNZrz66qtuy2RmZuLEiRNYtGhREUnFMM4piyMCVgRMsRMfH4/c\n3FyP5fR6Pb76ym+r7BnGI0IIyOVySak0wVNDTLGTmCjdI+7+/ft+lIRhPFPa3valwCMCptjp3bu3\npHIymQyPPfaYn6VhGPfw1JCXCCH+FEKcEUKcFEIcteZVFELsEEJctv6tYM0vspCrTMmidu3aaNq0\nqcdyKpUKkyZNKgKJGMY5UpUAKwJHOhNRy3wxNyYC2EVEkQB2WY+BIgy5ypQ8jhw5giZNmjjk57mS\nVqlSBfHx8WjevHkxSMcw/6MsKoLisBH0gWU1HQB8C2AvgH8iX8hVAIeFEKFCiHB/LalmShYqlQpn\nz57F5cuXER8fj8qVK6N37944efIkdDod2rZt66tl+wxTKEqbIVgK/lYEBGC7NXTrAmsI1qr5Ove/\nAVS1fpYUclUIMRyWEQMiIiL8KDpTHERGRmLChAm24yeeeKIYpWEYe0rj274U/K0IHiOim0KIKgB2\nCCEu5j9JRORlfG9YlclCAIiOji50eD+GYRhvKIuKwK9jbSK6af2bBCAeQFsAt/N22bH+TbIWL7KQ\nqwzDMAWlLNoI/KYIhBBaIURQ3mcA3QCchSW06svWYi8D2Gj9XGQhVxmGYQpKWVQE/pwaqgog3vpA\nAgB8T0Q/CSGOAFgthBgG4DqAAdbyRRZylWEYpqCUtk5eCn5TBER0FUALJ/n3AHRxkl9kIVcZhmEK\nQl6IibIGh5hgGIbxAh4RMAzDlHNYETAMw5RjSqMhWAqsCBiGYbyAFQHDMEw5h43FDMMw5RieGmIY\nhmFYETAMw5R3WBEwDMOUc8piOHRWBAzDMBJhGwHDMAzDXkMMwzDlHR4RMAzDlGOEEGwjYBiGKe/w\niIBhGKacw4qAYRimHMNTQwzDMAx7DTEMw5R3eGqIYRimHMNTQwzDMEyZHBGUPdXGMAzjR/LCTHhK\nEurpIYS4JIS4IoSY6OR8hBBijxDihBDitBCip19uCDwiYBiGkYwQwifGYiGEHMA8AF0B/AXgiBBi\nExGdz1fsfQCriegrIURjAFsA1Cl0405gRcAwDOMFPrIRtAVwhYiuAoAQYhWAPgDyKwICEGz9HALg\nli8adgYrAoZhGC/wwkZQSQhxNN/xQiJaaP1cA0BCvnN/AXjkgeunANguhHgDgBbAE95LKw1WBAzD\nMBLxMgz1XSKKLkRzAwF8Q0RfCCHaAVguhGhKROZC1OkUVgQMwzBe4KOpoZsAauU7rmnNy88wAD0A\ngIgOCSFUACoBSPKFAPlhryGGYRgv8JHX0BEAkUKIukKIQADPA9j0QJkbALpY22wEQAXgjo9vBwCP\nCBiGYSTjK68hIsoVQowBsA2AHMBSIjonhPgIwFEi2gRgPIBFQoixsBiOhxARFbpxJ7AiYBiG8QJf\nLSgjoi2wuITmz5uc7/N5AB180pgH/D41JISQWxdE/GA9riuE+NW6iOK/1mERhBBK6/EV6/k6/paN\nYRjGW2QymaRUmigKad8CcCHf8QwAs4moAYAUWAwisP5NsebPtpZjGIYpMUi1D5S2MBR+VQRCiJoA\negFYbD0WAB4HsNZa5FsAT1s/97Eew3q+iyhtT5NhmDIPjwi8598AJgDI83sNA3CfiHKtx3/BsrAC\nyLfAwno+1VreDiHEcCHEUSHE0Tt3/GJAZxiGcQmPCLxACPEUgCQiOubLeoloIRFFE1F05cqVfVk1\nwzCMW/K8hqSk0oQ/vYY6AIi1RsxTwRIz40sAoUKIAOtbf/5FFHkLLP4SQgTAElvjnh/lYxiG8ZrS\n9rYvBb+NCIjoXSKqSUR1YFkssZuIBgPYA6CftdjLADZaP2+yHsN6fre/fGYZhmEKCk8N+YZ/Ahgn\nhLgCiw1giTV/CYAwa/44AA7xuRmGYYqTsuo1VCQLyohoL4C91s9XYQnB+mCZLAD9i0IehmGYglLa\nOnkp8MpihmEYLyhtrqFSYEXAMAzjBTwiYBiGKccIIXhEwDAMU97hEQHDMEw5hxUBwzBMOYcVAcMw\nTDmGbQQMwzAMjwgYhmHKO6wIGIZhyjmsCBiGYcoxpTGOkBRYETAMw3gBKwKGYZhyDnsNMQzDlHN4\nRMAwDFOOYRsBwzAMw4qAYRimvMOKgGEYppzDxmKGYZhyDNsIGIZhGFYEDMMw5R1WBAzDMOUcVgQM\nwzDlHFYEDMMw5RjemIZhGIYpk4qg7N0RwzCMH8lzIfWUJNTTQwhxSQhxRQgx0UWZAUKI80KIc0KI\n731+M1Z4RMAwDCMRX60jEELIAcwD0BXAXwCOCCE2EdH5fGUiAbwLoAMRpQghqhS6YRfwiIBhGMYL\nfDQiaAvgChFdJaJsAKsA9HmgzGsA5hFRCgAQUZLPb8YKKwKGYRgvkMlkkhKASkKIo/nS8HzV1ACQ\nkO/4L2tefh4C8JAQ4qAQ4rAQooe/7omnhhiGYbzAi6mhu0QUXYimAgBEAugEoCaA/UKIZkR0vxB1\nOsVvIwIhhEoI8ZsQ4pTV0DHVml9XCPGr1UDyXyFEoDVfaT2+Yj1fx1+yMQzDFASp00ISlMVNALXy\nHde05uXnLwCbiCiHiK4B+B0WxeBz/Dk1ZATwOBG1ANASQA8hxKMAZgCYTUQNAKQAGGYtPwxAijV/\ntrUcwzBMicJHiuAIgEjri3EggOcBbHqgzAZYRgMQQlSCZaroqm/vxoLfFAFZyLAeKqyJADwOYK01\n/1sAT1s/97Eew3q+iyiLS/gYhinV+EIREFEugDEAtgG4AGA1EZ0TQnwkhIi1FtsG4J4Q4jyAPQDe\nIaJ7TuRJF0KkuUpS7smvNgKri9QxAA1gcZX6A8B960MA7A0kNuMJEeUKIVIBhAG4+0CdwwEMB4CI\niAh/is8wDOOAr95PiWgLgC0P5E3O95kAjLMmd/UEWeWaBiARwHIAAsBgAOFSZPGr1xARmYioJSzz\nX20BNPRBnQuJKJqIoitXrlxoGRmGYaQihIBcLpeUioFYIppPROlElEZEX8HRJdUpReI+arVy7wHQ\nDkCoECJvJJLfQGIznljPhwBwGAYxDMMUJ75aWewHMoUQg4UQciGETAgxGECmlAv96TVUWQgRav2s\nhmUF3QVYFEI/a7GXAWy0ft5kPYb1/G7r0IhhGKbEUIIVwSAAAwDctqb+1jyP+NNGEA7gW6udQAaL\nMeQHq+FjlRDiYwAnACyxll8CYLkQ4gqAZFis6AzDMCWKkurDQkR/QuJU0IP4TREQ0WkArZzkX4XF\nXvBgfhYsGoxhGKZEUoxv+x4RQjwE4CsAVYmoqRCiOSx2g489XcshJhiGYbygBE8NLYIlSF0OYHsZ\nlzSzwiEmGIZhvKAE70egIaLfHlBCua4K54cVAcMwjBeU1KkhAHeFEPVhWbgLIUQ/WNYVeIQVAcMw\njEREyd6qcjSAhQAaCiFuArgGy6Iyj0hSBEKIxwBEEtEyIURlADprECSmmMnJycGRI0dgMpkQHR0N\ntVrtUMZsNuPYsWPIzMxEq1atEBISAgD47bffsHjxYty+fRsNGjRAcnIykpOT8dhjj2Ho0KEICwsr\n6tthmBJPCR4RXCeiJ4QQWgAyIkqXeqFHRSCE+BBANICHASyDJWbQdwA6FFBYxkd89913eOONN2A2\nmwFYOvypU6di3Lj/rUjftWsXXnzxRaSnp0MmkyE7OxujR49GTk4OFi9ejKysLNv1eezYsQMff/wx\n9u7di1atHBy/GKZcU4IVwTUhxE8A/gtgtzcXShkRPAOLG+hxACCiW0KIIK9FZHzKtm3bMGLECOj1\nerv8Dz74ABUqVMArr7yCM2fOIDY21qHMf/7zH5hMJuTmOrcjGQwGGAwGxMbG4vr16yV5KMwwRUoJ\nnxpqCOApWKaIlgghfgCwioh+9nShlDvKtq7wzTNAaAsjKeMbJk2a5NDBA4Ber8f7778PIsL06dOR\nlZXlUMZoNLpUAvlJTU3FL7/84hN5GaasUFLdR4lIT0SriehZWF7egwHsk3KtFEWwWgixAJYYQa8B\n2AmLvypTjJw6dcrlubt37+L+/fs4cOCAw7SPNwgh8Pfffxf4eoYpi5RURWCVraMQYj4sUZ9VsISc\n8IjHqSEi+lwI0RVAGix2gslEtKMwwjKFR6PRIC3NeahxIoJarUZISAhu3nxw0yPp5OTkoEmTJgW+\nnmHKIiXVRiCE+BOWsD2rYdm7QFLAOcDDiMAaxW4PEe0goneI6G1WAiWDl156CYGBgQ75MpkM3bt3\nh0qlwsiRI6HRaJxe7+nLrFAoEBUVhUaNGvlE3rIKEWHlypWIjo5GtWrV8Pjjj2PHDv6JlGVK8Iig\nORE9Q0QrvVECgAdFQEQmAGYhREihxGN8ztSpU1GzZk07d1GVSoWwsDDMmzcPADB8+HA0b97cThko\nFAoEBQVh5syZ0Gq1CAkJwfTp06HT6RAUFASNRgOtVouWLVtiw4YNRX5fpY3XXnsNr732Go4dO4bb\nt29jz549ePrppzFr1qziFo3xA1KVQFEqAiHEBOvHT4QQcx5MUuqQ4jWUAeCMEGIH8sW2JqI3vReZ\n8RUVK1bEyZMnsWjRIsTFxcFkMqFfv34YPXo0KlWqBABQKpXYt28f4uLisGjRIqSnp6Nbt24YN24c\nIiIiMGrUKJw8eRJt2rTB2LFjsXXrVty9exetWrVCdHR0Md9hyefIkSNYuXKlg9Fer9fjvffew4sv\nvgjePKnsUUybzrjjgvXv0YJWIDyF/BdCvOwsn4i+dZZflERHR9PRowW+d4YpFG+++SbmzZvn1CCv\n0Wjw73//G6+99loxSMY4QwhxjIgK9YZTu3ZtmjRpkqSyI0aMKHR73iCEaE1ExwtyrRRjcbF3+AxT\nEklLS3PplWUymZCZ6dU0LVMKKMlhqAF8IYSoBmAtgP8S0VmpF3p0HxVCRAoh1gohzgshrualwkjL\nMGWB7t27Q6fTOT0nl8sRExNTxBIxRYFMJpOUihoi6gygM4A7ABYIIc4IId6Xcq0UaZfBstlBrrWR\nOFhCTDBMuaZv376oXLkyAgLsB9YqlQqPPPIIWrduXUySMf6kpBmL80NEfxPRHAAjAZwEMFnKdVIU\ngZqIdsFiT7hORFMA9CqwpIzPuXXrFhISElBetngmIty4cQOJiZIi7AIAEhMTcePGDZ8+o8DAQBw6\ndAidO3eGSqVCcHAwVCoV+vXrh82bN/usHaZkUVIVgRCikRBiihDiDIC5AH4BUFPKtVIUgVEIIQNw\nWQgxRgjxDADn42GmSNm7dy8aNWqE+vXr4+GHH0adOnUQHx9f3GL5lVWrVqFmzZpo2LAh6tati2bN\nmrkNg3Hw4EE0bdoUdevWRcOGDREREYE1a9b4TJ6qVati+/btuHbtGvbt24dbt25h+fLl0Go5EktZ\nJC/WUEmcGgKwFEAKgO5E1ImIviKiJCkXujQWCyGWE9GLADYA0AB4E8A0AI8DcOpJxBQdv/32G3r1\n6mXnunjjxg288MIL+O9//4unnnqqGKXzD2vWrMGwYcPs7vns2bPo2rUrfvnlF7Ro0cKu/IkTJ9Ct\nWze78n/99ReGDBkCmUyGvn37+ky2atWqoVq1aj6rjym5lMSgc0IIOYBrRPRlQa53d0dRQojqsGxs\noACgBzAewKsAfi9IY4zvePfdd10GnRs/fnyZmyYiIowfP97pPRsMBnzwwQcO+e+//z4MBoNDvl6v\nx9tvv13mnhHjf0rigjLAtvi3lhDCMdyABNy5j34NYBeAerAEMBKwRCDN+1uvIA0yvuHAgQMuz127\ndg2pqakIDQ0tQon8S2JiIu7cueP0HBFh927H8Ot79+512dknJiYiKSkJVatW9amcTNmnBLuPXgNw\nUAixCfaLfz0uc3epCKyW5zlCiK+IaJRPxGR8hkKhQE5OjtNzRASFQlHEEvkXpVLpNpKqs7hL7p4B\nETm9hmE8UYIVwR/WJAPg1Z4xUhaUsRIogTz77LNYuXIlTCaTw7kOHTqUOWNlWFgYmjVrhmPHjjmc\nCwgIwPPPP++QP2DAACxbtszp3gutWrVChQoV/CIrU3YRQpTEEBMAACKaWtBrS57VgwFg2Xbyp59+\nwpgxYzB+/Hj8+uuvdtMc06dPR2hoqJ0Pu1wuR1BQEObOnVuksiYnJ+PLL7/EiBEj8MUXX7icwiks\nCxYsgE6nszPWKRQKhIWFYfJkR3fpKVOmoGLFinYjAyEEFAoFIiIisHnzZqeKlGHcURJtBFa59ggh\ndj+YJF1bmg1mZTXWUEZGBjp37oyLFy8iIyMDQghoNBo8+eSTWLVqle2N5ObNm/j444+xZs0amEwm\n9OzZE1OmTEFkZGSRybpnzx7ExsbCbDZDr9dDrVZDCIG1a9fiySef9Hl7Fy5cwJQpU7Bt2zYoFAo8\n//zzmDRpkkuPncTEREyfPh0rV660hYQgIpjNZuh0OtStWxf79+8vU/YUxjm+iDVUv359+vTTTyWV\nHTBgQFHHGorKd6gC0BdALhFNcHHJ/65lRVDyePXVV/Hdd9/BaDTa5Ws0GkyfPh1vvfVWMUlmT0ZG\nBsLDw5GRkeFwTqPRICEhARUrViwGyRxZtmwZ3njjDYf4P4GBgejTpw9Wr15dTJIxRYWvFMGMGTMk\nle3fv3+RKgJnCCF+I6K2nsrx1FAJIysrCytWrHBQAoDF7XH27NnFIJVz1qxZ49Irh4jw3XclJxLJ\nzJkznQaBy87OxqZNm5CamloMUjGljZK8oEwIUTFfqiSE6AFA0l4yUvYjYIqQlJQUt/OLJWkP4evX\nr7uMsGkwGPDHH38UsUSuuXXrlstzCoUCSUlJCAnh/ZcYz5Rgr6Fj+J+Lfw6APwEMk3IhjwhKGGFh\nYW7fJiIiIopQGvc89NBDLqNvarXaErXfcd26dV2ey83NRXh4eBFKw5RmSuqIAMA/AbQkoroAlsOy\nlsBxBaYT/CatEKKW1Yp9XghxTgjxljW/ohBihxDisvVvBWu+sG6tdkUIcVoIUS5DNwYGBmLEiBF2\nW1DmodFo8O677xaDVM559tlnXfriy+VyDBw4sIglcs2kSZOcutSqVCoMHjzYpUJjmPz4cmpICNFD\nCHHJ2udNdFOurxCChBCe7A3vE1GaEOIxWEIBLYYlcrRH/Km2cgGMJ6LGAB4FMFoI0RjARAC7iCgS\nlpXLeQ/gSQCR1jQcEm+gLPKvf/0LXbp0gUajgUKhgFKphEqlwquvvoohQ4YUt3g2VCoVdu7cibCw\nMAQFBUEul0On0yE0NBTbtm1DUJBXa1r8Sr9+/fDWW29BpVJBpVIhICAAGo0G7du3L3J3W6Z04wv3\nUWtsoHmw9HuNAQy09o8PlgsC8BaAXyWIlucL3QvAIiL6EYCkVZN+sxEQUSKAROvndCHEBQA1APQB\n0Mla7FsAe2EZ0vQBEEcW6+NhIUSoECLcWk+5IjAwEJs3b8apU6dsbpJPP/202+mN4qJVq1a4desW\nNm7ciMuXL6Nu3bp45plnoFKpils0Bz755BOMHDkS8fHxMBgM6NKlC+/NzHiNj2wEbQFcIaKr1jpX\nwdIHnn+g3DQAMwC8I6HOm0KIBQC6ApghhFBC4st+kRiLhRB1ALSCRatVzde5/w0gL9hLDQAJ+S77\ny5pnpwiEEMNhGTGUqPlyf9CiRQuHiJolkcDAQPTv37+4xZBErVq18Oabbxa3GEwpxgtFUEkIkd+/\nfSERLbR+dtbfPfJAO60B1CKiH4UQUhTBAAA9AHxORPeFEOGQpkD8rwiEEDoA6wD8n3X+ynaOiEgI\n4dVCBuuDXAhY1hH4UlaGYRhPeKEI7hZ0HYF1D5hZAIZIvYaI9ADW5zu2zcp4wq+KQAihgEUJrCCi\nPAFv5035WDVW3sYJNwHUynd5TWsewzBMicCHsYY89XdBAJoC2GtVPNUAbBJCxBKRz1fR+tNrSABY\nAuDCA2FQN+F/G9u8DGBjvvyXrN5DjwJILY/2AYZhSjY+ijV0BECkEKKudQ+B52HpAwEARJRKRJWI\nqA4R1QFwGIBflADg3xFBBwAvAjgjhDhpzXsPwKcAVgshhgG4Dsu8FgBsAdATwBVYfF9f8aNsDMMw\nBcIXxmIiyhVCjAGwDYAcwFIiOieE+AjAUSLa5L4G3+JPr6GfYVnh5owuTsoTgNH+kodhGKaw5K0j\n8AVEtAWWF+D8eY5hdC35nXzSqAs4xATDMIwXlOAQEwWGFQHDMIwXsCJgGIYp55RFRcBB5xi/8euv\nv+KZZ55BvXr1EBMTg/Xr17sMW12cGI1GfP3112jVqhXq16+P4cOH48qVK8UtFlMCkeoxVNqUBY8I\nGL/w7bff4vXXX4fBYAAR4dq1azh+/DgGDRqEhQsXeq6giDAajejcuTNOnToFvd4SqPHGjRv4/vvv\nsWPHDrRr166YJWRKGqWtk5cCjwgYn5OWloZRo0ZBr9fbjQAyMzOxYsUKHD58uBils2fp0qV2SgCw\nhKXOzMzE4MGDS+QIhileyuKIgBUB43M2b97scvVlVlYWli1bVsQSuWbBggV2SiA/SUlJOHfuXBFL\nxJR0yqIi4Kkhxuekp6fDZDI5PWc2m5GcnOyXds1mM37//XcIIRAZGSnJ3zs9Pd3lOblc7vZ8UZKV\nlYXLly8jJCSkzAdbLOmUtk5eCuVqRGA2m7FmzRrExMTg4YcfxosvvoizZ88Wt1hFRk5ODpYtW4ZH\nHnkEDRs2xKhRo/yynWSHDh1c/lh0Oh26du3q8zbXrVuHmjVrIjo6GlFRUahVqxbi4+M9Xte5c2cE\nBDh/H8rJyUHTpk19LapXmM1mTJ06FZUrV0aHDh3w8MMPo1WrVjhz5kyxylVeKavGYhBRqU1RUVEk\nFbPZTM899xxptVqCZV9PksvlpNFoaPPmzZLrKa1kZ2dTx44d7e4/ICCAtFot/fLLLz5vr0uXLqRS\nqWxtASCZTEZVq1aljIwMn7a1detW0mg0dm0BII1GQ9u3b3d77e+//273TPJf+8477/hUzoIwceJE\np/cWHBxMCQkJxS1eqQKW0A2F6nMaNmxIhw4dkpR80V5RpXIzIti+fTt++OEHu83WTSYT9Ho9Xnjh\nBWRnZxejdP7nu+++w9GjR+3uP88oOnDgQJ8bRTdu3IjevXtDpVIhJCQEarUa0dHROHz4sNMtIwvD\nhAkTnM7z6/V6TJgwwe21kZGR2L59O+rUqQOtVmuTdfTo0fj00099Kqe3pKen48svv3R6b1lZWZg9\ne3YxSMWUxRFBubERLFy40K4TzA8RYffu3ejRo0cRS1V0zJ8/3+X93717F2fOnEHz5s191p5Wq8Xq\n1auRlJSEy5cvIzw8HPXq1fNZ/Xnk5OS4nd47deoUcnNzXU7/AED79u1x9epVnDt3DmlpaWjWrFmJ\n2Gbz+PHjLu0c2dnZ+PHHH/HFF18UsVRMaevkpVBuFMHdu3ddniMipKamFqE0RY+7+wsICPDb/Vep\nUgVVqlTxS92AxaArl8uRm5vr9HxAQICk+PFCiGK3BzyISqVy6dEEAAaDoQilYQDfBp0rSZS9O3JB\nt27dXO6jm5OTg7Zt2xaxREWLO6Oo0WhEs2bNilgi3yCTydC7d2+nP06ZTIann366TL7BMcVHWZwa\nKjeKYPjw4U4VgUqlQs+ePUvkxvC+5J133oFSqXTI12g0eO211xAaGloMUtmj1+uxdOlSDBw4ECNH\njsTUqVMxaNAgjBo1CocPH3Zpx5g1axYqVKgAhUJhy1MoFKhQoQJmzpxZVOL7HIPBALVa7fK8u3MM\n4w3lZmqocuXKOHDgAPr3748bN25AoVDAaDTi2WefxeLFi4tbPL/ToEEDbNu2DYMGDUJycjLkcjmM\nRiOGDRuGWbNmea7Az/z5559o164dMjIykJGRYXdOJpNh+fLlGDBgAJYsWeLwtlWnTh3s3LkTw4YN\nw6lTp0BECAsLg0wmQ0xMDJ555hlMmDAB1atX97ncRITVq1fjiy++wM2bN9GoUSO8++676NLFYcsN\nr4mKinKp/BQKBXr16lXoNhjvKW1v+1IQvvYWKUqio6Pp6FHvd247d+4c7ty5g8aNG/t1/rokQkQ4\ndeoUUlNT0aJFixIxEgCAtm3b4tixYzCbzS7LaLVaLFq0CAMHDrTLv3HjBqKiopCWlubU+yswMBA6\nnQ5HjhzxucF6+PDh+P777+0M8RqNBtOnT8dbb71V6PrfffddzJkzx8FWEBwcjHPnzqFmzZqFbqO8\nIIQ4RgXcTD6Pxo0b04oVKyTLPLTgAAAgAElEQVSVbd26daHbKyrKzdRQfpo0aYJOnTqVOyUAWN5m\nWrZsiY4dO5YYJXDlyhWcPXvWrRIALLGKnI1exo0bh+TkZJcuwNnZ2bh//z7eeOMNn8ibx9GjR7Fi\nxQoHbyy9Xo+JEyfizp07hW7jk08+wYQJE6DT6RAUFASVSoUWLVrgwIEDrASKCbYRMIwfuHXrFgID\nAyWXzY/ZbMamTZs8KhGz2YwdO3bAaDQWWM4HiYuLQ1ZWltNzcrkcGzduLHQbMpkMH374Ie7cuYOD\nBw/i0qVLOHnypE9dfRnp5HkNSUmliXJjI2BKLpGRkZI76CZNmtgdm0wml66jD0JEyM7Odmo0Lwhp\naWkuFVBubq6DraMwqFSqUuvZVdYobW/7UihdaqsUQ0Q4fPgwvvzyS3zzzTe4f/++03Lnzp3D3Llz\nsXDhQty+fbuIpSwewsPD0aNHD48dtEajwXvvvWeXp1Ao0KhRI0ntREREQKfTFVjOB+nWrZvL+uRy\nOWJiYnzWFlNy4KkhpkCkpKTg0UcfxRNPPIF//vOfGDNmDKpXr464uDhbGaPRiNjYWLRp0wYTJkzA\n2LFjUadOHXz88cfFKHnRERcXh7Zt20Kj0di5geYnMjISnTp1csj/7LPPPLpSajQafPbZZz79gfbt\n2xdhYWEO6zNUKhXatm2L1q1b+6wtpuTAioApEM8//zxOnjyJzMxMGI1GZGZmwmAwYNSoUTh+/DgA\nYPz48di5cycMBgOysrKg1+uRlZWFf/3rX9iwYUMx34H/CQoKwv79+7F//36X4R1OnTrlNKRCr169\nsGTJElSuXBk6nQ5KpRIymQxKpRJBQUGoVKkSvvrqK/Tt29enMiuVShw6dAj/+Mc/oFKpEBwcDJVK\nhWeeeQabN2/2aVsM40/KpftoUXL9+nU0bNjQqVFRJpPZfOMrVarkMmRAVFQUfH2fRIQffvgBX331\nFe7cuYNOnTrhzTffRK1atXzWxsWLFzF79mwcO3YMtWvXxptvvomOHTu6veaPP/5AgwYNXJ6vUKGC\ny/0MTCYTzp07ByEEGjVqhIsXL8JkMqFp06aSwkwUhlu3biExMRF169ZFxYoV/doWUzB84T7atGlT\nWr16taSyTZo0YfdRxsLvv//ucu7bbDbj9OnTuHXrltuO6vLly7bPly5dwjPPPAOVSgWVSoU+ffrg\nwoULXslkNpsxcOBADBw4EFu3bsXRo0cxZ84cNG7c2GfbSG7cuBFRUVFYunQpjh07hvj4ePTq1cth\njv9BDh065PZ8/phIZ86cQa9evaBSqaDRaDBo0CBotVo0a9YMAQEBaNq0KVq0aOF3JQAA1atXR1RU\nFCuBckBZ9BoqXdKWQmrUqIGcnByX52vXro3KlSu7LVOtWjUAwIULF9CqVSts2LABRqMRRqMRmzdv\nRtu2bb3aqGTjxo0OIbmzs7ORkZGB/v37FzokdWZmJgYNGgS9Xm/z6CEiZGZm4ssvv8SJEydcXtu4\ncWO3deeFCTl27BjatWuHrVu3wmg0wmAwYO3atYiKivLLZjsMkwfbCBivady4MRo0aOD0DUGr1WLs\n2LEICQlBz549nfrSazQajBs3DgDw0ksvOUwfEREyMjJsZaTgLiT1/fv38dtvv0muKz9msxkzZsxA\neHi4y6iZRqMRS5YscVlH69at3S50e/XVVwEAY8aMQWZmpp3SMpvNSE9Px7vvvlsg+RlGCqwImAKx\nfv16myETsLgWqtVqvP7667ZtGxctWoQ6derYygghoNVq0bNnT7z22mswm81u7QR79uyR7E+flJTk\n8pxcLi/wnsJDhw7FRx995HafX5PJhMTERLf17Nmzx+l0zkMPPYTZs2cjMzPT5bMwm81sqGX8Rlnd\nqpIXlBUB9evXx9WrV7Fq1Srs3r0blStXxpAhQ9CiRQtbmbCwMJw9exYbNmzADz/8AI1GgxdeeAHt\n27eHEMLt1BHwvy1HpRATE4MLFy44rTMrK8tOLqlcvnwZq1ev9hgjX6PROHUBzU/Lli2RnJyMiRMn\n4qeffoJOp8PYsWPxyiuvALAoE3c/NE+rjBmGscdvikAIsRTAUwCSiKipNa8igP8CqAPgTwADiChF\nWH7VXwLoCUAPYAgRHfeXbMWBRqPB0KFDMXToUJdlFAoF+vfvj/79+zucCwgIgBDCZWffpk0bl/73\nDzJ27FgsW7bMQRHkGZ8LEqVzy5YtHjtgIQSUSiVeeuklj/UFBwdj/vz5Ls89/PDDLncm69y5s2eB\nGaaAlDZDsBT8eUffAHhw78eJAHYRUSSAXdZjAHgSQKQ1DQfwlR/lKpUIIfD44487PafRaLzasrBe\nvXr48ccfUbVqVQQFBSE4OBhKpRK9e/fGsmXLCiyfu7f0gIAA1KtXDwcOHEBISEiB2sjPv//9b6eL\nyDQaTbHvNZyH2WzGzp07sWDBAuzYsYNHKkzJpaC73ktJsLz5n813fAlAuPVzOIBL1s8LAAx0Vs5d\nioqKovLEjRs3KDQ0lAAQAAoICKDmzZvTvn37iIjIbDZTTk4OHTt2jPR6vcf6TCYTHThwgDZu3EgJ\nCQl25y5evEj79u2j27dvS5LtypUrpFQqbbLlT4GBgTRv3jwym83e37Qbdu7cSU2bNiWFQkEKhYLa\ntm1Lv/76q0/bKCgXLlygmjVrUlBQEKnVagoKCqIaNWrQ2bNni1u0cguAo1TIPq1p06b0xx9/SEq+\naK+oUlErgvv5Pou8YwA/AHgs37ldAKJd1DkcwFEARyMiIiR9AcoSf//9N7399ttUs2ZNatKkCe3Y\nsYNycnIoMzOTFi1aRA0bNqTg4GDS6XT06aefet35Xrx4kZo1a0ZqtZpCQkJIpVLRc889R5mZmW6v\ny83NJZ1O51QRyOVyun//vq3s4cOH6amnnqKqVatS48aNaf78+ZSdnU2nTp2i/v37U7Vq1SgyMpJm\nzpzpoNCuXr1Kw4cPp+rVq1Pt2rXp/fffp6tXr1JqaqpX91lY0tLSKC4ujhISEig3N9fuXFZWFlWp\nUoWEEA7PolKlSmQwGIpUVsaCrxTB1atXJSVWBBIUgfU4hbxUBPlTeRoRpKam0g8//EBbtmyhjIwM\nu3MHDhwgtVrt0OloNBr6z3/+I7mNlJQUCgsLc+jAVCoV9erVy+21W7dudakI8suxevVq0mg0dufV\najW1bt2aNBoNyWQyh/y8jvPMmTMUHBxMAQEBtjJKpZIiIiLozp07Xj7RgrNlyxbSarWk0+lIrVbT\nzJkz6f79+zalu2rVKpfPQqfT0fLly4tMVuZ/+KJjbtasGV27dk1SKk2KoKitHreFEOEAYP2b58d4\nE0D+2AY1rXnlHiLCtGnTUK1aNQwaNAjPP/88qlSpgrlz59rKTJ482am3jl6vx5QpU2AymSS1NWfO\nHAfffMDiSbR79278/vvvLq89c+aMy9j8er0eR48etW2N+eAaA4PBgOPHj0Ov19vNoxsMBly8eBFL\nly4FAIwYMQJpaWl2brJGoxGJiYmYMGGCg9z+4K+//kK/fv2QmZmJjIwMGAwGvPPOO6hYsSIiIyNh\nNptx6tQplyGoMzIycPr0aZf1Z2Vl4dKlSz7Z1IYp2QghegghLgkhrgghJjo5P04IcV4IcVoIsUsI\nUdtfshS1ItgE4GXr55cBbMyX/5Kw8CiAVCJy72zuR/bt24fY2Fg0bdoUzz33HI4cOVJcomDRokWY\nMWMGDAYD0tLSkJaWZtsBa926dQDgdgFYZmamR7/9P//8E506dcKUKVPcbrTiLvxEtWrV3BpDq1ev\njr1793p0L30QvV6PRYsWITk52eXagZycHCxbtgwNGjTAzp07varfWxYuXOhUsZrNZty+fRv79u1D\njRo1XEZDVavVqFGjhkO+yWTCxIkTUalSJURHR6NWrVro3Lkzrl+/XmBZ8972GN/iixATQgg5gHmw\nOMo0BjBQCPHgsvoTsMyMNAewFsBnfrgdC/4aagBYCSARQA6AvwAMAxAGy7TPZQA7AVS0lhXWh/IH\ngDOQMC1Efpoamjp1Kmm1WttQXiaTkUajoYULF/q8LU+YzWYKDw93OsUAgOrVq0e9e/d2eR5WQ+29\ne/fozJkzdOjQIYdppZSUFKpcubLdlIyzFBAQQC+//DLdvXvXqaxbtmxxe/2MGTNo/vz5bsvkT0ql\nkl544QVavnw5xcXF0e3bt51Ofz2YVCoVHTx40G//k9jYWJdtq9Vq+vrrr+n06dMuDedqtZqSkpLo\n9u3bdPDgQbp27RoREQ0fPtxhykwul1PVqlXt7Cv5ycrKohUrVtALL7xAI0eOpIMHD5LZbKbffvuN\nOnbsSHK5nBQKBfXu3ZvWrl1LR48epZycHL89m5IOfDQ1dP36dUnJXXsA2gHYlu/4XQDvuinfCsDB\nwsrvsn5/VVwUydeK4NKlSy47G5VKVaTz0EQWg2T++XBnyZlBMv+5Fi1aUJ06dUir1VJwcDBpNBr6\n4IMPyGQyERHRZ599JqmDBUAKhYJkMhlVqlSJnnjiCdq5c6dN1pkzZ5JcLnd57ZAhQ2js2LGS2gkP\nD6c///yT0tLSiMhiiDabzbR8+XJJ10dHR/v8f5Gbm0vLli2jKlWquGxXq9VS8+bNSaVSkUqlcjgv\nk8lo7ty51L9/f1IqlTZjfFRUFAUGBjqtU6PR0OzZsx3k+fvvv6lu3bo2W4QQgrRaLXXt2tVBoeSX\nLywsjFasWOHz51Ma8JUiuHHjhqQEy1qpo/nS8Lx6APQDsDjf8YsA/uOqXQD/AfB+YeV3Wb+/Ki6K\n5GtF8P7777vseDUaDX311Vc+bc8T2dnZLt8sPaXAwEAKDg52aUSeMmUKERE99thjBIDat29PcXFx\ntH37dpo8eTJVrVrVYxsajYa++OILIiJaunSp3UgqfwoICKBGjRrR8OHDJSmdXbt2UXZ2tsPzyMjI\noOeee87j9UIIn/4fzGYzXbt2zeX95W/XneIOCAggjUbj0OnLZDK3Cr1Tp04OMj355JNOFa+7evL/\n37Zu3erTZ1Qa8JUiSEhIkJTcteeNIgDwAoDDAJSFld9VKntL5ArBnTt3XMbrMRqNSElJKVJ5FAoF\nnn32WYcdsKQwatQodO3aFdnZ2Q7n9Ho9Zs6cCYPBAI1Gg88//xzbt2/HoEGD0LVrV0ycOBG///47\n2rZt67YNvV6PSZMmISkpCc8++6xLG0G7du3w66+/YtasWS43nckjPDwc7dq1c7pKWqvVYvz48W6v\nB5D34/EZQghUrlwZERERHtt1F+8pNzcXer3e4X9iNpvdyqzVau2O7969i507dzq1VUi59zwbE+M9\nPow1JMlBRgjxBIBJAGKJSNrG3gWAFUE+YmJiXO5Bq1ar8eijjxaxRJYVtDVq1IBGo7HlaTQaj6t4\nP/roIxw+fNilx5BcLseFCxcwceJEjBw5Elqt1hboTa1WIzg4GPHx8R6/0DKZDOvXr0dISAiWLFkC\ntVptqycvcF58fDyCgoKg1WqxZs0aaLVau0irWq3WZlwNDw93u5G9lPAX/ggBkJOT49TI62+0Wq0t\nxlIet27dkhxg0BWnT5/mlc7FyxEAkUKIukKIQADPw+I0Y0MI0QqWxbaxROQ6UqQPYEWQj759+yIk\nJMQh8qVCoUDdunU9BkvzB1WqVMGZM2fw6aefon379vjHP/6B2bNno3v37i476SZNmiA4ONjt23da\nWhpeeuklPPzwwy49XHQ6HR577DG38uXk5NhcJQcOHIjU1FR8//33eOSRRzBgwADMmzfP7u0+JiYG\n586dw+jRoxEdHY1HHnkEa9euxbp166DRaPDnn3+63cjn/PnzbuUB4Jf/k1KpdOs+6wseHPlpNBq0\nbdsWTz/9tF1+Tk5OoUc9SqWy1EXILCn4wmuIiHIBjAGwDcAFAKuJ6JwQ4iMhRKy12EwAOgBrhBAn\nhRCbXFRXePw151QUyR9eQ9evX7ctbgoJCSG1Wk0dO3akpKQkn7dVGM6cOeN00ZJaraa9e/cSEdGs\nWbM8zsm787C5f/8+9e3b1+31Wq2WDh8+7LKOc+fOUXp6usvz58+ft30+evQode3alZYvX+40REZG\nRgZ16tTJrTxqtZpOnz4t5RFKJicnh7Zv314gW43UpNFo6Ouvv6bOnTtThQoVqH79+jR79mwyGo0O\n8ly+fNmtYd5TyvMAK2/ABzaC5s2bU2JioqTki/aKKhW7AIVJ/lxZfOHCBfrpp5/ojz/+8FsbheXE\niRM2N0G5XE5RUVG2uENERHq93qbUXHUKM2fOpKysLKf1Z2ZmUpMmTVyuklUqldShQwe3YSxMJpPL\n8BR6vd4hltHRo0epWrVqtH37dsrIyCC9Xk9paWmk1+tpzJgxbju4jh070okTJwrwJN2TlZVFFSpU\ncNu2SqWievXquTUoa7Va6tWrF2k0GjujrlarpeHDh0uWx2w2U61atZy2IZPJaMCAAdS6dWubS3D+\ntpRKJYWHh1NiYqLPn1NJhxUBK4JSz7Fjx2jatGn0ySef0NmzZ+nvv/+mxMREMpvNZDQaXcav0ev1\nNGfOHJfeR7Vr13b6xm4wGGjnzp00dOhQWrNmDU2bNo1atmxJKpXK5vbYv39/m4vng+TJlZWVRRcu\nXKB79+45lHH2tnv79m2brC1atKAxY8bQkCFDqGLFim474gYNGnj5RImuXbtGM2fOpClTptCePXtc\nKrQvvvjCqTtoXgoMDKSXX36ZjEYj/fDDD9SpUyeqXbs2RUVFUevWral27drUpUsX+umnn4jI4rIb\nGhpKMpmM1Go1jRw50iFekSe2bt3qMNqTy+VUpUoV+vvvv4nI8j9MSEig9957jxo0aECRkZH04Ycf\nulwLUtbxlSL4+++/JSVWBKwIfEZ2djb17t2bNBoNyeVym6uhTCYjpVJJkZGRtG3bNo/1NGzY0GVH\n1qlTJ7p37x7dv3+f0tLSKDMzk/bs2UMhISH0zDPPUL9+/Sg6OpqGDx9O+/btoyNHjnhcU2E0GqlT\np052LpP16tWj5s2b01NPPUVbtmyxrWV4kN69ezv1qw8ICCCFQuH0LTgyMpIWLVokKeoqEdEHH3xA\nKpWKAgMDSQhBOp2OoqOjnS7eeuKJJ9wqIaVSSf/85z8lLdb67LPPHEZoWq2W+vfv73WAwAMHDlCH\nDh1sz3jIkCF08+ZNr+ooT/iiY27RogXdvn1bUmJFwIrAZ7z33nse5/nVajXt2bPHbT0ffPCBRx/3\n7t270+DBg6lx48ZOy8jlcgoICKCuXbvS3LlzKSUlxWV7/fr187haOSwsjCZPnmybfjMajRQXF0ex\nsbFUsWJFW4epUCgoMDCQWrVqRb169aIWLVq4nHpp0qSJXSRSs9lMhw4dov/7v/+j119/nbZu3Uob\nNmxwOoUTGBhIffv2tbuPK1euuFWieUmj0dDgwYPd/g+SkpJcjiy0Wi3t37/fw7eBKQy+UgRJSUmS\nEisCVgQ+wWQyUXBwsMdOCAB5ehZ79+6VVI/UpNFoKCgoiH7++WeHts6cOWN7o4+JiaFRo0ZRnz59\nnL7Ny+VyUqlU9MEHH1BISIjD+WbNmlGVKlVsSiEv5Ed4eLhTRaNUKmn8+PFEZFkN3K9fP9Jqtbay\nOp3O7Ty+Uqm0TZ3MnDmT1Gq1ZMOsSqWiq1evOn3+Bw4coBYtWrhc8CWE8MpOwHiPrxTBnTt3JCVW\nBKwIfEJqaqrTztNZkslkTlfj5jF48GCfKoK8FBISQgaDgbKysigrK4vS09Opf//+VL9+fbp48aJt\nqik1NZWSk5NtK5mddYSu7kvqM8hLoaGhREQ0Z84ch2kYmUxGbdu2pZiYGKdG9ODgYDpx4gQdPnzY\nrZHdlXJcvHixw7OfO3eupLoGDRrkt+8S4ztFcPfuXUmpNCkCXkdQggkKCnLwIXeFEMKt7/K+fft8\nJZYdZrMZGzZswJIlS1C3bl2EhobiwIED2Lp1K+rXr4+goCBoNBoEBwejQoUK2LJlCypXruxQj+V3\n6rz+B/dW9kR6ejoA4IsvvrALef3UU08hMTERO3bswMaNG5GUlITJkyfbXWs0GlGzZk18+eWXXkdK\nlclkdgvlACApKQnvvPOOQ+jtB9HpdHjqqae8ao9hfAUrAitEhMOHD2Pt2rWSFi0VBUIIfPfdd4iJ\nifFYrlu3bg4L4fLjqSNyhlwu9xhWwWAw4MaNG4iNjUVKSgpMJhPeeOMNVKtWzWloDLlcjqFDh3ot\nizc0bmyJ5nv79m1b3iOPPIJVq1ahSpUqCA4ORmhoKLRaLd555x28/fbbAIDAwEB069YNlSpVwpUr\nV1wqJ1fk5uaiZ8+ednnr1q3zuLhIoVCgSpUq6Nu3r1ftMcWDj0JMlChYEcCiBD799FPExsZi2LBh\naNOmDdq0aYP9+/cjNTW1WGVTKBT4/PPP7UJM5EculyMoKAizZs3yWI+3aDQaTJ8+HaNGjXJZRq1W\n46GHHkLNmjUxduxYaLVaVK9e3eXqYI1GgzZt2nhsWyaToXfv3pg9ezY++ugjNGrUyGmZB1GpVBg1\nahSICHPnzsXMmTPRsWNHTJkyxekKap1Oh/feew+hoaGIjIzEN998AwBo3ry5W8Xq7L6mTJmCsLAw\nu/y0tDSn8Z7y30P37t1x6NAhh9EEU/LwYayhkkVxz00VJhXERpCVlUXx8fG0cOFCOnLkiC1fr9fT\nnTt3qGnTpnbzySqVil588UWHOP75MZvN9Msvv9CCBQto06ZNbufqC8KqVauoYsWKpFAoKCAggFQq\nlW3l8+DBg+nKlSse64iOjvZ6/l+n09HPP/9MN2/edOm5VLVqVZvbpNlsppUrV9KECRNcukIajUaa\nOXOm23bDwsLowoULNu+f7OxsyszMpM8//9xuPv65554jlUpFwcHBpFKpSAhBgYGBpNFoqEaNGrRh\nwwYymUyUlpbm9n+SlZVFe/futXNnPXPmjGQbQYsWLSg+Pt5p3fv373e5IE+r1dKiRYscrskLu834\nFvhgzr5ly5aUkpIiKfmivaJKxS5AYZI3isBoNNL27dspJCSEgoKCSKPRkFarpejoaJtPvMlkooSE\nBKd79sbExDj9cd68eZOaNm1KWq2WNBoNBQcHU8WKFenAgQOSZXPHpk2bnHZIGo3GFkpCCp5CMzhL\nERERtnvevXs36XQ60ul0JJfLKSgoiKpUqUJnz561tSGl88rOzqZHH32UtFotBQQEkFarJbVaTePG\njbN59vz4449OF5ulp6fTgAEDSKVS0eTJk4nIEgZj6tSpThfMqdVq2rFjBxGRyzUL7vjuu+9IrVbb\nKUGFQkFt27alsLAwm9Jyd99ms5lat27tsC4iICCAIiIi7O4zLi6O6tata1MSr7/+ustNaRjv8ZUi\nuH//vqTEiqAEKoL58+c77VAVCgW1a9fOVi41NZW6dOlCCoWCKlWqZHMd1Gg0NHPmTOrUqRM1adKE\n2rdvT6tXr6YmTZo49c/X6XS2FZ6F4aGHHnLZUT/66KOS62nQoIHLegIDA0mpVNrda2hoKJ08edKu\njszMTFq+fDlNmzaNDh065NC55nVqOTk5lJyc7LKDNJlMtH37dvrXv/5FCxcupM2bN9OMGTNo8uTJ\n1Lt3b5erpImIbt26RQkJCZScnGxb1dysWTOX99aqVSvbtQV5y05OTqaOHTtSlSpVaMGCBZSWlkYp\nKSmk1+spLi6OKlWq5FHpJycn05NPPmlbla1Wq6l9+/aUkJBgK/PJJ584fD8DAwOpcePGbp8HIx1W\nBKwIqFatWm43nckLVJaenk67d++2xblJTU2l6dOnk1qtphkzZlBqairp9XrKyMigr776yubnX79+\nfYqNjaU2bdrYRhHTpk2TLJ8zMjIy3C4Ck8vltrI5OTm0evVq6tWrF3Xp0oXmzZtnFzqiXbt2LuvR\naDS0fv16euONN6hv3740a9Ys22KxI0eO0Msvv0wxMTE0bNgw6tKlC3399dcO8YnMZjPduXOHxo4d\nS0FBQaRUKqlWrVq0bt06u2kZg8FAK1eupF9++YWSkpKoWbNmpNPpbKtj27Vr53Q0kEdubi6NHj2a\nVCoVde/enX7//Xfq2bMndevWzen0lRCi0NszxsbG0t27dx0UX2ZmJm3atImWL1/u9Lrz58/TqFGj\nKCYmhkaOHEm7du2iffv2Oaw1SElJcbvQbNmyZYWSvyyRmJhIkydPpk6dOtFzzz3nNjTIg/hKEaSm\npkpKrAhKoCJwF6smKCiIVq5cSUSWjubBTi4jI4Nu3rzpEDxNr9fToUOHaMeOHZSZmWl7UzQYDLZj\nqTj7MmdlZblVBCqVylauffv2dgultFot1axZk27dukVERN9//73LhVQPPfQQJSQk0MKFC20hGu7e\nvUtjx44ltVptt3BLCOFyPtxoNDqMYJRKJUVHR9t1omvXrnW56lin09Err7xCEydOdBnwLy0tjY4e\nPUpGo5HMZjOlpaVRamoqpaen04gRIxymYEwmE924cYMuX75sUwq5ubm0a9cuu7fytLQ0Sk5OdlAc\nW7ZssXsuly5dIoPBQPfu3aNTp07RwYMHKSUlhS5dukQJCQk0b9486tGjBykUCtsoSy6Xk1qtpqVL\nlzrcz/r1690uHHziiSfs7DAFmeYqC/z2228UFBRkU5p523OOGjVKkjJgRcCKwO0bcVBQkO3NwtWP\nzNUXLTc31+0brFS2bt3qNE5Ot27dnC62ksvltpAGH3/8scsYPE899RQRWaZjnn32WTtlkFdvo0aN\nbDGMPvnkE+ratatbBRQUFEQZGRm0Z88eWrp0Ke3fv5/MZjMZDAYaP3680859y5YtRGRRFvmNvu6S\nEILGjBnj9H/g6v9kMBiod+/etvuPiYmhhx9+mFQqlW3P5ddff52ysrLIbDbb/udms9k2cklLS7ML\nAmc2mykhIYG6dOlCSqWStFqtLe6TVqu11ZvXQblbiRwcHGxzPMi7n3Xr1rlVBF26dHG4z/KmDEwm\nE9WoUcPlqGn79u0e6+/gBsYAAA+qSURBVPBFx9yqVStKS0uTlFgRlEBFMGTIEJc/tOrVq9t+WK46\nfG/zveHevXsUEhJCe/bsofT0dMrJySGDwUB6vZ4uXLhAoaGhdh1znv3i8OHDFBsb67YzDQgIsM2l\nm0wm2rRpE/Xq1YseeeQRW2jlvLdztVpN1apV8xhSQavVUqVKlWzhGnQ6HdWvX58uXbpEkydPdnpN\nXvgEvV5v55kVFBTkUSF4u9n65cuXSaFQ2LyJHqyvfv36Hufd83e0aWlpFB4eXqg9APLSpk2baP78\n+RQREUFCCKpYsSK9/fbbLqPDarVaWrJkiVMZy5Nn0c8//+z2u9KnTx+PdfhKEaSnp0tKrAhKoCKI\niYlx+gVSqVR06NAhIrL8sFyFA/aXIjAYDNS/f3/b23nbtm3pvffeo3HjxlGdOnUoNTWVrl+/TiNG\njKBq1apReHg4vfXWW5SYmEiHDh3yuFm5EIKuX7/u0O758+dtHU1eBxcZGel1OIf87YSHh9M//vEP\np+dGjRpFmZmZ9Pbbb1P79u1t5x5//HFav36927pr167t1TM1m800ZswYl4b2JUuWSHLxzfvf/uc/\n//E63ISz1LBhQxozZoxDXWq1miIiIhxsHIGBgfTQQw9JjqhalomPj3c7amrTpo3HOlgRsCKgPn36\nuPwSde/enYiITp486XI3LX8oApPJRG+//bbLN02NRuPW0JmbmyupAzp27JjtGqPRSGlpaRQVFWXr\nZPPKeYoW6im56ixVKhW9+eab1KhRIwJgUxYqlYqmTJlCc+bMcVuvTqcr0PN1Vd9ff/3lVT1du3Yt\ntBIAQC+99JLLN3+dTkdvvfUW1axZ0zbNNGzYMEpOTnYqU3kaDRAR/fHHHy4N6gqFgt566y2PdfhK\nEWRkZEhKpUkRlJuVxSkpKS7Pbdu2DTdu3MCyZcuwc+dOZGZm2p3PyMjAuXPnbHvz5pGZmVnoTcQP\nHTrksMF8QEAAOnbsiKpVq+Kjjz7CtGnTcO7cOYdriQhNmzbFc88953LlcIMGDRAREQGDwQCTyQSZ\nTIb4+HicOHECgGUP4bxQEFJX0ioUCqcrh/V6vVM5srKyMGfOHFy4cAFCCNSrVw9XrlxBy5YtMWLE\nCDRs2BCPP/446tev77S9OnXqSJLrQd5//318+OGHDiuZjUajy2uys7Oxf/9+u43dXa3qlopSqUSX\nLl1w/fp1l+EmMjIykJqaioSEBGRmZiIzMxOLFy9GaGhoob9jZYF69eqhU6dOTr93gYGBePPNN4tB\nqjJEcWuiwiRvRgTujJ8A6I033qCRI0eSXC6ncePG0Zo1a2jZsmW0fv16GjZsGAGWee6rV69SdnY2\nJSQk0NixY6l3796UkZFhMxh786aWm5tLK1eudPkWnbelYZ7HydChQ+3mrk0mE2VlZZHJZKL58+eT\nWq22eysPCwtzuoOYwWCgY8eOUU5ODo0aNYrq1KlDP/30E61bt86lZ1Heqt3WrVvTH3/8QRkZGTR3\n7ly7hVJ5MfnzjzIeTBqNhnbv3k0mk4lycnIoOzvbZrQ1m82UnJxsN42nVqvpyy+/dLgHKc85JyeH\n9u3bR40aNbKb8urXr5/L6ZbLly+TTqejRo0a2fapjo+Pdxu62lOqUKEC6fV6mjt3rtu9JV588UUH\neUwmE929e5eysrJsRuz8z6s8kZaWRl27diW1Wk1BQUEUFBREYWFhtGvXLknXw0cjgszMTEnJF+0V\nVSp2AQqTpCqCixcvevyx9ujRg1555ZUC/dAjIyNp4cKFXtsXiIjOnj3rsf5mzZrRjz/+SFlZWXZT\nRSaTifbu3UujR4+mESNG0Lp162jdunW0cuVKunjxotsOIy//559/plu3blF2djaZTCbq1q2bwxSP\nSqWizz//nH777Te7OkwmE5lMJrp+/TqNHj2aNBqNbUvKuLg4qlevHoWGhlLr1q2pevXqFBwcTN26\ndbNTmg/KlpeXkZFBCxYsoA4dOrjc89jVs86r8/jx4y6nq1asWGHXdm5uLmVkZNiUUEBAAD3xxBO2\n+9yyZQuNHDnSZUeu0Who9OjRdvsd6HQ6Cg0NtT23q1evupze0Ol0FBcXZ1PcDz4Xo9FIycnJkmwb\nx48fp27dulFgYCCpVCrq27cvzZkzh+7evevz8CfFwcWLF+n777+nbdu2ebVGxFeKQK/XS0qsCEqQ\nIvj444897vBV2FStWjV68cUXvQ4HYDKZaPHixW7rzjMYfvLJJ3Y7b2VnZ9OTTz5JWq2WhBDUtWtX\nunHjBun1eq/eFnNycux+TNnZ2bRlyxY6fvw4/fnnn7R79246f/68x/oyMjJo27ZtNldMov/5vKem\nplJOTo7N1VaqbM7ceb3Z27dnz54ujem1a9cmk8lEd+7coXv37tG6deuoefPmdmUmTZpkJ6vRaKS7\nd+9SdHQ01a9fn2rWrEmhoaHUrl07m3tsWloaLVmyhCZNmkRxcXEOI4+hQ4c6KCelUkktW7akgwcP\n2txaXT0PT/z6668ulV/VqlVp3rx5lJSUVOhFdqURVgTlVBH8/PPPPvH28NRRT506lU6cOGHXUT+I\nsx/x/7d3tiFRtWkc/19z5s0zii+jaLbWKj4QveBktvFEUCG4bgRPhcTuh2WJlvlgfuiFIgOhlw+y\nKS1+2IJgF8peNlj6oCia9IDUB3MbkMTiwSjbXSnR1XkwmxecufaDztnRxpzRedO5fnDjnON97pcz\nZ87/nPu+7ut69uxZRNGviouLtSfuwGpnYM5i4ltO8VZDJMMP8RiuCGUBtRTf+u5NJhN/+vSJu7u7\nQ8ZH3rNnz7JvIiux5ff5fNzY2MhWq5UNBgOrqsq1tbWa2fBqCce5IBFp60tSiWjcmMvLy9nlcoWV\nRAiSRAhqamqWNa+MRqqtrWWPx7OkbfrMzAx7vV7taTbgTTM/Pz9i0QlYRxQUFGj7u7q6kmKBUaxF\nIODGIlxChb4MPpeTk5PscrlCWi3dv38/rLePlfY54BU1UEc0zp3T6Qzb/Fev16fcHIMIwdJpXVsN\nvXv3bk7tYkhGRgb27dsHo9GI8fHxryyOZmdn4fF4oNfrMTExgXv37qGlpQU2m21B4JRw8Hq9aG1t\nBQBMTExo+/fu3bts8JP1ABEhNzc37PzHjx8PGRwHAHbu3Ins7GyYzWacPHnyq1gFpaWlEcUjiBSd\nToeMjIyo1uH3+8P2gx9sFSUISXX3IKJqIvqJiN4S0cXVlldWVhbRDy3SYBKBH/OxY8cAAEVFRXC7\n3XC73fjy5Qu8Xi+mpqaQlZUFIkJ+fj6am5tx4cIFDA8PR1RXgECksaKiIm2f2+1eUVnrncuXLyMn\nJ2eBSatOp0N6ejpu3ryp7VMUBSUlJVo+i8WCkZGRsB4iVhuAJBCKMxrfYXZ2NkpLS8PKu3///rUX\nPCVJWI+BaZJGCIhIAfAXAL8BsBXA74ho62rKPHPmzJKRsnJycpCXlweLxYLMzEyYzWZUVVWhubk5\npC282WyGTqcDEWlxeLdt24bnz58vqMNqtcJsNkNVVRiNRuTl5S24KB49eoScnJyQ0bLCIWATf/Hi\nRc2+/e7du3EVA2YO+USZbBd/YWEhBgYGYLfbYbVakZmZiZqaGvT396O8vFzLZzKZ0NHRgStXruD8\n+fPYsmULxsfHI65vJW+fOp0OBoNhxdfDYlpaWpYtS1VVXL9+PSr1pSLrUQgSPjYVSAC+B9AdtF0P\noP5bx4RjNRQILhJwDpaWlsaZmZlcVVXFDoeD+/v7ub29fYFr4MHBQbbb7Xzw4EE+ffo0d3Z2cltb\nGw8NDfGbN2+4ra1Nc1u9EiYnJ7mpqYlLSkpCThYHOzALTmlpadzb28vMc9YzdXV1bDKZeMOGDfz+\n/fsFFirB47+BSdzFNuiL8yyHz+fjz58/86lTp/jGjRs8PT2tWQEtZaoaaR2JItD2EydOsKIoXFxc\nHJGFEjNrayMSTU9PD2/fvp31ej0riqIFAdLr9bx7927NpUqqgSjNEXg8nrBSNOqLVyKO8Rh6uBBR\nDYBqZv7j/PbvAexh5rpF+ewA7ACwadOmXR8+fFi2bKfTicePH2NychIVFRVJ81rMzLh69Sqampqg\nKAr8fj+ys7Nx584d9PX1obGxUcunqipu3bqFI0eOaG1//fo1RkZGMDw8DL1ej8rKShQVFUFRFAwN\nDSE3NxcGgwG9vb3IyspCdXU1pqen4XQ64fP5QETYvHkziAizs7Pw+/3fjJs7NTWFc+fO4cGDB/D7\n/Th06BBaW1vhdrvR2dmJsbEx2O12ZGVlacfMzs7C7XbD6/XCYrFob0/B55+ZQUTa33gRuPb9fj9G\nR0fR0NCAp0+f4sCBA7h06RK2bo3shTQwRp8M1xYwFy9ZURRYLBZMT0+DiJCenp7oZiUMInIwc8Vq\nyti1axf39fWFlddoNK66vnix5oQgmIqKCn758mW8mhgzZmZmMDg4CFVVsWPHDu1G4vF4MDAwAIPB\nAJvNFnJC2OfzYWBgAD6fDzabTbuRMzNevXoFl8uFsrIybbjA7/ejvb0dY2NjOHz4MAoLC7WyOjo6\n0NXVhY6ODhw9ehQ2mw2tra3o6elBWloaPn78CKfTidHRUZSUlKCgoCAOZ0cQooMIwdIkkxB8D+Ay\nM/96frseAJi5calj1osQJAs+nw+VlZXo7++Hy+XS9quqimvXruHs2bMJbJ0grI5oCcGLFy/Cymsw\nGNaMECTNZDGAfwL4joiKicgI4LcA2hLcppRCURQ8efIEDQ0N2LhxI1RVRXl5OR4+fCgiIAjrmNBG\n1gmAmWeJqA5ANwAFwN+Y+WuXm0JMMRqNqK+vR319faKbIghJRzLNAUWTpBECAGDmTgCdiW6HIAjC\nUqxHIUimoSFBEAQhAYgQCIIgREC0FpQt50mBiExE9Gj+/y+I6Jcx6A4AEQJBEIS4E6YnhZMAppi5\nFMCfAfwpVu0RIRAEQYiAKL0R/ArAW2Z+x8xeAH8H8MOiPD8AuDP/+R8AKilGExRJNVkcKQ6HY4KI\nll9a/H82AfhXrNqTpEifUwPp8/JsXm2FDoejm4jCdYFrJqLghU63mfn2/OeNAP4d9L//ANiz6Hgt\nz7xV5c8ArAAmEGXWtBAwc14k+YlofK0s8IgW0ufUQPocH5i5Op71xYtUGxpyJroBCUD6nBpIn9cW\nowCKgrZ/Mb8vZB4i0gPIBPDfWDQm1YTg50Q3IAFIn1MD6fPaIhxPCm0A/jD/uQbAjxwjn0Bremho\nBdxePsu6Q/qcGkif1xBLeVIgoquYc1/dBuCvAFqJ6C2AScyJRUxIGqdzgiAIQmJItaEhQRAEYREi\nBIIgCCmOCIEgCEKKI0IgCIKQ4ogQCIIgpDgiBIIgCCmOCIEgCEKK8z8526VlXBQ7GwAAAABJRU5E\nrkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "p6KuSmVpeo_6" + }, + "source": [ + "# Conclusão" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "GxVLsfqXesFC" + }, + "source": [ + "df.head(50)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "aidvIN0ZyLx2" + }, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "oAIrbEJ5nsiz" + }, + "source": [ + "# Salvar cópia do dataframe" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "f2ktaBhAnxPi" + }, + "source": [ + "df.to_csv(\"df_3DP_FE1.csv\", sep= ',', index = True, header=True)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "GhB-30cIXtJZ" + }, + "source": [ + "# Exercícios\n", + "* Para cada dataframe a seguir, avalie o que necessita ser feito em termos de qualidade de dados." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "caFkC6oCmUKK" + }, + "source": [ + "## Exercício 1 - Predict Breast Cancer" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vhOM-Z9zmf-f" + }, + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "from sklearn.datasets import load_breast_cancer\n", + "\n", + "cancer = load_breast_cancer()\n", + "X= cancer['data']\n", + "y= cancer['target']\n", + "\n", + "df_cancer = pd.DataFrame(np.c_[X, y], columns= np.append(cancer['feature_names'], ['target']))\n", + "df_cancer['target'] = df_cancer['target'].map({0: 'malign', 1: 'benign'})\n", + "df_cancer.head()" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1qruqUDqnvMc" + }, + "source": [ + "## Exercício 2 - Predict Boston Housing Price" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "trxK8YXNnsam" + }, + "source": [ + "from sklearn.datasets import load_boston\n", + "\n", + "boston = load_boston()\n", + "X= boston['data']\n", + "y= boston['target']\n", + "\n", + "df_boston = pd.DataFrame(np.c_[X, y], columns= np.append(boston['feature_names'], ['target']))\n", + "df_boston.head()" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-CawPH2nb5cl" + }, + "source": [ + "## Exercícios 3 - Diabetes\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "_lVjBS7QcZuT" + }, + "source": [ + "from sklearn.datasets import load_diabetes\n", + "\n", + "diabetes = load_diabetes()\n", + "X= diabetes['data']\n", + "y= diabetes['target']\n", + "\n", + "df_diabetes = pd.DataFrame(np.c_[X, y], columns= np.append(diabetes['feature_names'], ['target']))\n", + "df_diabetes.head()" + ], + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file From daa05d9c8aec808198151670b2c486af528651f8 Mon Sep 17 00:00:00 2001 From: Hayltons <65053778+Hayltons@users.noreply.github.com> Date: Sat, 3 Oct 2020 18:44:28 -0300 Subject: [PATCH 02/10] Criado usando o Colaboratory --- ..._02__Condicionais: if, elif, else_hs.ipynb | 373 ++++++++++++++++++ 1 file changed, 373 insertions(+) create mode 100644 Notebooks/NB01_02__Condicionais: if, elif, else_hs.ipynb diff --git a/Notebooks/NB01_02__Condicionais: if, elif, else_hs.ipynb b/Notebooks/NB01_02__Condicionais: if, elif, else_hs.ipynb new file mode 100644 index 000000000..e27c4913c --- /dev/null +++ b/Notebooks/NB01_02__Condicionais: if, elif, else_hs.ipynb @@ -0,0 +1,373 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Notebooks/NB01_02__Condicionais.ipynb", + "provenance": [], + "collapsed_sections": [ + "n8BIbzQbNWUo", + "7eS94uQ4NhVR", + "SYOgJpGYVLUu", + "CaHFxk98W5if", + "ReWUyWiHXCnc", + "CqszHxaKHr2h", + "tXgF1Wl9gHKY", + "Fotx7XUquAo8", + "36kmLUYDvsUI", + "SWO2GdNovxAp", + "vpN54l4vxze5", + "u4HOf9SNytSq", + "6BQ9oZiD9hg5", + "tz5-QdrX9vct", + "p1muBgMX8NK4", + "FxTC2-U88ajk", + "z8EYn0pP25Rh" + ], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "accelerator": "GPU" + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8Y-QMrzHhpcu" + }, + "source": [ + "

CONDICIONAIS - IF

\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "wYGZ0eGlv--6" + }, + "source": [ + "# **AGENDA**:\n", + "> Veja o **índice** dos itens que serão abordados neste capítulo." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Q3FpTG0dh47M" + }, + "source": [ + "___\n", + "# **REFERÊNCIAS**\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LWuIj53sVSnA" + }, + "source": [ + "___\n", + "# **CONDICIONAIS**\n", + "> Usado para decidir se uma determinada instrução ou bloco de instruções será executada ou não, isto é, se uma determinada condição for verdadeira, um bloco de instrução será executado." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "NyG1l3awJzEq" + }, + "source": [ + "# Não executar o código a seguir:\n", + "if condicao1:\n", + " \n", + "elif condicao2:\n", + " \n", + "elif condicao3:\n", + " \n", + " ...\n", + "elif condicaoN:\n", + " \n", + "else:\n", + " " + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FCJBMTh5WX5C" + }, + "source": [ + "## Exemplo 1" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vn5u7CEaWZjH" + }, + "source": [ + "def mensagem(i_idade, i_limite):\n", + " if i_idade > i_limite:\n", + " s_mensagem= f'{i_idade} é maior que {i_limite}'\n", + " print(s_mensagem)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "lW0ME_nVXU4M" + }, + "source": [ + "mensagem(35, 40)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "EBBU8Yw2XxUo" + }, + "source": [ + "Nenhuma mensagem? E agora?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "xQ23cAjMX1kx", + "outputId": "3612d39b-3f92-40fd-af14-2dfbca6b0697", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "source": [ + "mensagem(45, 40)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "45 é maior que 40\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "BeHU0tPuWK4s" + }, + "source": [ + "## Exemplo 2" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gSzCnjS0Fk-d" + }, + "source": [ + "def mensagem2(i_idade, i_limite):\n", + " if i_idade > i_limite:\n", + " s_mensagem= f'{i_idade} é maior que {i_limite}'\n", + " else:\n", + " s_mensagem= f'{i_idade} é menor ou igual a {i_limite}'\n", + " \n", + " print(s_mensagem)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "KxbmxuDwYFX_", + "outputId": "8f1faff1-de34-4967-865f-17453f7992af", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "source": [ + "mensagem2(35, 40)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "35 é menor ou igual a 40\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lToDO6pzWPGL" + }, + "source": [ + "## Exemplo 3" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "a1NlziSbGrIl", + "outputId": "ffed270b-c16f-4d30-cdaf-80ae96898a94", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 197 + } + }, + "source": [ + "def mensagem3(i_idade, i_limite1, i_limite2, i_limite3, i_limite4):\n", + " if ((i_idade > i_limite1) and (i_idade < i_limite2)):\n", + " s_mensagem= f'{i_idade} é maior que {i_limite1} e menor que {i_limite2}'\n", + " \n", + " elif ((i_idade > i_limite3) and (i_idade < i_limite4)):\n", + " s_mensagem= f'{i_idade} é maior que {i_limite3} e menor que {i_limite4}'\n", + " \n", + " else:\n", + " s_mensagem= f'{i_idade} é maior que {i_limite4}'\n", + " \n", + "print(s_mensagem)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "error", + "ename": "NameError", + "evalue": "ignored", + "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[1;32m 9\u001b[0m \u001b[0ms_mensagem\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0;34mf'{i_idade} é maior que {i_limite4}'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms_mensagem\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 's_mensagem' is not defined" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "V8FF3lFLYqui" + }, + "source": [ + "Porque temos um erro nesta função?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "y5F09RKGYyoX" + }, + "source": [ + "**Resposta**: por causa da indentação! A forma correta é:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vR-oFyzAY5UC" + }, + "source": [ + "def mensagem3(i_idade, i_limite1, i_limite2, i_limite3, i_limite4):\n", + " if ((i_idade > i_limite1) and (i_idade < i_limite2)):\n", + " s_mensagem= f'{i_idade} é maior que {i_limite1} e menor que {i_limite2}'\n", + " elif ((i_idade > i_limite3) and (i_idade < i_limite4)):\n", + " s_mensagem= f'{i_idade} é maior que {i_limite3} e menor que {i_limite4}'\n", + " else:\n", + " s_mensagem= f'{i_idade} é maior que {i_limite4}'\n", + " \n", + " print(s_mensagem)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "QgkBOGKdYgGU", + "outputId": "701f4620-817f-41e0-e9d7-f6b06adf6b3d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "mensagem3(35, 10, 20, 30, 40)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "35 é maior que 30 e menor que 40\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LLk7bhjSwZch" + }, + "source": [ + "___\n", + "# **Wrap Up**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lJvjcjm8NQ85" + }, + "source": [ + "___\n", + "# Exercícios\n", + "## **Exercício 1**: \n", + "Escreva uma função em Python que receba um número inteiro i_limite e, na sequência, imprime os números inteiros de 0 a i_limite;\n", + "\n", + "## **outros exercícios**: \n", + "Nos sites abaixo você vai encontrar exercícios de Python:\n", + "### https://pynative.com/python-if-else-and-for-loop-exercise-with-solutions/;\n", + "### https://www.w3resource.com/python-exercises/" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Gi091pZrwbnY" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file From edd8247b447249c3a5551654ff06d0af209cc181 Mon Sep 17 00:00:00 2001 From: Hayltons <65053778+Hayltons@users.noreply.github.com> Date: Sat, 3 Oct 2020 18:49:40 -0300 Subject: [PATCH 03/10] Criado usando o Colaboratory --- Notebooks/NB01_02__Condicionais_hs.ipynb | 373 +++++++++++++++++++++++ 1 file changed, 373 insertions(+) create mode 100644 Notebooks/NB01_02__Condicionais_hs.ipynb diff --git a/Notebooks/NB01_02__Condicionais_hs.ipynb b/Notebooks/NB01_02__Condicionais_hs.ipynb new file mode 100644 index 000000000..bacbbc5eb --- /dev/null +++ b/Notebooks/NB01_02__Condicionais_hs.ipynb @@ -0,0 +1,373 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Notebooks/NB01_02__Condicionais.ipynb", + "provenance": [], + "collapsed_sections": [ + "n8BIbzQbNWUo", + "7eS94uQ4NhVR", + "SYOgJpGYVLUu", + "CaHFxk98W5if", + "ReWUyWiHXCnc", + "CqszHxaKHr2h", + "tXgF1Wl9gHKY", + "Fotx7XUquAo8", + "36kmLUYDvsUI", + "SWO2GdNovxAp", + "vpN54l4vxze5", + "u4HOf9SNytSq", + "6BQ9oZiD9hg5", + "tz5-QdrX9vct", + "p1muBgMX8NK4", + "FxTC2-U88ajk", + "z8EYn0pP25Rh" + ], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "accelerator": "GPU" + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8Y-QMrzHhpcu" + }, + "source": [ + "

CONDICIONAIS - IF

\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "wYGZ0eGlv--6" + }, + "source": [ + "# **AGENDA**:\n", + "> Veja o **índice** dos itens que serão abordados neste capítulo." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Q3FpTG0dh47M" + }, + "source": [ + "___\n", + "# **REFERÊNCIAS**\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LWuIj53sVSnA" + }, + "source": [ + "___\n", + "# **CONDICIONAIS**\n", + "> Usado para decidir se uma determinada instrução ou bloco de instruções será executada ou não, isto é, se uma determinada condição for verdadeira, um bloco de instrução será executado." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "NyG1l3awJzEq" + }, + "source": [ + "# Não executar o código a seguir:\n", + "if condicao1:\n", + " \n", + "elif condicao2:\n", + " \n", + "elif condicao3:\n", + " \n", + " ...\n", + "elif condicaoN:\n", + " \n", + "else:\n", + " " + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FCJBMTh5WX5C" + }, + "source": [ + "## Exemplo 1" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vn5u7CEaWZjH" + }, + "source": [ + "def mensagem(i_idade, i_limite):\n", + " if i_idade > i_limite:\n", + " s_mensagem= f'{i_idade} é maior que {i_limite}'\n", + " print(s_mensagem)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "lW0ME_nVXU4M" + }, + "source": [ + "mensagem(35, 40)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "EBBU8Yw2XxUo" + }, + "source": [ + "Nenhuma mensagem? E agora?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "xQ23cAjMX1kx", + "outputId": "3612d39b-3f92-40fd-af14-2dfbca6b0697", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "source": [ + "mensagem(45, 40)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "45 é maior que 40\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "BeHU0tPuWK4s" + }, + "source": [ + "## Exemplo 2" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gSzCnjS0Fk-d" + }, + "source": [ + "def mensagem2(i_idade, i_limite):\n", + " if i_idade > i_limite:\n", + " s_mensagem= f'{i_idade} é maior que {i_limite}'\n", + " else:\n", + " s_mensagem= f'{i_idade} é menor ou igual a {i_limite}'\n", + " \n", + " print(s_mensagem)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "KxbmxuDwYFX_", + "outputId": "8f1faff1-de34-4967-865f-17453f7992af", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "source": [ + "mensagem2(35, 40)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "35 é menor ou igual a 40\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lToDO6pzWPGL" + }, + "source": [ + "## Exemplo 3" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "a1NlziSbGrIl", + "outputId": "ffed270b-c16f-4d30-cdaf-80ae96898a94", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 197 + } + }, + "source": [ + "def mensagem3(i_idade, i_limite1, i_limite2, i_limite3, i_limite4):\n", + " if ((i_idade > i_limite1) and (i_idade < i_limite2)):\n", + " s_mensagem= f'{i_idade} é maior que {i_limite1} e menor que {i_limite2}'\n", + " \n", + " elif ((i_idade > i_limite3) and (i_idade < i_limite4)):\n", + " s_mensagem= f'{i_idade} é maior que {i_limite3} e menor que {i_limite4}'\n", + " \n", + " else:\n", + " s_mensagem= f'{i_idade} é maior que {i_limite4}'\n", + " \n", + "print(s_mensagem)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "error", + "ename": "NameError", + "evalue": "ignored", + "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[1;32m 9\u001b[0m \u001b[0ms_mensagem\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0;34mf'{i_idade} é maior que {i_limite4}'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms_mensagem\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 's_mensagem' is not defined" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "V8FF3lFLYqui" + }, + "source": [ + "Porque temos um erro nesta função?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "y5F09RKGYyoX" + }, + "source": [ + "**Resposta**: por causa da indentação! A forma correta é:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vR-oFyzAY5UC" + }, + "source": [ + "def mensagem3(i_idade, i_limite1, i_limite2, i_limite3, i_limite4):\n", + " if ((i_idade > i_limite1) and (i_idade < i_limite2)):\n", + " s_mensagem= f'{i_idade} é maior que {i_limite1} e menor que {i_limite2}'\n", + " elif ((i_idade > i_limite3) and (i_idade < i_limite4)):\n", + " s_mensagem= f'{i_idade} é maior que {i_limite3} e menor que {i_limite4}'\n", + " else:\n", + " s_mensagem= f'{i_idade} é maior que {i_limite4}'\n", + " \n", + " print(s_mensagem)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "QgkBOGKdYgGU", + "outputId": "701f4620-817f-41e0-e9d7-f6b06adf6b3d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "mensagem3(35, 10, 20, 30, 40)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "35 é maior que 30 e menor que 40\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LLk7bhjSwZch" + }, + "source": [ + "___\n", + "# **Wrap Up**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lJvjcjm8NQ85" + }, + "source": [ + "___\n", + "# Exercícios\n", + "## **Exercício 1**: \n", + "Escreva uma função em Python que receba um número inteiro i_limite e, na sequência, imprime os números inteiros de 0 a i_limite;\n", + "\n", + "## **outros exercícios**: \n", + "Nos sites abaixo você vai encontrar exercícios de Python:\n", + "### https://pynative.com/python-if-else-and-for-loop-exercise-with-solutions/;\n", + "### https://www.w3resource.com/python-exercises/" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Gi091pZrwbnY" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file From b384c59d12d47185ed5c5f95413c58182b8efbf7 Mon Sep 17 00:00:00 2001 From: Hayltons <65053778+Hayltons@users.noreply.github.com> Date: Sat, 3 Oct 2020 19:02:12 -0300 Subject: [PATCH 04/10] Criado usando o Colaboratory --- ..._Notebooks_NB01_02__Condicionais_hs.ipynb" | 411 ++++++++++++++++++ 1 file changed, 411 insertions(+) create mode 100644 "C\303\263pia_de_Notebooks_NB01_02__Condicionais_hs.ipynb" diff --git "a/C\303\263pia_de_Notebooks_NB01_02__Condicionais_hs.ipynb" "b/C\303\263pia_de_Notebooks_NB01_02__Condicionais_hs.ipynb" new file mode 100644 index 000000000..dfefafb07 --- /dev/null +++ "b/C\303\263pia_de_Notebooks_NB01_02__Condicionais_hs.ipynb" @@ -0,0 +1,411 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Cópia de Notebooks/NB01_02__Condicionais.ipynb", + "provenance": [], + "collapsed_sections": [ + "n8BIbzQbNWUo", + "7eS94uQ4NhVR", + "SYOgJpGYVLUu", + "CaHFxk98W5if", + "ReWUyWiHXCnc", + "CqszHxaKHr2h", + "tXgF1Wl9gHKY", + "Fotx7XUquAo8", + "36kmLUYDvsUI", + "SWO2GdNovxAp", + "vpN54l4vxze5", + "u4HOf9SNytSq", + "6BQ9oZiD9hg5", + "tz5-QdrX9vct", + "p1muBgMX8NK4", + "FxTC2-U88ajk", + "z8EYn0pP25Rh" + ], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "accelerator": "GPU" + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8Y-QMrzHhpcu" + }, + "source": [ + "

CONDICIONAIS - IF

\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "wYGZ0eGlv--6" + }, + "source": [ + "# **AGENDA**:\n", + "> Veja o **índice** dos itens que serão abordados neste capítulo." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Q3FpTG0dh47M" + }, + "source": [ + "___\n", + "# **REFERÊNCIAS**\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LWuIj53sVSnA" + }, + "source": [ + "___\n", + "# **CONDICIONAIS**\n", + "> Usado para decidir se uma determinada instrução ou bloco de instruções será executada ou não, isto é, se uma determinada condição for verdadeira, um bloco de instrução será executado." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "NyG1l3awJzEq" + }, + "source": [ + "# Não executar o código a seguir:\n", + "if condicao1:\n", + " \n", + "elif condicao2:\n", + " \n", + "elif condicao3:\n", + " \n", + " ...\n", + "elif condicaoN:\n", + " \n", + "else:\n", + " " + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FCJBMTh5WX5C" + }, + "source": [ + "## Exemplo 1" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vn5u7CEaWZjH" + }, + "source": [ + "def mensagem(i_idade, i_limite):\n", + " if i_idade > i_limite:\n", + " s_mensagem= f'{i_idade} é maior que {i_limite}'\n", + " print(s_mensagem)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "lW0ME_nVXU4M" + }, + "source": [ + "mensagem(35, 40)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "EBBU8Yw2XxUo" + }, + "source": [ + "Nenhuma mensagem? E agora?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "xQ23cAjMX1kx", + "outputId": "3612d39b-3f92-40fd-af14-2dfbca6b0697", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "source": [ + "mensagem(45, 40)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "45 é maior que 40\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "BeHU0tPuWK4s" + }, + "source": [ + "## Exemplo 2" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gSzCnjS0Fk-d" + }, + "source": [ + "def mensagem2(i_idade, i_limite):\n", + " if i_idade > i_limite:\n", + " s_mensagem= f'{i_idade} é maior que {i_limite}'\n", + " else:\n", + " s_mensagem= f'{i_idade} é menor ou igual a {i_limite}'\n", + " \n", + " print(s_mensagem)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "KxbmxuDwYFX_", + "outputId": "8f1faff1-de34-4967-865f-17453f7992af", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "source": [ + "mensagem2(35, 40)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "35 é menor ou igual a 40\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lToDO6pzWPGL" + }, + "source": [ + "## Exemplo 3" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "a1NlziSbGrIl", + "outputId": "ffed270b-c16f-4d30-cdaf-80ae96898a94", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 197 + } + }, + "source": [ + "def mensagem3(i_idade, i_limite1, i_limite2, i_limite3, i_limite4):\n", + " if ((i_idade > i_limite1) and (i_idade < i_limite2)):\n", + " s_mensagem= f'{i_idade} é maior que {i_limite1} e menor que {i_limite2}'\n", + " \n", + " elif ((i_idade > i_limite3) and (i_idade < i_limite4)):\n", + " s_mensagem= f'{i_idade} é maior que {i_limite3} e menor que {i_limite4}'\n", + " \n", + " else:\n", + " s_mensagem= f'{i_idade} é maior que {i_limite4}'\n", + " \n", + "print(s_mensagem)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "error", + "ename": "NameError", + "evalue": "ignored", + "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[1;32m 9\u001b[0m \u001b[0ms_mensagem\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0;34mf'{i_idade} é maior que {i_limite4}'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms_mensagem\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 's_mensagem' is not defined" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "V8FF3lFLYqui" + }, + "source": [ + "Porque temos um erro nesta função?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "y5F09RKGYyoX" + }, + "source": [ + "**Resposta**: por causa da indentação! A forma correta é:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vR-oFyzAY5UC" + }, + "source": [ + "def mensagem3(i_idade, i_limite1, i_limite2, i_limite3, i_limite4):\n", + " if ((i_idade > i_limite1) and (i_idade < i_limite2)):\n", + " s_mensagem= f'{i_idade} é maior que {i_limite1} e menor que {i_limite2}'\n", + " elif ((i_idade > i_limite3) and (i_idade < i_limite4)):\n", + " s_mensagem= f'{i_idade} é maior que {i_limite3} e menor que {i_limite4}'\n", + " else:\n", + " s_mensagem= f'{i_idade} é maior que {i_limite4}'\n", + " \n", + " print(s_mensagem)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "QgkBOGKdYgGU", + "outputId": "701f4620-817f-41e0-e9d7-f6b06adf6b3d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "mensagem3(35, 10, 20, 30, 40)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "35 é maior que 30 e menor que 40\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LLk7bhjSwZch" + }, + "source": [ + "___\n", + "# **Wrap Up**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lJvjcjm8NQ85" + }, + "source": [ + "___\n", + "# Exercícios\n", + "## **Exercício 1**: \n", + "Escreva uma função em Python que receba um número inteiro i_limite e, na sequência, imprime os números inteiros de 0 a i_limite;\n", + "\n", + "## **outros exercícios**: \n", + "Nos sites abaixo você vai encontrar exercícios de Python:\n", + "### https://pynative.com/python-if-else-and-for-loop-exercise-with-solutions/;\n", + "### https://www.w3resource.com/python-exercises/" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Gi091pZrwbnY" + }, + "source": [ + "# Exercicio 1\n", + "def imprime_inteiros(i_limite):\n", + " for i_inteiro in range(i_limite+1):\n", + " print(i_inteiro, end=' ')\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Vq2andamdPsZ", + "outputId": "7b7f7864-9402-4b13-86eb-c14aa95b55e5", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "imprime_inteiros(10)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "0 1 2 3 4 5 6 7 8 9 10 " + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "MG_rtFd0eGgb" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file From 964bbe91352775ec6ea337e3e44dfb5c398103c8 Mon Sep 17 00:00:00 2001 From: Hayltons <65053778+Hayltons@users.noreply.github.com> Date: Mon, 5 Oct 2020 16:14:59 -0300 Subject: [PATCH 05/10] Criado usando o Colaboratory --- Notebooks/NB02__Numpy_hs.ipynb | 5871 ++++++++++++++++++++++++++++++++ 1 file changed, 5871 insertions(+) create mode 100644 Notebooks/NB02__Numpy_hs.ipynb diff --git a/Notebooks/NB02__Numpy_hs.ipynb b/Notebooks/NB02__Numpy_hs.ipynb new file mode 100644 index 000000000..10dc9b639 --- /dev/null +++ b/Notebooks/NB02__Numpy_hs.ipynb @@ -0,0 +1,5871 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "NB02__Numpy.ipynb", + "provenance": [], + "collapsed_sections": [ + "n8BIbzQbNWUo", + "7eS94uQ4NhVR", + "SYOgJpGYVLUu", + "CaHFxk98W5if", + "ReWUyWiHXCnc", + "CqszHxaKHr2h", + "tXgF1Wl9gHKY", + "Fotx7XUquAo8", + "36kmLUYDvsUI", + "SWO2GdNovxAp", + "vpN54l4vxze5", + "u4HOf9SNytSq", + "6BQ9oZiD9hg5", + "tz5-QdrX9vct", + "p1muBgMX8NK4", + "FxTC2-U88ajk", + "z8EYn0pP25Rh" + ], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "accelerator": "GPU" + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6QhLXoatkvKR" + }, + "source": [ + "

NUMPY

\n", + "\n", + "> NumPy é um pacote para computação científica e álgebra linear para Python.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "b8EZupp68vW8" + }, + "source": [ + "# **AGENDA**:\n", + "> Neste capítulo, vamos abordar os seguintes assuntos:\n", + "\n", + "* NumPy\n", + "* Criar arrays\n", + "* Criar Arrays Multidimensionais\n", + "* Selecionar itens\n", + "* Aplicar funções como max(), min() e etc\n", + "* Calcular Estatísticas Descritivas: média e variância\n", + "* Reshaping\n", + "* Tansposta de um array\n", + "* Autovalores e Autovetores\n", + "* Wrap Up\n", + "* Exercícios" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cO5t3xCO8kyK" + }, + "source": [ + "___\n", + "# **NOTAS E OBSERVAÇÕES**\n", + "\n", + "* Nosso foco com o NumPy é facilitar o uso do Pandas;" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "z2IFUG4GSB0Z" + }, + "source": [ + "___\n", + "# **CHEETSHEET**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jYLeDVH-SNCg" + }, + "source": [ + "![Numpy](https://github.com/MathMachado/Materials/blob/master/numpy_basics-1.png?raw=true)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0mKvExmgUFOk" + }, + "source": [ + "# **ESCALAR, VETORES, MATRIZES E TENSORES**\n", + "\n", + "![Tensor](https://github.com/MathMachado/Materials/blob/master/tensor.png?raw=true)\n", + "\n", + "Source: [PyTorch for Deep Learning: A Quick Guide for Starters](https://towardsdatascience.com/pytorch-for-deep-learning-a-quick-guide-for-starters-5b60d2dbb564)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "o00pYRIkXiAU" + }, + "source": [ + "## Import Statement - Primeiros exemplos\n", + "> Como exemplo, considere gerar uma amostra aleatória de tamanho 10 da Distribuição Normal(0, 1):" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "l_XuvcUDWNDk" + }, + "source": [ + "## Importar a library NumPy" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "am_ZTIGaapCo" + }, + "source": [ + "### **Opção 1**: Importar a biblioteca NumPy COM alias" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "b4irLw6BWVVZ" + }, + "source": [ + "import numpy as np" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "JK54ga7dXnJu", + "outputId": "f87f5718-d89c-4350-93ec-dbe8f2448b69", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 50 + } + }, + "source": [ + "# Set up o número de casas decimais para o NumPy:\n", + "np.set_printoptions(precision = 2, suppress = True)\n", + "\n", + "'''\n", + "Define seed por questões de reproducibilidade, ou seja, \n", + "garante que todos vamos gerar os mesmos números aleatórios\n", + "'''\n", + "np.random.seed(seed = 20111974)\n", + "\n", + "# Gera 10 números aleatórios a partir da Distribuição Normal(media, desvio_padrao)\n", + "media = 0\n", + "desvio_padrao = 1\n", + "a_numeros1 = np.random.normal(media, desvio_padrao, size = 10) # Array 1D de size = 10\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([ 2.51, 1.11, 2.06, 0.56, 0.3 , 1.05, -0.13, 1.06, 1.14,\n", + " 1.38])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 3 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3-0934isZUm6" + }, + "source": [ + "**Observação**: Altere o valor de [precision] para 4, 2 e 0 e observe o que acontece." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9ob_8S_bYYa2" + }, + "source": [ + "### **Opção 2**: Importar a biblioteca NumPy SEM alias" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "NcGd1ho_XDXU" + }, + "source": [ + "import numpy" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "zFYH6J5-Ydjl", + "outputId": "5ff888b2-01d7-4ec7-db26-94d491811719", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 50 + } + }, + "source": [ + "# Set up o número de casas decimais para o NumPy:\n", + "numpy.set_printoptions(precision = 2, suppress = True)\n", + "\n", + "'''\n", + "Define seed por questões de reproducibilidade, ou seja, \n", + "garante que todos vamos gerar os mesmos números aleatórios\n", + "'''\n", + "numpy.random.seed(seed = 20111974)\n", + "\n", + "# Gera 10 números aleatórios a partir da Distribuição Normal(mu, desvio_padrao)\n", + "media = 0\n", + "desvio_padrao = 1\n", + "numpy.random.normal(size = 10)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([-2.06, 0.67, 0.73, -0.34, 0.44, 0.59, -1.29, 1.18, -0.99,\n", + " -1.79])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 12 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "AwWSzYrZWfvA" + }, + "source": [ + "### **Opção 3**: Importar funções específicas da biblioteca NumPy" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "bfYJzcqRa5eu" + }, + "source": [ + "from numpy import set_printoptions\n", + "from numpy.random import seed, normal" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Xj6fbpvubH_p", + "outputId": "2e9906f3-3321-4990-a821-ff4b6941cc23", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + } + }, + "source": [ + "# Set up o número de casas decimais para o NumPy:\n", + "set_printoptions(precision = 2, suppress = True)\n", + "\n", + "'''\n", + "Define seed por questões de reproducibilidade, ou seja, \n", + "garante que todos vamos gerar os mesmos números aleatórios\n", + "'''\n", + "seed(seed = 20111974)\n", + "\n", + "# Gera 10 números aleatórios a partir da Distribuição Normal(mu, desvio_padrao)\n", + "media = 0\n", + "desvio_padrao = 1 \n", + "np.random.normal(size = 10)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([ 2.51, 1.11, 2.06, 0.56, 0.3 , 1.05, -0.13, 1.06, 1.14,\n", + " 1.38])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 189 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "00RerJPChnuP" + }, + "source": [ + "___\n", + "# **Estatísticas Descriticas com NumPy**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Qa6ro1VJlShd" + }, + "source": [ + "## Exemplo 1\n", + "> Vamos voltar ao mesmo exemplo anterior, mas desta vez, usando a opção 1 (com alias):\n", + "\n", + "* Gerar uma amostra aleatória de tamanho 10 da Distribuiçao Normal(0, 1)." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "31dSBU8khvFk", + "outputId": "407c4436-710d-4c14-8ecc-dc27e9650ecd", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + } + }, + "source": [ + "# Set up o número de casas decimais para o NumPy:\n", + "np.set_printoptions(precision = 2, suppress = True)\n", + "\n", + "# Define seed\n", + "np.random.seed(seed = 20111974)\n", + "\n", + "# Gera 10 números aleatórios a partir da Distribuição Normal(media, desvio_padrao)\n", + "media = 0\n", + "desvio_padrao = 1\n", + "a_numeros1 = np.random.normal(media, desvio_padrao, size = 10) # Array 1D de size = 10\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([ 2.51, 1.11, 2.06, 0.56, 0.3 , 1.05, -0.13, 1.06, 1.14,\n", + " 1.38])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 190 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "wa2t0P3nevTh" + }, + "source": [ + "Conferindo a média e desvio-padrão do array gerado:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "drUyk3f5ekDq", + "outputId": "1004d17e-8055-497e-f507-82373215e1d7", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "f'Distribuição N({np.mean(a_numeros1)}, {np.std(a_numeros1)})'" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'Distribuição N(1.1043374540652753, 0.735246705657231)'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 191 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "XSp7Hd-Gib67" + }, + "source": [ + "Estávamos à espera de media = 0 e sigma = 1. Certo? Porque isso não aconteceu?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "HP_8VSgygXOF" + }, + "source": [ + "## **Laboratório 1**\n", + "> Altere os valores de [size] para 100, 1.000, 10.000, 100.000 e 1.000.000 e relate o que acontece com a média e desvio padrão." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4TbmVbdcg6iU" + }, + "source": [ + "## **Minha solução**" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-qdiqBVHg-gd", + "outputId": "2dc7c5b6-72f9-48f0-a5df-a75338bff9ce", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 136 + } + }, + "source": [ + "# Define a média e o desvio-padrão\n", + "media = 0\n", + "desvio_padrao = 1\n", + "\n", + "# Define seed\n", + "np.random.seed(seed = 20111974)\n", + "\n", + "for i_size in [10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000]:\n", + " a_numeros1 = np.random.normal(media, desvio_padrao, size = i_size)\n", + " print(f'Size: {i_size}--> Distribuição: N({np.mean(a_numeros1)}, {np.std(a_numeros1)})')" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Size: 10--> Distribuição: N(1.1043374540652753, 0.735246705657231)\n", + "Size: 100--> Distribuição: N(-0.14020525697186714, 0.9254100654233511)\n", + "Size: 1000--> Distribuição: N(0.021644923462910873, 1.0054417533501039)\n", + "Size: 10000--> Distribuição: N(0.015499353804764507, 0.9970905566844254)\n", + "Size: 100000--> Distribuição: N(0.002039323041103302, 0.9960906293570095)\n", + "Size: 1000000--> Distribuição: N(-1.1062145143945444e-06, 0.999473966169304)\n", + "Size: 10000000--> Distribuição: N(0.0002892972723094128, 1.0001202837422036)\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "bp-YuviQwWqE" + }, + "source": [ + "Com relação à Distribuição Normal($\\mu, \\sigma$), temos que:\n", + "\n", + "![NormalDistribution](https://github.com/MathMachado/Materials/blob/master/NormalDistribution.PNG?raw=true)\n", + "\n", + "Fonte: [Normal Distribution](https://towardsdatascience.com/understanding-the-68-95-99-7-rule-for-a-normal-distribution-b7b7cbf760c2)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "KwHBY3Enk04N" + }, + "source": [ + "## Lei Forte dos Grandes Números - LFGN\n", + "> Por favor, leia o que diz a [Law of large numbers](https://en.wikipedia.org/wiki/Law_of_large_numbers). --> 3 minutos.\n", + "\n", + "* O que você aprendeu com isso?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "BhwmSkAjlszT" + }, + "source": [ + "## Exemplo 2\n", + "> Vamos nos aprofundar um pouco mais no que diz a LFGN. Para isso, vamos simular o lançamento de dados. Como sabemos, os dados possuem 6 lados numerados de 1 a 6, com igual probabilidade. Certo?\n", + "\n", + "A LFGN nos diz que à medida que N (o tamanho da amostra ou número de dados) cresce, então a média dos dados converge para o valor esperado. Isso quer dizer que:\n", + "\n", + "$$\\frac{1+2+3+4+5+6}{6}= \\frac{21}{6}= 3,5$$\n", + "\n", + "Ou seja, à medida que N (o tamanho da amostra) cresce, espera-se que a média dos dados se aproxime de 3,5. Ok?\n", + "\n", + "Vamos ver se isso é verdade..." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-QcJXf6roj0D" + }, + "source": [ + "Vamos usar o método np.random.randint (= função randint definido na classe np.random), a seguir:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "A2u0RzLOrRE2" + }, + "source": [ + "O que significa ou qual é a interpretação do resultado abaixo?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "B3-X_VBerUfa", + "outputId": "d423e036-5f8f-4d5f-916b-896ea7f092b9", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 101 + } + }, + "source": [ + "# Define seed\n", + "np.random.seed(seed = 20111974)\n", + "\n", + "# Simular 100 lançamentos de um dado:\n", + "a_dados_simulados = np.random.randint(1, 7, size = 100)\n", + "a_dados_simulados" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([4, 5, 3, 1, 1, 4, 3, 1, 2, 2, 1, 1, 6, 4, 5, 3, 1, 4, 1, 6, 2, 4,\n", + " 6, 2, 4, 3, 2, 6, 3, 6, 2, 6, 1, 3, 1, 2, 4, 2, 4, 6, 3, 2, 6, 1,\n", + " 4, 3, 6, 5, 2, 3, 3, 3, 3, 2, 1, 6, 2, 1, 2, 3, 1, 5, 6, 6, 6, 6,\n", + " 5, 6, 6, 5, 6, 3, 3, 2, 4, 2, 6, 1, 2, 3, 4, 5, 5, 3, 1, 6, 6, 5,\n", + " 5, 1, 4, 6, 2, 2, 4, 3, 6, 1, 5, 5])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 6 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "m8Of2MMIrbF3", + "outputId": "004fe1ff-4f4a-4914-e556-1f0dc72e6e43", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 134 + } + }, + "source": [ + "# Importar o pandas, pois vamos precisar do método pd.value_counts():\n", + "import pandas as pd\n", + "pd.value_counts(a_dados_simulados)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "6 22\n", + "3 18\n", + "2 18\n", + "1 17\n", + "4 13\n", + "5 12\n", + "dtype: int64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 7 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "54VwED8Br8rx" + }, + "source": [ + "**Interpretação**: Isso quer dizer que fizemos a simulação de lançamento de um dado 100 vezes. Acima, a frequência com que cada lado do dado aparece.\n", + "\n", + "Eu estava à espera de frequência igual para cada um dos lados, isto é, por volta dos 16 ou 17. Ou seja:\n", + "\n", + "$$\\frac{100}{6}= 16,66$$\n", + "\n", + "Mas ok, vamos continuar com nosso experimento..." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "HT_Dak-umC6I", + "outputId": "b3aca52b-4cc0-42a2-cdc8-d72e9db66416", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 168 + } + }, + "source": [ + "# Definir a semente\n", + "np.random.seed(20111974)\n", + "\n", + "for i_size in [10, 30, 50, 75, 100, 1000, 10000, 100000, 1000000]:\n", + " a_dados_simulados = np.random.randint(1, 7, size = i_size)\n", + " print(f'Size= {i_size} --> Média: {np.mean(a_dados_simulados)}')" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Size= 10 --> Média: 2.6\n", + "Size= 30 --> Média: 3.3666666666666667\n", + "Size= 50 --> Média: 3.72\n", + "Size= 75 --> Média: 3.2666666666666666\n", + "Size= 100 --> Média: 3.42\n", + "Size= 1000 --> Média: 3.461\n", + "Size= 10000 --> Média: 3.5259\n", + "Size= 100000 --> Média: 3.50794\n", + "Size= 1000000 --> Média: 3.50151\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "edWNNOnXtbtd" + }, + "source": [ + "E agora, como você interpreta esses resultados?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "eL6gXThkYcSf" + }, + "source": [ + "## Calcular percentis\n", + "> Boxplot" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jlGOQfXfPf0D" + }, + "source": [ + "![BoxPlot](https://github.com/MathMachado/Materials/blob/master/boxplot.png?raw=true)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "grtEXG2BoNRt" + }, + "source": [ + "Considere o array de retornos (simulados) a seguir:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "DjPKKq01YjF9", + "outputId": "c863f9da-eb31-44a6-b804-31d42a3d2052", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "import numpy as np\n", + "np.random.seed(20111974)\n", + "\n", + "# Simulando Retornos de ativos financeiros com a distribuição Normal(0, 1):\n", + "a_retornos = np.random.normal(0, 1, 100)\n", + "print(f'Média: {np.mean(a_retornos)}')" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Média: -0.016996335492713833\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ajjlfqgssLVO", + "outputId": "b59eea63-e564-40f7-fcff-5e12bbc9b69c", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 218 + } + }, + "source": [ + "a_retornos" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([ 2.51, 1.11, 2.06, 0.56, 0.3 , 1.05, -0.13, 1.06, 1.14,\n", + " 1.38, -2.06, 0.67, 0.73, -0.34, 0.44, 0.59, -1.29, 1.18,\n", + " -0.99, -1.79, -1.09, -0.91, -1.02, -1.36, -0.29, 0.06, -1.14,\n", + " -0.51, -0.84, -1.41, -0.22, -1.17, -0.61, -0.62, 1.08, 0.5 ,\n", + " 0.03, 1.83, 0.35, -1.15, -0.6 , -0.43, 0.11, -0.75, 0.72,\n", + " -0.51, 0.48, -0.38, -1.37, 1.54, -0.27, 0.68, -1.8 , 1.17,\n", + " -0.38, 0.19, 1.54, -0.12, -0.98, -1.23, 1.05, 1.91, 0.8 ,\n", + " 0.36, 1.03, -0.37, 0.33, 0.7 , -0.98, -1.21, 0.74, 0.18,\n", + " 0.1 , -0.78, -0.04, 1.67, -1.07, -0.55, -1.83, 0.12, 1.39,\n", + " -0.29, 0.32, -0.7 , -0.44, -2.03, -0.14, 1.66, -0.58, -0.79,\n", + " -0.81, 0.06, 0.87, -0.35, 1.37, 0.88, -1.48, -0.41, -0.19,\n", + " 0.47])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 19 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "XZ3m06gv9lei" + }, + "source": [ + "A seguir, o boxplot do array a_retornos:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "QtuwJP449tBQ", + "outputId": "7838c950-8789-43dc-ec52-f0e9a57fc1e2", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 269 + } + }, + "source": [ + "# Import da biblioteca seaborn:\n", + "import seaborn as sns\n", + "sns.boxplot(y = a_retornos)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 20 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "o9ujdjxNY6qE", + "outputId": "0858804c-1c23-4571-8d5a-c016df7d9133", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "# Vamos usar o método np.percentile(array, q = [p1, p2, p3, ..., p99])\n", + "percentis = np.percentile(a_retornos, q = [1, 5, 25, 50, 55, 75, 99])\n", + "\n", + "# Primeiro Quartil\n", + "q1 = percentis[2]" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "-0.7836147655170408" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 200 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "c75g2Egco2lc" + }, + "source": [ + "Em qual posição do array a_retornos se encontra Q3?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "nZr-A82Zo8Kb" + }, + "source": [ + "q3 = percentis[???]\n", + "print(q3)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "sWrnESPQT4JM" + }, + "source": [ + "# lim_inferior e lim_superior para detecção de outliers\n", + "lim_inferior = percentis[2] - 1.5 * (q3 - q1)\n", + "lim_superior = percentis[5] + 1.5 * (q3 - q1)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Yb4-ZJlUUYsi", + "outputId": "80e4d495-7e2d-4cd3-c339-2411b4c8f73b", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "f'Limite Inferior: {lim_inferior}; Limite Superior: {lim_superior}'" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'Limite Inferior: -3.0382521297304486; Limite Superior: 2.974114174838639'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 202 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Jr6oXIHlUxOe", + "outputId": "5a9574f3-0ba6-4b0f-ca75-36a6a6c17e64", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "np.min(a_retornos)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "-2.0599556303504514" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 203 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "UxE47cN0U54X", + "outputId": "0ada0239-1946-4689-8f70-6d563b48cd70", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "np.max(a_retornos)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "2.506276801325959" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 204 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "OTB9HnIac499" + }, + "source": [ + "___\n", + "# **Ordenar itens de um array**\n", + "> Considere o array a seguir:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Jgj8Yw46dBMx", + "outputId": "ae39b268-d74a-41ef-b55f-e8334cb05d4d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "np.random.seed(20111974)\n", + "a_numeros1 = np.random.random(10)\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([0.53, 0.57, 0.54, 0.65, 0.86, 0.6 , 0.87, 0.46, 0.67, 0.64])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 205 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cC9272GFdRln" + }, + "source": [ + "Ordenando os itens de a_numeros1..." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "YUP90nBVdUeF", + "outputId": "79a45cda-54b2-4256-ec24-74a732e743ee", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "np.sort(a_numeros1)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([0.46, 0.53, 0.54, 0.57, 0.6 , 0.64, 0.65, 0.67, 0.86, 0.87])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 206 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lG763cDGj-yB" + }, + "source": [ + "___\n", + "# **Obter ajuda**" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ehxPlD3EkEYL", + "outputId": "48705c96-d575-4985-ecb8-ec644a527b28", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + } + }, + "source": [ + "help(np.random.normal)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Help on built-in function normal:\n", + "\n", + "normal(...) method of numpy.random.mtrand.RandomState instance\n", + " normal(loc=0.0, scale=1.0, size=None)\n", + " \n", + " Draw random samples from a normal (Gaussian) distribution.\n", + " \n", + " The probability density function of the normal distribution, first\n", + " derived by De Moivre and 200 years later by both Gauss and Laplace\n", + " independently [2]_, is often called the bell curve because of\n", + " its characteristic shape (see the example below).\n", + " \n", + " The normal distributions occurs often in nature. For example, it\n", + " describes the commonly occurring distribution of samples influenced\n", + " by a large number of tiny, random disturbances, each with its own\n", + " unique distribution [2]_.\n", + " \n", + " Parameters\n", + " ----------\n", + " loc : float or array_like of floats\n", + " Mean (\"centre\") of the distribution.\n", + " scale : float or array_like of floats\n", + " Standard deviation (spread or \"width\") of the distribution. Must be\n", + " non-negative.\n", + " size : int or tuple of ints, optional\n", + " Output shape. If the given shape is, e.g., ``(m, n, k)``, then\n", + " ``m * n * k`` samples are drawn. If size is ``None`` (default),\n", + " a single value is returned if ``loc`` and ``scale`` are both scalars.\n", + " Otherwise, ``np.broadcast(loc, scale).size`` samples are drawn.\n", + " \n", + " Returns\n", + " -------\n", + " out : ndarray or scalar\n", + " Drawn samples from the parameterized normal distribution.\n", + " \n", + " See Also\n", + " --------\n", + " scipy.stats.norm : probability density function, distribution or\n", + " cumulative density function, etc.\n", + " \n", + " Notes\n", + " -----\n", + " The probability density for the Gaussian distribution is\n", + " \n", + " .. math:: p(x) = \\frac{1}{\\sqrt{ 2 \\pi \\sigma^2 }}\n", + " e^{ - \\frac{ (x - \\mu)^2 } {2 \\sigma^2} },\n", + " \n", + " where :math:`\\mu` is the mean and :math:`\\sigma` the standard\n", + " deviation. The square of the standard deviation, :math:`\\sigma^2`,\n", + " is called the variance.\n", + " \n", + " The function has its peak at the mean, and its \"spread\" increases with\n", + " the standard deviation (the function reaches 0.607 times its maximum at\n", + " :math:`x + \\sigma` and :math:`x - \\sigma` [2]_). This implies that\n", + " `numpy.random.normal` is more likely to return samples lying close to\n", + " the mean, rather than those far away.\n", + " \n", + " References\n", + " ----------\n", + " .. [1] Wikipedia, \"Normal distribution\",\n", + " https://en.wikipedia.org/wiki/Normal_distribution\n", + " .. [2] P. R. Peebles Jr., \"Central Limit Theorem\" in \"Probability,\n", + " Random Variables and Random Signal Principles\", 4th ed., 2001,\n", + " pp. 51, 51, 125.\n", + " \n", + " Examples\n", + " --------\n", + " Draw samples from the distribution:\n", + " \n", + " >>> mu, sigma = 0, 0.1 # mean and standard deviation\n", + " >>> s = np.random.normal(mu, sigma, 1000)\n", + " \n", + " Verify the mean and the variance:\n", + " \n", + " >>> abs(mu - np.mean(s))\n", + " 0.0 # may vary\n", + " \n", + " >>> abs(sigma - np.std(s, ddof=1))\n", + " 0.1 # may vary\n", + " \n", + " Display the histogram of the samples, along with\n", + " the probability density function:\n", + " \n", + " >>> import matplotlib.pyplot as plt\n", + " >>> count, bins, ignored = plt.hist(s, 30, density=True)\n", + " >>> plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *\n", + " ... np.exp( - (bins - mu)**2 / (2 * sigma**2) ),\n", + " ... linewidth=2, color='r')\n", + " >>> plt.show()\n", + " \n", + " Two-by-four array of samples from N(3, 6.25):\n", + " \n", + " >>> np.random.normal(3, 2.5, size=(2, 4))\n", + " array([[-4.49401501, 4.00950034, -1.81814867, 7.29718677], # random\n", + " [ 0.39924804, 4.68456316, 4.99394529, 4.84057254]]) # random\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1Q_konJVaBsV" + }, + "source": [ + "___\n", + "# **Criar arrays 1D**" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "DddZT5kadYJ7" + }, + "source": [ + "import numpy as np\n", + "np.set_printoptions(precision = 2, suppress = True)\n", + "np.random.seed(seed = 20111974)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jaqd-VnF3yIt" + }, + "source": [ + "Criar o array 1D a_numeros1, com os seguintes números:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "E3niz_zHaF3e", + "outputId": "055d73d6-e3ac-4807-ae58-2ab9d2d268fe", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "a_numeros1 = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 2 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DyfXbW_ZKJBS" + }, + "source": [ + "Qual a dimensão de a_numeros1?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gbHlydALKB3R", + "outputId": "febef174-625f-4799-aebd-a2423ff86bf2", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "# Dimensão do array\n", + "a_numeros1.ndim" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "1" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 3 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "am9otElpKNPa" + }, + "source": [ + "Qual o shape (dimensão) do array a_numeros1?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "juJJ74d2wale", + "outputId": "38f5820f-d9df-43bb-9b9e-f9c735550a9e", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "# Números de itens no array\n", + "a_numeros1.shape" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(10,)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 4 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "BHg4Rre3GwPy" + }, + "source": [ + "O array a_numeros1 poderia ter sido criado usando a função np.arange(inicio, fim, step):" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "I3fyusN7G5Zn" + }, + "source": [ + "# Lembre-se que o número 10 é exclusive.\n", + "a_numeros2 = np.arange(start = 0, stop = 10, step = 1)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "IHCEpmUxXsaK" + }, + "source": [ + "Outra alternativa seria usar np.linspace(start = 0, stop = 10, num = 9). Acompanhe a seguir:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "JB9Y_x3RX1GX" + }, + "source": [ + "# Com np.linspace, o valor 9 é inclusive.\n", + "a_numeros3 = np.linspace(0, 9, 10)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "P6MR8MPeYOZm" + }, + "source": [ + "Compare os resultados de a_numeros1, a_numeros2 e a_numeros3 a seguir:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "tWEzge6HYSFu", + "outputId": "8ad6afab-7a41-4d5d-ca6a-994e9c2caf1e", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 12 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "lUNlFVKYYT9f", + "outputId": "c0fe615e-f5e4-414b-ac87-4790188bbfc5", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "a_numeros2" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 22 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Xo8Lid5fYVPW", + "outputId": "2ea0ae7b-8046-4278-fc76-27c75146ba07", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "a_numeros3" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 25 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "V9aW7C4vHAcF" + }, + "source": [ + "Ou seja, a_numeros1 é igual a a_numeros2 que também é igual a a_numeros3. Ok?\n", + "\n", + "**ATENÇÃO**: Observe que a sintaxe para criar a_numeros3 é ligeiramente diferente da sintaxe usada para criar a_numeros1 e a_numeros2. Abaixo, a sintaxe do comando np.linspace:\n", + "\n", + "![](https://github.com/MathMachado/Materials/blob/master/linspace_sintaxe.PNG?raw=true)\n", + "\n", + "Source: [HOW TO USE THE NUMPY LINSPACE FUNCTION](https://www.sharpsightlabs.com/blog/numpy-linspace/)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "KNnwZa3uvYqE" + }, + "source": [ + "Soma 2 à cada item de a_numeros1:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Jt2KVyviw0bp", + "outputId": "d123c61e-f732-450c-b148-680b779bfa37", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 213 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "arROkhWXbdTW", + "outputId": "4fbecfe8-ce4a-406d-9f54-ec23a4a1806c", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "a_numeros2 = a_numeros1 + 2\n", + "a_numeros2" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 214 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ZJx2vG86vdVi" + }, + "source": [ + "Multiplicar por 10 cada item de a_numeros1:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Vm7abO6Ebkun", + "outputId": "157f1414-e300-4e76-a83b-44e56c594b04", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "a_numeros1 = a_numeros1*10\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 215 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0Ev1xnBwaYJG" + }, + "source": [ + "___\n", + "# **Criar Arrays Multidimensionais**\n", + "> Ao criarmos, por exemplo, um array 2D, então a chamamos de matriz." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gHaeAug5vjjd" + }, + "source": [ + "Criar o array com 2 linhas e 3 colunas usando números aleatórios:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "VDi0vIPSYR4F", + "outputId": "5687b067-ecf8-4522-f0a0-43012ec5fc90", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 50 + } + }, + "source": [ + "np.random.seed(20111974)\n", + "a_numeros1 = np.random.randn(2, 3)\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[2.51, 1.11, 2.06],\n", + " [0.56, 0.3 , 1.05]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 32 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DIdd-nA3tJjV" + }, + "source": [ + "## Dimensão de um array\n", + "> Dimensão é o número de linhas e colunas da matriz." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "pKvjjnkrK-v7", + "outputId": "09a31b77-bbd6-4a39-df96-7d2c3870ade0", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "a_numeros1.shape" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(2, 3)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 217 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-DHS5jXELCfa" + }, + "source": [ + "a_numeros1 é um array 2D (ou matriz), ou seja, 2 linhas, onde cada linha tem 3 elementos." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "HJI6X1wvv4Bg" + }, + "source": [ + "Criar um array com 3 linhas e 3 colunas:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "hXPbWh3Tv26T", + "outputId": "60a69fea-451f-4d33-9342-962ffe4f293e", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 67 + } + }, + "source": [ + "a_numeros2 = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])\n", + "a_numeros2" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[1, 2, 3],\n", + " [4, 5, 6],\n", + " [7, 8, 9]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 34 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "we6ZJOICc7bQ", + "outputId": "01da492b-e3f9-4d16-96d2-aa37a4837b82", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "# Número de linhas e colunas de a_numeros1:\n", + "a_numeros1.shape" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(2, 3)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 35 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "f0ocwuI1dED6", + "outputId": "65179388-9f21-41b0-983c-15d332081f15", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "# Número de linhas e colunas de a_numeros2\n", + "a_numeros2.shape" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(3, 3)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 36 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "CApPtnW0YuRP", + "outputId": "c84fcb1b-9520-465d-ea49-7e8a39d0e773", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 67 + } + }, + "source": [ + "# Somar 2 à cada elemento de a_numeros2\n", + "a_numeros2 = a_numeros2+2\n", + "a_numeros2" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 3, 4, 5],\n", + " [ 6, 7, 8],\n", + " [ 9, 10, 11]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 37 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "M87aGmxRY3RW", + "outputId": "95c25c90-5bd9-47f4-ef72-79c9f1a9b69e", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 67 + } + }, + "source": [ + "# Multiplicar por 10 cada elemento de a_numeros2\n", + "a_numeros2 = a_numeros2*10\n", + "a_numeros2" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 30, 40, 50],\n", + " [ 60, 70, 80],\n", + " [ 90, 100, 110]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 38 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qZt93y1IL_v7" + }, + "source": [ + "___\n", + "# **Copiar arrays**\n", + "> Considere o array abaixo:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "sH2FTXj5MRRC", + "outputId": "b750e4c3-49e5-4ded-9b7e-b91167a7d1a6", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 50 + } + }, + "source": [ + "np.random.seed(20111974)\n", + "a_numeros1 = np.random.randn(2, 3)\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[2.51, 1.11, 2.06],\n", + " [0.56, 0.3 , 1.05]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 39 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VtgKeMt6MYrr" + }, + "source": [ + "Fazendo a cópia de a_numeros1..." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "K0hOHR3IMa-o", + "outputId": "e7a86131-79b5-4224-d949-59f09433575c", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 50 + } + }, + "source": [ + "a_numeros1_copia = a_numeros1.copy()\n", + "a_numeros1_copia" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[2.51, 1.11, 2.06],\n", + " [0.56, 0.3 , 1.05]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 40 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lFpmcR0HkCar" + }, + "source": [ + "___\n", + "# **Operações com arrays**\n", + "> Considere um array com temperaturas em Farenheit dado por:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "VnagcUqVkLhW", + "outputId": "d59f8cf9-7be2-4522-8861-1a26b86c736c", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "# Define a seed\n", + "np.random.seed(20111974)\n", + "\n", + "a_temperatura_farenheit = np.array(np.random.randint(0, 100, 10))\n", + "a_temperatura_farenheit " + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([60, 42, 40, 8, 27, 2, 46, 88, 81, 88])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 41 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "VrjNKfXxk1yv", + "outputId": "9e1a8410-3be0-49b9-be1c-d0588814a9dc", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "type(a_temperatura_farenheit)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "numpy.ndarray" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 42 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "o1STejhrk0kZ" + }, + "source": [ + "Transformando a temperatura Fahrenheit em Celsius..." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "E_jXflR_lNy3", + "outputId": "16563271-d4c1-4f89-f609-f64be0fd2bfc", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 50 + } + }, + "source": [ + "a_temperatura_celsius = 5*a_temperatura_farenheit/9 - 5*32/9\n", + "a_temperatura_celsius" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([ 15.56, 5.56, 4.44, -13.33, -2.78, -16.67, 7.78, 31.11,\n", + " 27.22, 31.11])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 53 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "U4pCv0pNqPZI", + "outputId": "a6ec3a9b-3aeb-4682-ad4d-1e4c58ceb8b4", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 50 + } + }, + "source": [ + "# O mesmo resultado, porém, escrito de forma diferente:\n", + "a_temperatura_celsius = (5/9)*a_temperatura_farenheit - (160/9)\n", + "a_temperatura_celsius" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([ 15.56, 5.56, 4.44, -13.33, -2.78, -16.67, 7.78, 31.11,\n", + " 27.22, 31.11])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 52 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1UT4YD2FawUA" + }, + "source": [ + "___\n", + "# **Selecionar itens**" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "pqOv8P1za1m8", + "outputId": "9c2d9f0b-d5e2-4860-c8e9-37e3c006aed9", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "# Selecionar o segundo item de a_numeros1 (lembre-se que no Python arrays começam com indice = 0)\n", + "a_numeros1[1]" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([0.56, 0.3 , 1.05])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 45 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "TIwVKk6AyRv6" + }, + "source": [ + "Dado a_numeros2 abaixo:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "zoDmbXo6bCeu", + "outputId": "ed5c7f69-b8e5-43b5-cf65-057c99cd8518", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 67 + } + }, + "source": [ + "a_numeros2" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 30, 40, 50],\n", + " [ 60, 70, 80],\n", + " [ 90, 100, 110]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 46 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "iJXSPp-0yb4w" + }, + "source": [ + "... selecionar o item da linha 2, coluna 3 do array a_numeros2:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "sJiVfnlzcjRv", + "outputId": "a6e3e8a2-b5d4-4cce-f1d5-725d84e74f86", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "a_numeros2[1, 2]" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "80" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 47 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Xl5HwJIMcv2e", + "outputId": "9c93c138-3641-4cd6-c083-83d2a5b04148", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "# Selecionar o último elemento de a_numeros1 --> Lembre-se que a_numeros1 é um array. Desta forma, teremos o último elemento do array!\n", + "a_numeros1[-1]" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([0.56, 0.3 , 1.05])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 51 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ezTH0HsyrnAl" + }, + "source": [ + "Veja..." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "OBv9EM54rYX3", + "outputId": "a8c5c0e7-42da-4b8a-dbb0-36a09eda1981", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 50 + } + }, + "source": [ + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[2.51, 1.11, 2.06],\n", + " [0.56, 0.3 , 1.05]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 50 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Po3WLFC-rod8", + "outputId": "5fe7358a-cb76-484d-ac49-c46b5db3b800", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "a_temperatura_celsius[-1]" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "31.111111111111107" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 54 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4qJJ2HCedW4h" + }, + "source": [ + "___\n", + "# **Aplicar funções como max(), min() e etc**" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "_meTJdUsda4e", + "outputId": "6eb348a3-e169-4ca4-8312-cc21c36db87f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "source": [ + "f'O máximo de a_numeros1 é: {np.max(a_numeros1)}'" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + }, + "text/plain": [ + "'O máximo de a_numeros1 é: 2.506276801325959'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 55 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "m-wiBkAidnhN", + "outputId": "28e2204c-6141-445d-870e-65f0cf4c17d3", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "source": [ + "f'O mínimo de a_numeros1 é: {np.min(a_numeros1)}'" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + }, + "text/plain": [ + "'O mínimo de a_numeros1 é: 0.29897275739745677'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 56 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "lmupnRHQdtwh", + "outputId": "4e126754-2d47-4493-85e2-8acb80a2d579", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "source": [ + "f'O máximo de a_numeros2 é: {np.max(a_numeros2)}'" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + }, + "text/plain": [ + "'O máximo de a_numeros2 é: 110'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 57 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "H2z7oB6Bd786", + "outputId": "938a8ac0-f5d5-41b0-f3d0-8e38aba3dcaa", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "source": [ + "f'O máximo de cada LINHA de a_numeros2 é: {np.max(a_numeros2, axis = 1)}' # Aqui, axis = 1 é que diz ao numpy que estamos interessados nas linhas" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + }, + "text/plain": [ + "'O máximo de cada LINHA de a_numeros2 é: [ 50 80 110]'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 58 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gj2ZBDsWeMyk", + "outputId": "00921a94-02c7-46cc-dc26-fec32cb6ae35", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "source": [ + "f'O máximo de cada COLUNA de a_numeros2 é: {np.max(a_numeros2, axis = 0)}' # axis = 0, diz ao numpy que estamos interessados nas colunas." + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + }, + "text/plain": [ + "'O máximo de cada COLUNA de a_numeros2 é: [ 90 100 110]'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 59 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7_tEfm2IecIU" + }, + "source": [ + "___\n", + "# **Calcular Estatísticas Descritivas: média e variância**" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "lIY5jx3ueh7q", + "outputId": "1b757995-be76-4485-9ae9-6c8bd2fa1a10", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "source": [ + "f'A média de a_numeros1 é: {np.mean(a_numeros1)}'" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + }, + "text/plain": [ + "'A média de a_numeros1 é: 1.2649068535973844'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 60 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "VmqSELRReuAW", + "outputId": "92fd3010-e201-46b1-c5d7-4eeb08a019e1", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "source": [ + "f'A média de a_numeros2 é: {np.mean(a_numeros2)}'" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + }, + "text/plain": [ + "'A média de a_numeros2 é: 70.0'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 61 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Gxap-Wg5e2_H", + "outputId": "8f043c45-4368-4c1e-d878-d38f088de3b8", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "source": [ + "f'O Desvio Padrão de a_numeros2 é: {np.std(a_numeros2)}'" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + }, + "text/plain": [ + "'O Desvio Padrão de a_numeros2 é: 25.81988897471611'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 62 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "R0GcljGtfBvP" + }, + "source": [ + "___\n", + "# **Reshaping**\n", + "> Muito útil em Machine Learning." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vfEmw01j8zux" + }, + "source": [ + "## Exemplo 1\n", + "* O array a_numeros2 tem a seguinte forma:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-Lb3VZCCfK_a", + "outputId": "1106bfb2-28b0-4f1d-847a-cb4f964e4ffc", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + } + }, + "source": [ + "a_numeros2" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 30, 40, 50],\n", + " [ 60, 70, 80],\n", + " [ 90, 100, 110]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 240 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "YWN_nN-4fD7u", + "outputId": "404c9b49-64f6-40f6-d897-5e2dfa8a52b7", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 168 + } + }, + "source": [ + "# reshaping para 9 linhas e 1 coluna:\n", + "a_numeros2.reshape(9, 1) # a_numeros2.reshape(9,-1) produz o mesmo resultado." + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 30],\n", + " [ 40],\n", + " [ 50],\n", + " [ 60],\n", + " [ 70],\n", + " [ 80],\n", + " [ 90],\n", + " [100],\n", + " [110]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 63 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "id9ILRRt7SwY" + }, + "source": [ + "## Mais um exemplo de Reshape\n", + "> Dado o array 1D abaixo, reshape para um array 3D com 2 colunas." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "9RA9Ht2b7Swd", + "outputId": "3b0cc275-06ed-4b32-da9f-e4a70cca538a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "# Define seed\n", + "np.random.seed(20111974)\n", + "a_numeros1 = np.array(np.random.randint(1, 10, size = 15))\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([9, 9, 3, 9, 2, 9, 1, 5, 3, 1, 9, 4, 8, 2, 4])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 64 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8KxR4xZT7cRv" + }, + "source": [ + "### Solução\n", + "> Temos 15 elementos em a_numeros1 para construir (\"reshape\") um array 3D com 2 colunas.\n", + "\n", + "A princípio, a solução seria..." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "VMdHl1Il7wLw", + "outputId": "df821e79-bb81-4b4d-8d3d-050b1e4b4bef", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 163 + } + }, + "source": [ + "a_numeros1.reshape(-1, 2) # O valor \"-1\" na posição das linhas pede ao NumPy para calcular o número de linhas automaticamente." + ], + "execution_count": null, + "outputs": [ + { + "output_type": "error", + "ename": "ValueError", + "evalue": "ignored", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\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_X\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# O valor \"-1\" na posição das linhas pede ao NumPy para calcular o número de linhas automaticamente.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mValueError\u001b[0m: cannot reshape array of size 15 into shape (2)" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "pZS4b4-y708q" + }, + "source": [ + "Porque temos esse erro?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4disywvR8HeH" + }, + "source": [ + "E se fizermos..." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "3oEAAXTp8I7Z", + "outputId": "6bd71483-9b77-4a0c-b2a3-f9da78830729", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "# Define seed\n", + "np.random.seed(20111974)\n", + "a_numeros1 = np.array(np.random.randint(1, 10, size = 16)) # Observe que agora temos 16 elementos\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([9, 9, 3, 9, 2, 9, 1, 5, 3, 1, 9, 4, 8, 2, 4, 3])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 65 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "iUhth0QV8Rpt" + }, + "source": [ + "Reshapping..." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "9D1y7uD88Qip", + "outputId": "37d2e79b-7de9-45c7-e630-5ed8cd00457f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 151 + } + }, + "source": [ + "a_numeros1.reshape(-1, 2) # O valor \"-1\" na posição das linhas pede ao NumPy para calcular o número de linhas automaticamente." + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[9, 9],\n", + " [3, 9],\n", + " [2, 9],\n", + " [1, 5],\n", + " [3, 1],\n", + " [9, 4],\n", + " [8, 2],\n", + " [4, 3]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 66 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yvTnrszn8Yk0" + }, + "source": [ + "Porque agora deu certo?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LeQ9LqIE8baG" + }, + "source": [ + "## Último exemplo com reshape\n", + "> Considere o array a seguir:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "OQOC9iiN8hZT", + "outputId": "80bd5db3-2778-442c-ce68-f23679f47897", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 50 + } + }, + "source": [ + "np.random.seed(20111974)\n", + "a_numeros1 = np.random.randn(2, 3)\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[2.51, 1.11, 2.06],\n", + " [0.56, 0.3 , 1.05]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 67 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Cvce8qBl9Cvq" + }, + "source": [ + "Queremos agora transformá-la num array de 3 linhas e 2 colunas." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "QDDsYoVt9Klz", + "outputId": "60176abb-f0d2-4041-bb4a-27ca16552c4a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 67 + } + }, + "source": [ + "a_numeros1.reshape(-1, 2)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[2.51, 1.11],\n", + " [2.06, 0.56],\n", + " [0.3 , 1.05]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 68 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "AdwU5ygt9Svq" + }, + "source": [ + "Poderia ser..." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "5uBeokKc9Uo-", + "outputId": "46b45ad5-94b3-4cf0-e866-fde24ea8c99f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 67 + } + }, + "source": [ + "a_numeros1.reshape(3, -1)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[2.51, 1.11],\n", + " [2.06, 0.56],\n", + " [0.3 , 1.05]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 69 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "OeRBsobc9aKj" + }, + "source": [ + "E por fim, também poderia ser..." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "MDt8UYYH9dBw", + "outputId": "5febef42-e5f6-4a17-9dbd-b3c0d8fad09c", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 67 + } + }, + "source": [ + "a_numeros1.reshape(3, 2)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[2.51, 1.11],\n", + " [2.06, 0.56],\n", + " [0.3 , 1.05]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 70 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "91o5vycQfdKW" + }, + "source": [ + "___\n", + "# **Transposta**\n", + "* O array a_numeros2 tem a seguinte forma:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "RsZwyuhoffjb", + "outputId": "df1868bd-82fe-49ad-c3bd-c661eede1a58", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + } + }, + "source": [ + "a_numeros2" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 30, 40, 50],\n", + " [ 60, 70, 80],\n", + " [ 90, 100, 110]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 250 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "A3MzTVoGfiyO", + "outputId": "ac747fcf-8adb-4076-ee70-fba500620b1d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + } + }, + "source": [ + "# Transposta do array a_numeros2 é dado por:\n", + "a_numeros2.T" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 30, 60, 90],\n", + " [ 40, 70, 100],\n", + " [ 50, 80, 110]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 251 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Ij-ZW5IyzXIb" + }, + "source": [ + "Ou seja, linha virou coluna. Ok?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qLy6ajgpt3lU" + }, + "source": [ + "# **Inversa da matriz quadrada**\n", + "> Se uma matriz é não-singular, então sua inversa existe.\n", + "\n", + "* Se o determinante de uma matriz is not equal to zero, then the matrix isé diferente de 0, então a matriz é não-singular." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-u7jRq34t9_x" + }, + "source": [ + "import numpy as np\n", + "\n", + "a_numeros1 = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])\n", + "a_numeros2 = np.array([[6, 2], [5, 3]])\n", + "a_numeros3 = np.array([[1, 3, 5],[2, 5, 1],[2, 3, 8]])" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "7zmHHWWlvaYB", + "outputId": "7b9618a8-7a7a-45aa-fda3-d64b60aa5a9c", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + } + }, + "source": [ + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[1, 2, 3],\n", + " [4, 5, 6],\n", + " [7, 8, 9]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 253 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "3fHKyhOJvcak", + "outputId": "09f93a28-fdd9-4aa4-b8dd-e2ddec78fd18", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + } + }, + "source": [ + "a_numeros2" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[6, 2],\n", + " [5, 3]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 254 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vQG7yyfjwLg9", + "outputId": "a5bc619d-71eb-49da-e4af-9acc0a1e8b85", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + } + }, + "source": [ + "a_numeros3" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[1, 3, 5],\n", + " [2, 5, 1],\n", + " [2, 3, 8]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 255 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qa2Yre2rwgRk" + }, + "source": [ + "## Determinantes da matriz quadrada" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "N6jwuC6twkyc", + "outputId": "f5dad967-2d7a-4d88-d513-8a7c65899372", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "np.linalg.det(a_numeros1)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.0" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 256 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "QSvViNwzwnhI", + "outputId": "7a9f32a3-d6b5-48b9-c78a-abeb136be09b", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "np.linalg.det(a_numeros2)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "8.000000000000002" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 257 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "o8jwsnccw5id", + "outputId": "0e7ec980-9de3-42af-f326-5cc3678d1830", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "np.linalg.det(a_numeros3)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "-25.000000000000007" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 258 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kkVaTgzgw_XJ" + }, + "source": [ + "A seguir, calculamos as inversas das matrizes acima definidas..." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "b9FgWvTYvpik", + "outputId": "f414dc21-c596-4474-b4c7-980a91580728", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + } + }, + "source": [ + "np.linalg.inv(a_numeros2)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 0.38, -0.25],\n", + " [-0.62, 0.75]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 259 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "KsdEt1kIvsM_", + "outputId": "b1dd24cb-f934-4db5-9f74-94d09ada624d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 459 + } + }, + "source": [ + "np.linalg.inv(a_numeros1)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "error", + "ename": "LinAlgError", + "evalue": "ignored", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mLinAlgError\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[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlinalg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma_X\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<__array_function__ internals>\u001b[0m in \u001b[0;36minv\u001b[0;34m(*args, **kwargs)\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/numpy/linalg/linalg.py\u001b[0m in \u001b[0;36minv\u001b[0;34m(a)\u001b[0m\n\u001b[1;32m 549\u001b[0m \u001b[0msignature\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'D->D'\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misComplexType\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;34m'd->d'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 550\u001b[0m \u001b[0mextobj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_linalg_error_extobj\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_raise_linalgerror_singular\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 551\u001b[0;31m \u001b[0mainv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_umath_linalg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msignature\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msignature\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mextobj\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mextobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 552\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mainv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult_t\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\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 553\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/numpy/linalg/linalg.py\u001b[0m in \u001b[0;36m_raise_linalgerror_singular\u001b[0;34m(err, flag)\u001b[0m\n\u001b[1;32m 95\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 96\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_raise_linalgerror_singular\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mflag\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[0;32m---> 97\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mLinAlgError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Singular matrix\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 98\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 99\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_raise_linalgerror_nonposdef\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mflag\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[0;31mLinAlgError\u001b[0m: Singular matrix" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VA_F7_7kccpn" + }, + "source": [ + "Porque não temos a inversa de a_numeros1?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ANPBCnmVwOf4", + "outputId": "10d89ffe-728f-4e3a-df1b-88fc9bddd972", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + } + }, + "source": [ + "np.linalg.inv(a_numeros3)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[-1.48, 0.36, 0.88],\n", + " [ 0.56, 0.08, -0.36],\n", + " [ 0.16, -0.12, 0.04]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 262 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "XAf9k1egxcdF" + }, + "source": [ + "# **Resolver sistemas de equações lineares**\n", + "> Considere o sistema de euqações lineares abaixo:\n", + "\n", + "\\begin{equation}\n", + "x + 3y + 5z = 10\\\\\n", + "2x+ 5y + z = 8 \\\\\n", + "2x + 3y + 8z= 3\n", + "\\end{equation}\n", + "\n", + "Ou $Ax = b$. A solução deste sistema de equações é dada por $A^{-1}b$." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "oNf5nqaLxhBY" + }, + "source": [ + "Ou seja, basta encontrarmos a inversa de A e multiplicarmos por b." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "omzC5dGA0btc", + "outputId": "d0010653-49f2-4e96-d4e2-502457e963a7", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + } + }, + "source": [ + "A= np.array([[1, 3, 5], [2, 5, 1], [2, 3, 8]])\n", + "np.linalg.inv(A)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[-1.48, 0.36, 0.88],\n", + " [ 0.56, 0.08, -0.36],\n", + " [ 0.16, -0.12, 0.04]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 264 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "AiXI3oxB05iE" + }, + "source": [ + "Agora basta multiplicar a matriz inversa $A^{-1}$ acima por b. " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "XoGebKDa2Fcd" + }, + "source": [ + "A_Inv = np.linalg.inv(A)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "sKaP0a1QZG-P" + }, + "source": [ + "b= np.array([10, 8, 3]).reshape(3, -1)\n", + "b" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "3dAVq8dg19VI" + }, + "source": [ + "A_Inv.dot(b)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "zso6hTnB17cm" + }, + "source": [ + "Uma forma fácil de se fazer isso é utilizar a expressão abaixo:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ptQHIVll1E4P" + }, + "source": [ + "b= np.array([[10], [8], [3]])\n", + "b" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "X4VL8lyY1Xus" + }, + "source": [ + "np.linalg.solve(A, b)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "fJKmwTS59-Bc" + }, + "source": [ + "# **Empilhar arrays**\n", + "\n", + "## Exemplo 1\n", + "\n", + "![Empilhar1](https://github.com/MathMachado/Materials/blob/master/Empilhar1.PNG?raw=true)\n", + "\n", + "## Exemplo 2\n", + "\n", + "![Empilhar2](https://github.com/MathMachado/Materials/blob/master/Empilhar2.PNG?raw=true)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "rhPTt3EwXden" + }, + "source": [ + "## Gerar os arrays do exemplo1" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "zEI-yBy3-E46" + }, + "source": [ + "np.random.seed(20111974)\n", + "a_numeros1 = np.random.randn(2, 3)\n", + "\n", + "np.random.seed(19741120)\n", + "a_numeros2 = np.random.randn(2, 3)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "UYsAqBRp--79" + }, + "source": [ + "## Método 1 - Concatenate([A, B])" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "HgO1ujvhObyE", + "outputId": "12530dac-087a-4f7f-8266-a7b4190751b9", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 50 + } + }, + "source": [ + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[2.5062768 , 1.11440422, 2.05565501],\n", + " [0.56482376, 0.29897276, 1.04930857]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 4 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "2aQY_klZOeg9", + "outputId": "a8b9e2d7-1575-4051-b4cc-339cbd28d403", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 50 + } + }, + "source": [ + "a_numeros2" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[-0.77337752, -1.10547465, 0.10062807],\n", + " [-1.14571729, -2.15266227, -0.75255725]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 5 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "bK70vaq8_KMH", + "outputId": "ec2a3991-cde8-4067-f824-86bf94452bfe", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 84 + } + }, + "source": [ + "np.concatenate([a_numeros1, a_numeros2], axis = 0) # axis= 0 diz ao NumPy para empilhar as linhas" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 2.5062768 , 1.11440422, 2.05565501],\n", + " [ 0.56482376, 0.29897276, 1.04930857],\n", + " [-0.77337752, -1.10547465, 0.10062807],\n", + " [-1.14571729, -2.15266227, -0.75255725]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 6 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "CpaXBkm8_BF8" + }, + "source": [ + "## Método 2 - np.r_[A, B]" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "3QnVUzAY_teZ", + "outputId": "f20f678e-0267-4480-a359-eddc869fee1d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 84 + } + }, + "source": [ + "np.r_[a_numeros1, a_numeros2]" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 2.5062768 , 1.11440422, 2.05565501],\n", + " [ 0.56482376, 0.29897276, 1.04930857],\n", + " [-0.77337752, -1.10547465, 0.10062807],\n", + " [-1.14571729, -2.15266227, -0.75255725]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 7 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "XmSPbDP6_20W" + }, + "source": [ + "**Obs**.: Eu prefiro este método!" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dzVKW_wX_Dzw" + }, + "source": [ + "## Método 3 - np.vstack([A, B]) = np.r_[A, B]" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "uL7lEN_mABID", + "outputId": "f041eccb-ed45-4503-cc8e-9e81e9ae92f5", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 84 + } + }, + "source": [ + "np.vstack([a_numeros1, a_numeros2])" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 2.5062768 , 1.11440422, 2.05565501],\n", + " [ 0.56482376, 0.29897276, 1.04930857],\n", + " [-0.77337752, -1.10547465, 0.10062807],\n", + " [-1.14571729, -2.15266227, -0.75255725]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 8 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "68icJ-2ZAdRj" + }, + "source": [ + "# Concatenar arrays\n", + "\n", + "## Exemplo 1\n", + "\n", + "![Concatenar1](https://github.com/MathMachado/Materials/blob/master/Concatenar1.PNG?raw=true)\n", + "\n", + "# Exemplo 2\n", + "\n", + "![Concatenar2](https://github.com/MathMachado/Materials/blob/master/Concatenar2.PNG?raw=true)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "OplgK9YoQi9o" + }, + "source": [ + "## Concatenar os elementos de dois arrays - np.c_[A, B]" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "lpdsbTEKQ9EY" + }, + "source": [ + "np.random.seed(20111974)\n", + "a_numeros1 = np.random.randint(0, 10, 100).reshape(-1, 10)\n", + "a_numeros2 = np.random.randint(0, 2, 10).reshape(-1, 1)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "JPxhGsaSSMk2", + "outputId": "580e2270-930e-4ba4-9b08-efdadb474d04", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 185 + } + }, + "source": [ + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[8, 8, 2, 8, 9, 1, 8, 0, 4, 2],\n", + " [0, 8, 9, 3, 7, 1, 3, 2, 9, 7],\n", + " [7, 9, 5, 6, 8, 7, 0, 9, 3, 9],\n", + " [3, 1, 8, 6, 3, 5, 4, 1, 2, 9],\n", + " [8, 6, 6, 1, 0, 9, 2, 0, 7, 5],\n", + " [5, 4, 4, 2, 7, 2, 7, 9, 3, 1],\n", + " [5, 0, 1, 2, 3, 8, 7, 5, 4, 0],\n", + " [5, 9, 6, 6, 1, 3, 6, 0, 4, 9],\n", + " [2, 1, 0, 9, 1, 4, 2, 9, 7, 9],\n", + " [5, 3, 7, 6, 3, 9, 8, 4, 3, 0]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 13 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "9ZyUPfybTfej", + "outputId": "4c4c4f07-771e-4fc2-8946-4e810647c0c6", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 185 + } + }, + "source": [ + "a_numeros2" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[1],\n", + " [0],\n", + " [0],\n", + " [0],\n", + " [0],\n", + " [1],\n", + " [0],\n", + " [0],\n", + " [0],\n", + " [1]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 14 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "nS1cPG3aRug1", + "outputId": "90242ea3-737e-48d7-f1af-e812fb2f4b83", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 185 + } + }, + "source": [ + "# colocando o array a_numeros2 do lado de a_numeros1.\n", + "np.c_[a_numeros1, a_numeros2]" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[8, 8, 2, 8, 9, 1, 8, 0, 4, 2, 1],\n", + " [0, 8, 9, 3, 7, 1, 3, 2, 9, 7, 0],\n", + " [7, 9, 5, 6, 8, 7, 0, 9, 3, 9, 0],\n", + " [3, 1, 8, 6, 3, 5, 4, 1, 2, 9, 0],\n", + " [8, 6, 6, 1, 0, 9, 2, 0, 7, 5, 0],\n", + " [5, 4, 4, 2, 7, 2, 7, 9, 3, 1, 1],\n", + " [5, 0, 1, 2, 3, 8, 7, 5, 4, 0, 0],\n", + " [5, 9, 6, 6, 1, 3, 6, 0, 4, 9, 0],\n", + " [2, 1, 0, 9, 1, 4, 2, 9, 7, 9, 0],\n", + " [5, 3, 7, 6, 3, 9, 8, 4, 3, 0, 1]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 15 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kIgU1YBw0OeM" + }, + "source": [ + "___\n", + "# **Selecionar itens que satisfazem condições**\n", + "> Considere o array a seguir:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "e2pL5anBV0DI" + }, + "source": [ + "a_numeros1 = np.arange(10, 0, -1)\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "i9HuZZAfV302" + }, + "source": [ + "Selecionar somente os itens > 7:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ZCESvr7iXMkV" + }, + "source": [ + "## Usando np.where()" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "O_ZBaWxfWA9o" + }, + "source": [ + "l_indices = np.where(a_numeros1 > 7)\n", + "l_indices" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "EdWlfPOZWPME" + }, + "source": [ + "**Atenção**: Capturamos os índices. Para selecionar os itens, basta fazer:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "tOxs3iYQWWxu" + }, + "source": [ + "a_numeros2 = a_numeros1[l_indices]\n", + "a_numeros2" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "PGsENqkaXRjh" + }, + "source": [ + "## Alternativa: Usando []" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "YbdRNk1WXTLT" + }, + "source": [ + "a_numeros1[a_numeros1 > 7]" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jijpzFxcSQC8" + }, + "source": [ + "Acho que vale a pena quebrar esta solução para entendermos melhor como as coisas funcionam:#" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "rujhP2LQSWsq" + }, + "source": [ + " # Primeiro, avalie o resultado de a_numeros1 > 7:" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "FYZaBsasSb3N" + }, + "source": [ + "a_numeros1 > 7" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "mvEof-UKaaVG" + }, + "source": [ + "a_numeros1[a_numeros1 > 7]" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Ci5lT9nmSfsX" + }, + "source": [ + "Agora, com este resultado, fica fácil entender como o Python seleciona os elementos. Consegue explicar?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1v5Lfin0GGKD" + }, + "source": [ + "# Substituir itens baseado em condições\n", + "> Substituir os valores negativos do array abaixo por 0." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "CLY_u0ePWdN7" + }, + "source": [ + "## Gerar o exemplo" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "NUANFy-fNXf5" + }, + "source": [ + "np.random.seed(20111974)\n", + "a_numeros1 = np.array(np.random.randint(0, 10, size = 100))\n", + "\n", + "# Lista aleatória de índices que vou alterar\n", + "np.random.seed(20111974)\n", + "l_indices= np.random.randint(0, 99, 9)\n", + "\n", + "for i in l_indices:\n", + " a_numeros1[i] = -1*a_numeros1[i]\n", + "\n", + "a_numeros2 = a_numeros1.copy()\n", + "a_numeros2" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "dWVyI40uN2d2" + }, + "source": [ + "# Indices a serem multiplicados por -1:\n", + "l_indices" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3Whuu854OJDZ" + }, + "source": [ + "## Substituir os valores negativos por 0" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "sr268Rp8b-Se" + }, + "source": [ + "a_numeros2 < 0" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "C-eKqPrfOQF6" + }, + "source": [ + "a_numeros2[a_numeros2 < 0] = 0\n", + "a_numeros2" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "eDLM0_JSZlfB" + }, + "source": [ + "Observe acima que os valores negativos foram substituídos por 0, como queríamos." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "AEHJ0rA3dHHU" + }, + "source": [ + "## Substituir os valores negativos por 0 e os positivos por 1" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "y32J8SRNZwRF" + }, + "source": [ + "a_numeros2 = a_numeros1.copy()\n", + "a_numeros2" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "1bSD9Fs6P5wW" + }, + "source": [ + "a_numeros2 = np.where(a_numeros2 <= 0, 0, 1)\n", + "a_numeros2" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "i027scjl0qkm" + }, + "source": [ + "___\n", + "# Outliers\n", + "> Qualquer ponto/observação que é incomum quando comparado com todos os outros pontos/observações." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "UnDTqRnZHQ3W" + }, + "source": [ + "## Z-Score\n", + "\n", + "* Z-Score pode ser utilizado para detectar Outliers.\n", + "* É a diferença entre o valor e a média da amostra expressa como o número de desvios-padrão. \n", + "* Se o escore z for menor que 2,5 ou maior que 2,5, o valor estará nos 5% do menor ou maior valor (2,5% dos valores em ambas as extremidades da distribuição). No entanto, é pratica comum utilizarmos 3 ao invés dos 2,5.\n", + "\n", + "![Z_Score](https://github.com/MathMachado/Materials/blob/master/Z_Score.png?raw=true)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "N7gb2zhtd0uM" + }, + "source": [ + "## IQR Score\n", + "\n", + "* O Intervalo interquartil (IQR) é uma medida de dispersão estatística, sendo igual à diferença entre os percentis 75 (Q3) e 25 (Q1), ou entre quartis superiores e inferiores, IQR = Q3 - Q1." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lMmWOKNvghI7" + }, + "source": [ + "![BoxPlot](https://github.com/MathMachado/Materials/blob/master/boxplot.png?raw=true)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "z3VZdU8rICZA" + }, + "source": [ + "## Desafio\n", + "> Substituir os outliers do array por:\n", + "1. Q1-1.5\\*IQR, se ponto < Q1-1.5\\*IQR\n", + "2. Q3+1.5\\*IQR, se ponto > Q3+1.5\\*IQR" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DUw_a-MjWvBc" + }, + "source": [ + "### Gerar o exemplo" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "RL0Zb0fyDory" + }, + "source": [ + "np.random.seed(19741120)\n", + "a_numeros1 = np.array(np.random.normal(100, 10, size = 100))\n", + "\n", + "# Lista aleatória de índices que vou alterar\n", + "np.random.seed(20111974)\n", + "l_indices = np.random.randint(0, 99, 10)\n", + "np.sort(l_indices)\n", + "\n", + "a_numeros1_copia = a_numeros1.copy()\n", + "for i in l_indices:\n", + " a_numeros1_copia[i] = 2*a_numeros1_copia[i]" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "ZnmykyahLWX9" + }, + "source": [ + "# Algumas estatísticas descritivas:\n", + "f'Média: {np.mean(a_numeros1)}; Mediana: {np.median(a_numeros1)}; STD: {np.std(a_numeros1)}'" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ILhNe80xW5C6" + }, + "source": [ + "### Solução do desafio" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "U993i1GJg2hk" + }, + "source": [ + "# Import a biblioteca seaborn:\n", + "import seaborn as sns\n", + "sns.boxplot(y = a_numeros1_copia)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VtenLK1uK1Pi" + }, + "source": [ + "Consegue identificar os outliers do array?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "e3sHuGVGFBdW" + }, + "source": [ + "## Objetivo\n", + "> Substituir os outliers por mediana. \n", + "\n", + "* Como fazer isso?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "RSegPNKCI-dS" + }, + "source": [ + "### Siga os passos a seguir\n", + "1. Calcule estatísticas descritivas antes das transformações par avaliar o impacto;\n", + " * Calcule média, mediana e desvio-padrão dos dados originais;\n", + "2. Calcule os valores a seguir:\n", + " * Q1, Q3\n", + " * IQR = Q3-Q1\n", + " * lim_inferior = Q1-1.5\\*IQR\n", + " * lim_superior = Q3+1.5\\*IQR\n", + "3. Proceda à substituição:\n", + " * Se a_numeros1_copia[i] < lim_inferior então a_numeros1_copia[i]= Mediana\n", + " * Se a_numeros1_copia[i] > lim_superior então a_numeros1_copia[i]= Mediana\n", + "4. Calcule as estatísticas descritivas após as substituições e compare com os valores antes das transformações." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9DQ7YnWaFn4v" + }, + "source": [ + "### Minha solução\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "RBXJbTeGLC7Q" + }, + "source": [ + "1. Estatísticas Descritivas antes das transformações:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "QueKYn7MLG12" + }, + "source": [ + "# Algumas estatísticas descritivas:\n", + "f'Média: {np.mean(a_numeros1_copia)}; Mediana: {np.median(a_numeros1_copia)}; STD: {np.std(a_numeros1_copia)}'" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "oOBJ8INWL5fo" + }, + "source": [ + "Observe o quanto nossos dados estão distorcidos dos valores originalmente utilizados." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MX-fJeh2MBTD" + }, + "source": [ + "2. Calcular Q1, Q3 e IQR" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "JlsPiQeGMGeU" + }, + "source": [ + "Q1= np.percentile(a_numeros1_copia, q = [25])\n", + "Q3= np.percentile(a_numeros1_copia, q = [75])\n", + "Q2= np.percentile(a_numeros1_copia, q = [50])\n", + "IQR = Q3-Q1\n", + "lim_inferior = Q1-1.5*IQR\n", + "lim_superior = Q3+1.5*IQR" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "VF2NJ3rCeI1_" + }, + "source": [ + "f'Q1: {Q1}; Q3: {Q3}; lim_inferior: {lim_inferior}; lim_superior: {lim_superior}'" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "JjnwJ7HwMxcl" + }, + "source": [ + "3. Substituir\n", + "* Se a_numeros1[i] < lim_inferior então a_numeros1[i]= Mediana\n", + "* Se a_numeros1[i] > Lia_Sup então a_numeros1[i]= Mediana" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "hcAn-IwVfbcI" + }, + "source": [ + "a_numeros2 = a_numeros1_copia.copy()" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "J3SSE45oM9oh" + }, + "source": [ + "a_numeros2[a_numeros2 < lim_inferior[0]] = Q2[0]\n", + "a_numeros2[a_numeros2 > lim_superior[0]] = Q2[0]\n", + "a_numeros2" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VEGFio0Nfj7O" + }, + "source": [ + "4. Estatísticas Descritivas para avaliarmos o impacto:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gX1LZHFqfjFQ" + }, + "source": [ + "# Algumas estatísticas descritivas:\n", + "f'Média: {np.mean(a_numeros2)}; Mediana: {np.median(a_numeros2)}; STD: {np.std(a_numeros2)}'" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "-xnguZ7XgyvK" + }, + "source": [ + "# Import a biblioteca seaborn:\n", + "import seaborn as sns\n", + "sns.boxplot(y = a_numeros2)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "uEPFcBjFhETQ" + }, + "source": [ + "Como podem ver, os outliers desapareceram, como queríamos." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tHfzjW_ymKuR" + }, + "source": [ + "___\n", + "# **Valores únicos**\n", + "> Considere o array a seguir:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "HzmQgWZVmUUD" + }, + "source": [ + "np.random.seed(20111974)\n", + "a_numeros1 = np.random.randint(0, 100, 100)\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Dm9ky1F1mrNA" + }, + "source": [ + "Quem são os valores únicos do array?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "G-LPRqc-mS5j" + }, + "source": [ + "np.unique(a_numeros1)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "uXZZoTd6nMuq" + }, + "source": [ + "___\n", + "# **Diferença entre dois arrays**\n", + "> O resultado é um array com os **valores únicos de A que não estão em B**. Na teoria de conjuntos escrevemos $A - B = A - A \\cap B$.\n", + "\n", + "![Difference](https://github.com/MathMachado/Materials/blob/master/set_Difference.PNG?raw=true)\n", + "\n", + "Fonte: [Python Set](https://www.learnbyexample.org/python-set/)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "uW6i3m9q1ZNs" + }, + "source": [ + "\n", + "* Vamos ver como isso funciona na prática:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vw05sfe22mfk" + }, + "source": [ + "## Exemplo 1" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Qqw2do90nQ7k" + }, + "source": [ + "a_numeros1 = np.array([0, 1, 2, 4, 5, 7, 8, 8]) # array de valores que serão excluidos em a_numeros1. Observe que '3' não pertence a a_numeros1.\n", + "a_numeros2 = np.array([1, 6, 7, 3])" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "zXJ00pOMorM-" + }, + "source": [ + "np.setdiff1d(a_numeros1, a_numeros2)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8GXZNgjfo8lO" + }, + "source": [ + "Observe que o resultado são os elementos de a_numeros1 que não pertencem a x_Y. Mas como fica o '3' nesta história?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "aJSu6VKb2oc_" + }, + "source": [ + "## Exemplo 2" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "N1wahElXTqoB" + }, + "source": [ + "a_numeros1 = np.arange(10)\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "nxDpCMg7T7Rj" + }, + "source": [ + "a_numeros2 = np.array([1, 5, 7])\n", + "a_numeros2" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "3LU3qYyiUXqm" + }, + "source": [ + "np.setdiff1d(a_numeros1, a_numeros2)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mzZEytrRUioU" + }, + "source": [ + "Observe que os elementos de a_numeros2 foram deletados de a_numeros1. Ok?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gJRcoVRUnaY9" + }, + "source": [ + "___\n", + "# Diferença Simétrica\n", + "* Em teoria de conjuntos, chamamos de Diferença Simétrica e escrevemos $(A \\cup B)- (A \\cap B)$.\n", + "\n", + "![DifferenceSymetric](https://github.com/MathMachado/Materials/blob/master/set_DifferenceSymetric.PNG?raw=true)\n", + "\n", + "Fonte: [Python Set](https://www.learnbyexample.org/python-set/)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2Uzzm85Kup3H" + }, + "source": [ + "* Vamos ver como isso funciona na prática:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "1z5wZ8VwpsWN" + }, + "source": [ + "import numpy as np\n", + "a_numeros1 = np.array([0, 1, 2, 4, 5, 7, 8]) # Observe que [1, 4, 7] pertencem a a_numeros1, mas 3, não. Portanto:\n", + "a_numeros2 = np.array([1, 4, 7, 3])" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Tqd_9XO5p7bo", + "outputId": "40a41655-0920-4369-c9d6-ae7e3f471edc", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "np.setxor1d(a_numeros1, a_numeros2)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([0, 2, 3, 5, 8])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 2 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_meurG3mqS5Y" + }, + "source": [ + "Como explicamos ou interpretamos este resultado?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Kc8JoKe2nj2n" + }, + "source": [ + "___\n", + "# **União de dois arrays**\n", + "> Retorna os valores **únicos** dos dois arrays. Na teoria dos conjuntos, escrevemos:\n", + "\n", + "$$A \\cup B$$\n", + "\n", + "![Union](https://github.com/MathMachado/Materials/blob/master/set_Union.PNG?raw=true)\n", + "\n", + "Fonte: [Python Set](https://www.learnbyexample.org/python-set/)" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "1LZxorw2p2mg" + }, + "source": [ + "a_numeros1 = np.array([0, 1, 2, 4, 5, 7, 8, 8])\n", + "\n", + "# Observe que [1, 4, 7] pertencem a a_numeros1, mas 3, não. Portanto:\n", + "a_numeros2 = np.array([1, 4, 7, 3])" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "COsZEmSwuY5L" + }, + "source": [ + "np.union1d(a_numeros1, a_numeros2)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "b53bR-GYRu_3" + }, + "source": [ + "___\n", + "# **Selecionar itens comuns dos arrays X e Y**\n", + "* Na teoria de conjuntos, chamamos de intersecção e escrevemos $X \\cap Y$.\n", + "\n", + "![Intersection](https://github.com/MathMachado/Materials/blob/master/set_Intersection.PNG?raw=true)\n", + "\n", + "Fonte: [Python Set](https://www.learnbyexample.org/python-set/)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "n2ec2tqqR1Gw" + }, + "source": [ + "* Considere os arrays a seguir:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "rXVQQvBqR4J-" + }, + "source": [ + "a_numeros1 = np.arange(10)\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "pZTHhHxGSRfB" + }, + "source": [ + "a_numeros2 = np.arange(8, 18)\n", + "a_numeros2" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MxB2_qHpScMB" + }, + "source": [ + "Quais são os elementos comuns à X e Y?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "e-rncJHtSfw0" + }, + "source": [ + "np.intersect1d(a_numeros1, a_numeros2)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3Bb39sWdfqaF" + }, + "source": [ + "___\n", + "# **Autovalores e Autovetores**\n", + "> Autovetor e Autovalor são um dos tópicos mais importantes em Machine Learning.\n", + "\n", + "Por definição, o escalar $\\lambda$ e o vetor $v$ são autovalor e autovetor da matriz $A$ se\n", + "\n", + "$$Av = \\lambda v$$\n", + "\n", + "## Leitura Adicional:\n", + "\n", + "* [Machine Learning & Linear Algebra — Eigenvalue and eigenvector](https://medium.com/@jonathan_hui/machine-learning-linear-algebra-eigenvalue-and-eigenvector-f8d0493564c9)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "XZBKq8nGCUbL" + }, + "source": [ + "* O array a_numeros2 tem a seguinte forma:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "iYlZGKFUfw-R" + }, + "source": [ + "a_numeros2" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "6EfvIbBNf02Z" + }, + "source": [ + "# Calcula autovalores e autovetores:\n", + "a_Autovalores, a_Autovetores= np.linalg.eig(a_numeros2)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "v3GtQQvAz9QU" + }, + "source": [ + "Os autovalores do array a_numeros2 são:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "WvZGyBR1f9vP" + }, + "source": [ + "a_Autovalores" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "AuuDRJVh0FC8" + }, + "source": [ + "Os autovetores do array a_numeros2 são:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "6m4YFAwsf_rA" + }, + "source": [ + "a_Autovetores" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DASn2Un9ZNV-" + }, + "source": [ + "___\n", + "# **Encontrar Missing Values (NaN)**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "TKilWBsSXtR4" + }, + "source": [ + "## Gerar o exemplo" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "lqLI2ER_ZUMY" + }, + "source": [ + "np.random.seed(20111974)\n", + "a_numeros1 = np.random.random(100)\n", + "\n", + "# Inserindo 15 NaN's no array:\n", + "np.random.seed(20111974)\n", + "l_indices_aleatorios= np.random.randint(0, 100, size = 15)\n", + "\n", + "for i_indices in l_indices_aleatorios:\n", + " #print(i_indices)\n", + " a_numeros1[i_indices] = np.nan" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "2ZkbMPXMawYh" + }, + "source": [ + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Z7Bs75NvbSjx" + }, + "source": [ + "Ok, inserimos aleatoriamente 14 NaN's no array a_numeros1. Agora, vamos contar quantos NaN's (já sabemos a resposta!)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "hL1Wn0vdX8ur" + }, + "source": [ + "## Identificar os NaN's" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "5R-n3H0xbd6d" + }, + "source": [ + "np.isnan(a_numeros1).sum()" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Y7hh5uowoa3U" + }, + "source": [ + "Ok, temos 14 NaN's em a_numeros1." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "iVLQf_bqbyNU" + }, + "source": [ + "Ok, agora eu quero saber os índices desses NaN's." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "kJHxjZiwb5HM" + }, + "source": [ + "i_indices= np.where(np.isnan(a_numeros1))\n", + "i_indices" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "W_jHGNImok7L" + }, + "source": [ + "# Checando...\n", + "a_numeros1[2]" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "iPhHAhDYcMWO" + }, + "source": [ + "Vamos conferir se está correto? Para isso, basta comparar com l_indices_aleatorios:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gxQYslRCe11G" + }, + "source": [ + "___\n", + "# **Deletar NaN's de um array**\n", + "> Considere o mesmo array que acabamos de trabalhar. Agora eu quero excluir os NaN's identificados." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "AeBARFqNfNnN" + }, + "source": [ + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "e497B492fFru" + }, + "source": [ + "a_numeros1[~np.isnan(a_numeros1)]" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "RpvKfJU_fmA6" + }, + "source": [ + "Observe que os NaN's foram excluidos." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_Dv8MmNYg8zN" + }, + "source": [ + "___\n", + "# **Converter lista em array**\n", + "> Considere a lista a seguir:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "but6T9dVhFYb" + }, + "source": [ + "l_Lista = [np.random.randint(0, 10, 10)]\n", + "l_Lista" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "xytj4Eo4hTh9" + }, + "source": [ + "type(l_Lista)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qrINdcruhWcH" + }, + "source": [ + "Convertendo a minha lista para array:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "RoSyaX0OhZSE" + }, + "source": [ + "a_numeros = np.asarray(l_Lista)\n", + "a_numeros" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "dMjTdbBUhlrk" + }, + "source": [ + "type(a_numeros)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Mbm3ZP9DhxDI" + }, + "source": [ + "___\n", + "# Converter tupla em array\n", + "> Considere a tupla a seguir:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "cZxEFYLAh3S_" + }, + "source": [ + "np.random.seed(20111974)\n", + "t_numeros = ([np.random.randint(0, 10, 3)], [np.random.randint(0, 10, 3)], [np.random.randint(0, 10, 3)])\n", + "t_numeros" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "vlTXUJviiAml" + }, + "source": [ + "type(t_numeros)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "yEaOlq8oh3oh" + }, + "source": [ + "a_numeros = np.asarray(t_numeros)\n", + "a_numeros" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "PSgQDmRWh3g5" + }, + "source": [ + "type(a_numeros)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "pH-Ht6yMiqJN" + }, + "source": [ + "___\n", + "# Acrescentar elementos à um array\n", + "> Considere o array a seguir:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "dFaDZInZiwoo" + }, + "source": [ + "a_numeros1 = np.arange(5)\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "d3zrlf_Ci73Z" + }, + "source": [ + "np.random.seed(20111974)\n", + "a_numeros1 = np.append(a_numeros1, [np.random.randint(0, 10, 3), np.random.randint(0, 10, 3), np.random.randint(0, 10, 3)])\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "eFRhtk13ojqA" + }, + "source": [ + "___\n", + "# **Converter array 1D num array 2D**\n", + "> Considere os arrays a seguir:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "wYhBgW9Zu6ZP" + }, + "source": [ + "np.random.seed(20111974)\n", + "a_numeros1 = np.array(np.random.randint(0, 10, 6))\n", + "\n", + "np.random.seed(19741120)\n", + "a_numeros2 = np.array(np.random.randint(0, 10, 6))" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "febs9AUHvs6n" + }, + "source": [ + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "C9OEd-iavvBm" + }, + "source": [ + "a_numeros2" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "KJWjtaWKv0MJ" + }, + "source": [ + "np.column_stack((a_numeros1, a_numeros2)) # Atenção aos parênteses em (a_numeros1, a_numeros2)." + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "xr_WZXJ7pi2D" + }, + "source": [ + "___\n", + "# **Excluir um elemento específico do array usando indices**\n", + "> Considere os arrays a seguir:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "tS0ZzOs8w0dw" + }, + "source": [ + "np.random.seed(20111974)\n", + "a_numeros1 = np.array(np.random.randint(0, 10, 6))\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7bOJiKDKxEsC" + }, + "source": [ + "Suponha que eu queira excluir os valores '8' de a_numeros1. Os índices dos valores '8' são: [0, 1, 3]. Portanto, temos:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "SSjueEvjxTJO" + }, + "source": [ + "a_numeros1 = np.delete(a_numeros1, [0, 1, 3])\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mZkGZ2Rgp--5" + }, + "source": [ + "___\n", + "# **Frequência dos valores únicos de um array**\n", + "> Considere o array a seguir:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Z2BWKfH0xvQ8" + }, + "source": [ + "np.random.seed(20111974)\n", + "a_numeros1 = np.array(np.random.randint(0, 10, 100))\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "s_tdQBsax4rQ" + }, + "source": [ + "Suponha que eu queira saber quantas vezes o número/elemento '2' aparece em a_numeros1." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "6yIlk7pWyAtf" + }, + "source": [ + "l_itens_unicos, i_count = np.unique(a_numeros1, return_counts=True)\n", + "l_itens_unicos" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DyvrIwS9yZIR" + }, + "source": [ + "O que significa o output acima?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "uO-MPMhXyV9H" + }, + "source": [ + "i_count" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "zwoezXrPyofK" + }, + "source": [ + "Qual a interpretação do output acima?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "HgYycSG7yr5e" + }, + "source": [ + "np.asarray((l_itens_unicos, i_count))" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "SwIZiJAiy06T" + }, + "source": [ + "Qual a interpretação do output acima?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "JpNRpN2Dql3N" + }, + "source": [ + "___\n", + "# **Combinações possíveis de outros arrays**\n", + "> Considere o exemplo a seguir:\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "BUr89dH4zLXD" + }, + "source": [ + "a_numeros1 = [2, 4, 6]\n", + "a_numeros2 = [0, 8]\n", + "a_numeros4 = [1, 5]" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "cEZH6l-Czx7y" + }, + "source": [ + "np.meshgrid(a_numeros1, a_numeros2, a_numeros4)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "btvmDkEcz0tH" + }, + "source": [ + "np.array(np.meshgrid(a_numeros1, a_numeros2, a_numeros4))" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Z0xhO7rGz059" + }, + "source": [ + "np.array(np.meshgrid(a_numeros1, a_numeros2, a_numeros4)).T" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "eMv4lFnD0Enn" + }, + "source": [ + "# Resultado final\n", + "a_numeros3 = np.array(np.meshgrid(a_numeros1, a_numeros2, a_numeros4)).T.reshape(-1,3)\n", + "a_numeros3" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Rz80YANfAh2k" + }, + "source": [ + "___\n", + "# **Wrap Up**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_cyhMsAVXxGC" + }, + "source": [ + "___\n", + "# **Exercícios**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kNjovMw3uJ3R" + }, + "source": [ + "## Exercício 1 - Selecionar os números pares\n", + "> Dado o 1D array abaixo, selecionar somente os números pares." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "isDzQjwjBX3V" + }, + "source": [ + "a_numeros1 = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Kq1zt-uO1HXv" + }, + "source": [ + "### **Minha solução**" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "YFmK_n2M1Ks9" + }, + "source": [ + "a_numeros1[a_numeros1 % 2 == 0]" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sScYG0hp05vb" + }, + "source": [ + "___\n", + "## Exercício 2 - Substituir pela mediana\n", + "> Dado o array 1D abaixo, substituir os números pares pela mediana de a_numeros1." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "XLZ-DIWU1WFs" + }, + "source": [ + "a_numeros1 = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9c4QWJno1WVB" + }, + "source": [ + "### **Minha solução**\n", + "* Primeiramente, precisamos calcular a mediana.\n", + "* Depois, substituimos os valores pares de a_numeros1 pela mediana encontrada anteriormente. Ok?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "rx7NGAO01Wfb" + }, + "source": [ + "a_numeros1[a_numeros1 % 2 == 0] = np.median(a_numeros1)\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2c_AphX82qp8" + }, + "source": [ + "Verificando..." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "9kVta0Cr13Z9" + }, + "source": [ + "f'A média de a_numeros1 é: {np.median(a_numeros1)}'" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "L9O-Hf5x26TY" + }, + "source": [ + "___\n", + "## Exercício 3 - Reshape\n", + "> Dado o array 1D abaixo, reshape para um array 2D com 3 colunas." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "0_laUvtB4Wl-" + }, + "source": [ + "# Define seed\n", + "np.random.seed(20111974)\n", + "a_numeros1 = np.array(np.random.randint(1, 10, size = 15))\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dKzEX8TK5b4Z" + }, + "source": [ + "### **Minha solução**\n", + "* O array 1D a_numeros1 acima possui 15 elementos. Como queremos transformá-lo num array 2D com 3 colunas, então cada coluna terá 5 elementos." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "I-j5yVD04249" + }, + "source": [ + "a_numeros1.reshape(5, 3) \n", + "# Poderia ser a_numeros1.reshape(-1, 3), onde \"-1\" pede para o NumPy calcular o número de linhas. " + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "F1vfS8jE6L0_" + }, + "source": [ + "___\n", + "## Exercício 4 - Reshape\n", + "> Dado o array 1D abaixo, reshape para um array 3D com 2 colunas." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "xcN-bez56L1D" + }, + "source": [ + "# Define seed\n", + "np.random.seed(20111974)\n", + "a_numeros1 = np.array(np.random.randint(1, 10, size = 16))\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7iICnOyG6fcj" + }, + "source": [ + "### **Minha solução**\n", + "* O array 1D a_numeros1 acima possui 16 elementos. Queremos transformá-lo num array 3D com 2 colunas." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vdq5ybuD6fcn" + }, + "source": [ + "a_numeros1.reshape(-1, 2) # O valor \"-1\" na posição das linhas pede ao NumPy para calcular o número de linhas automaticamente." + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "haQfWPcCs_H0" + }, + "source": [ + "## Exercício 5\n", + "Para mais exercícios envolvendo arrays, visite a página [Python: Array Exercises, Practice, Solution](https://www.w3resource.com/python-exercises/array/)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LQQL0JS2tnc0" + }, + "source": [ + "## Exercício 6\n", + "Para mais exercícios envolvendo matemática, viste a página [Python Math: - Exercises, Practice, Solution](https://www.w3resource.com/python-exercises/math/index.php)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qNskKFy9t4D5" + }, + "source": [ + "## Exercício 7\n", + "Para mais exercícios envolvendo NumPy em geral, visite a página [NumPy Exercises, Practice, Solution](https://www.w3resource.com/python-exercises/numpy/index.php)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qqc1AiHXuKZ5" + }, + "source": [ + "## Exercício 8\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "jYrgc3KvtmLy" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file From 8d8063e384f3ace8a3af23332fa9bf851190e0b2 Mon Sep 17 00:00:00 2001 From: Hayltons <65053778+Hayltons@users.noreply.github.com> Date: Mon, 5 Oct 2020 17:08:28 -0300 Subject: [PATCH 06/10] Criado usando o Colaboratory --- Notebooks/NB02__Numpy_hs.ipynb | 2421 +++++++++----------------------- 1 file changed, 648 insertions(+), 1773 deletions(-) diff --git a/Notebooks/NB02__Numpy_hs.ipynb b/Notebooks/NB02__Numpy_hs.ipynb index 10dc9b639..959958a2a 100644 --- a/Notebooks/NB02__Numpy_hs.ipynb +++ b/Notebooks/NB02__Numpy_hs.ipynb @@ -163,12 +163,7 @@ { "cell_type": "code", "metadata": { - "id": "JK54ga7dXnJu", - "outputId": "f87f5718-d89c-4350-93ec-dbe8f2448b69", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 50 - } + "id": "JK54ga7dXnJu" }, "source": [ "# Set up o número de casas decimais para o NumPy:\n", @@ -187,21 +182,7 @@ "a_numeros1" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([ 2.51, 1.11, 2.06, 0.56, 0.3 , 1.05, -0.13, 1.06, 1.14,\n", - " 1.38])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 3 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -235,12 +216,7 @@ { "cell_type": "code", "metadata": { - "id": "zFYH6J5-Ydjl", - "outputId": "5ff888b2-01d7-4ec7-db26-94d491811719", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 50 - } + "id": "zFYH6J5-Ydjl" }, "source": [ "# Set up o número de casas decimais para o NumPy:\n", @@ -258,21 +234,7 @@ "numpy.random.normal(size = 10)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([-2.06, 0.67, 0.73, -0.34, 0.44, 0.59, -1.29, 1.18, -0.99,\n", - " -1.79])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 12 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -298,12 +260,7 @@ { "cell_type": "code", "metadata": { - "id": "Xj6fbpvubH_p", - "outputId": "2e9906f3-3321-4990-a821-ff4b6941cc23", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 51 - } + "id": "Xj6fbpvubH_p" }, "source": [ "# Set up o número de casas decimais para o NumPy:\n", @@ -321,21 +278,7 @@ "np.random.normal(size = 10)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([ 2.51, 1.11, 2.06, 0.56, 0.3 , 1.05, -0.13, 1.06, 1.14,\n", - " 1.38])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 189 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -362,12 +305,7 @@ { "cell_type": "code", "metadata": { - "id": "31dSBU8khvFk", - "outputId": "407c4436-710d-4c14-8ecc-dc27e9650ecd", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 51 - } + "id": "31dSBU8khvFk" }, "source": [ "# Set up o número de casas decimais para o NumPy:\n", @@ -379,25 +317,13 @@ "# Gera 10 números aleatórios a partir da Distribuição Normal(media, desvio_padrao)\n", "media = 0\n", "desvio_padrao = 1\n", + "\n", + "np.random\n", "a_numeros1 = np.random.normal(media, desvio_padrao, size = 10) # Array 1D de size = 10\n", "a_numeros1" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([ 2.51, 1.11, 2.06, 0.56, 0.3 , 1.05, -0.13, 1.06, 1.14,\n", - " 1.38])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 190 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -411,31 +337,13 @@ { "cell_type": "code", "metadata": { - "id": "drUyk3f5ekDq", - "outputId": "1004d17e-8055-497e-f507-82373215e1d7", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "drUyk3f5ekDq" }, "source": [ "f'Distribuição N({np.mean(a_numeros1)}, {np.std(a_numeros1)})'" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "'Distribuição N(1.1043374540652753, 0.735246705657231)'" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 191 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -468,12 +376,7 @@ { "cell_type": "code", "metadata": { - "id": "-qdiqBVHg-gd", - "outputId": "2dc7c5b6-72f9-48f0-a5df-a75338bff9ce", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 136 - } + "id": "-qdiqBVHg-gd" }, "source": [ "# Define a média e o desvio-padrão\n", @@ -482,27 +385,14 @@ "\n", "# Define seed\n", "np.random.seed(seed = 20111974)\n", + "l_lista_numeros = [10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000]\n", "\n", - "for i_size in [10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000]:\n", + "for i_size in l_lista_numeros:\n", " a_numeros1 = np.random.normal(media, desvio_padrao, size = i_size)\n", " print(f'Size: {i_size}--> Distribuição: N({np.mean(a_numeros1)}, {np.std(a_numeros1)})')" ], "execution_count": null, - "outputs": [ - { - "output_type": "stream", - "text": [ - "Size: 10--> Distribuição: N(1.1043374540652753, 0.735246705657231)\n", - "Size: 100--> Distribuição: N(-0.14020525697186714, 0.9254100654233511)\n", - "Size: 1000--> Distribuição: N(0.021644923462910873, 1.0054417533501039)\n", - "Size: 10000--> Distribuição: N(0.015499353804764507, 0.9970905566844254)\n", - "Size: 100000--> Distribuição: N(0.002039323041103302, 0.9960906293570095)\n", - "Size: 1000000--> Distribuição: N(-1.1062145143945444e-06, 0.999473966169304)\n", - "Size: 10000000--> Distribuição: N(0.0002892972723094128, 1.0001202837422036)\n" - ], - "name": "stdout" - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -568,15 +458,11 @@ { "cell_type": "code", "metadata": { - "id": "B3-X_VBerUfa", - "outputId": "d423e036-5f8f-4d5f-916b-896ea7f092b9", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 101 - } + "id": "B3-X_VBerUfa" }, "source": [ "# Define seed\n", + "import numpy as np\n", "np.random.seed(seed = 20111974)\n", "\n", "# Simular 100 lançamentos de um dado:\n", @@ -584,34 +470,12 @@ "a_dados_simulados" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([4, 5, 3, 1, 1, 4, 3, 1, 2, 2, 1, 1, 6, 4, 5, 3, 1, 4, 1, 6, 2, 4,\n", - " 6, 2, 4, 3, 2, 6, 3, 6, 2, 6, 1, 3, 1, 2, 4, 2, 4, 6, 3, 2, 6, 1,\n", - " 4, 3, 6, 5, 2, 3, 3, 3, 3, 2, 1, 6, 2, 1, 2, 3, 1, 5, 6, 6, 6, 6,\n", - " 5, 6, 6, 5, 6, 3, 3, 2, 4, 2, 6, 1, 2, 3, 4, 5, 5, 3, 1, 6, 6, 5,\n", - " 5, 1, 4, 6, 2, 2, 4, 3, 6, 1, 5, 5])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 6 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "m8Of2MMIrbF3", - "outputId": "004fe1ff-4f4a-4914-e556-1f0dc72e6e43", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - } + "id": "m8Of2MMIrbF3" }, "source": [ "# Importar o pandas, pois vamos precisar do método pd.value_counts():\n", @@ -619,26 +483,7 @@ "pd.value_counts(a_dados_simulados)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "6 22\n", - "3 18\n", - "2 18\n", - "1 17\n", - "4 13\n", - "5 12\n", - "dtype: int64" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 7 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -658,12 +503,7 @@ { "cell_type": "code", "metadata": { - "id": "HT_Dak-umC6I", - "outputId": "b3aca52b-4cc0-42a2-cdc8-d72e9db66416", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 168 - } + "id": "HT_Dak-umC6I" }, "source": [ "# Definir a semente\n", @@ -671,26 +511,10 @@ "\n", "for i_size in [10, 30, 50, 75, 100, 1000, 10000, 100000, 1000000]:\n", " a_dados_simulados = np.random.randint(1, 7, size = i_size)\n", - " print(f'Size= {i_size} --> Média: {np.mean(a_dados_simulados)}')" + " print(f'Size: {i_size} --> Média: {np.mean(a_dados_simulados)}')" ], "execution_count": null, - "outputs": [ - { - "output_type": "stream", - "text": [ - "Size= 10 --> Média: 2.6\n", - "Size= 30 --> Média: 3.3666666666666667\n", - "Size= 50 --> Média: 3.72\n", - "Size= 75 --> Média: 3.2666666666666666\n", - "Size= 100 --> Média: 3.42\n", - "Size= 1000 --> Média: 3.461\n", - "Size= 10000 --> Média: 3.5259\n", - "Size= 100000 --> Média: 3.50794\n", - "Size= 1000000 --> Média: 3.50151\n" - ], - "name": "stdout" - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -732,12 +556,7 @@ { "cell_type": "code", "metadata": { - "id": "DjPKKq01YjF9", - "outputId": "c863f9da-eb31-44a6-b804-31d42a3d2052", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "DjPKKq01YjF9" }, "source": [ "import numpy as np\n", @@ -748,55 +567,18 @@ "print(f'Média: {np.mean(a_retornos)}')" ], "execution_count": null, - "outputs": [ - { - "output_type": "stream", - "text": [ - "Média: -0.016996335492713833\n" - ], - "name": "stdout" - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "ajjlfqgssLVO", - "outputId": "b59eea63-e564-40f7-fcff-5e12bbc9b69c", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 218 - } + "id": "ajjlfqgssLVO" }, "source": [ "a_retornos" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([ 2.51, 1.11, 2.06, 0.56, 0.3 , 1.05, -0.13, 1.06, 1.14,\n", - " 1.38, -2.06, 0.67, 0.73, -0.34, 0.44, 0.59, -1.29, 1.18,\n", - " -0.99, -1.79, -1.09, -0.91, -1.02, -1.36, -0.29, 0.06, -1.14,\n", - " -0.51, -0.84, -1.41, -0.22, -1.17, -0.61, -0.62, 1.08, 0.5 ,\n", - " 0.03, 1.83, 0.35, -1.15, -0.6 , -0.43, 0.11, -0.75, 0.72,\n", - " -0.51, 0.48, -0.38, -1.37, 1.54, -0.27, 0.68, -1.8 , 1.17,\n", - " -0.38, 0.19, 1.54, -0.12, -0.98, -1.23, 1.05, 1.91, 0.8 ,\n", - " 0.36, 1.03, -0.37, 0.33, 0.7 , -0.98, -1.21, 0.74, 0.18,\n", - " 0.1 , -0.78, -0.04, 1.67, -1.07, -0.55, -1.83, 0.12, 1.39,\n", - " -0.29, 0.32, -0.7 , -0.44, -2.03, -0.14, 1.66, -0.58, -0.79,\n", - " -0.81, 0.06, 0.87, -0.35, 1.37, 0.88, -1.48, -0.41, -0.19,\n", - " 0.47])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 19 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -810,56 +592,21 @@ { "cell_type": "code", "metadata": { - "id": "QtuwJP449tBQ", - "outputId": "7838c950-8789-43dc-ec52-f0e9a57fc1e2", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 269 - } + "id": "QtuwJP449tBQ" }, "source": [ - "# Import da biblioteca seaborn:\n", + "# Import da biblioteca seaborn: Uma das principais libraries para Data Visualization (outras: matplotlib)\n", "import seaborn as sns\n", + "\n", "sns.boxplot(y = a_retornos)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 20 - }, - { - "output_type": "display_data", - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "tags": [], - "needs_background": "light" - } - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "o9ujdjxNY6qE", - "outputId": "0858804c-1c23-4571-8d5a-c016df7d9133", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "o9ujdjxNY6qE" }, "source": [ "# Vamos usar o método np.percentile(array, q = [p1, p2, p3, ..., p99])\n", @@ -869,20 +616,7 @@ "q1 = percentis[2]" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "-0.7836147655170408" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 200 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -899,8 +633,11 @@ "id": "nZr-A82Zo8Kb" }, "source": [ - "q3 = percentis[???]\n", - "print(q3)" + "q3 = percentis[5]\n", + "\n", + "# ou de trás para a frente do conteúdo da lista:\n", + "q3_2 = percentis[-2]\n", + "print(q3, q3_2)" ], "execution_count": null, "outputs": [] @@ -912,8 +649,8 @@ }, "source": [ "# lim_inferior e lim_superior para detecção de outliers\n", - "lim_inferior = percentis[2] - 1.5 * (q3 - q1)\n", - "lim_superior = percentis[5] + 1.5 * (q3 - q1)" + "lim_inferior = q1 - 1.5 * (q3 - q1)\n", + "lim_superior = q3 + 1.5 * (q3 - q1)" ], "execution_count": null, "outputs": [] @@ -921,89 +658,35 @@ { "cell_type": "code", "metadata": { - "id": "Yb4-ZJlUUYsi", - "outputId": "80e4d495-7e2d-4cd3-c339-2411b4c8f73b", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "Yb4-ZJlUUYsi" }, "source": [ "f'Limite Inferior: {lim_inferior}; Limite Superior: {lim_superior}'" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "'Limite Inferior: -3.0382521297304486; Limite Superior: 2.974114174838639'" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 202 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "Jr6oXIHlUxOe", - "outputId": "5a9574f3-0ba6-4b0f-ca75-36a6a6c17e64", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "Jr6oXIHlUxOe" }, "source": [ "np.min(a_retornos)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "-2.0599556303504514" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 203 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "UxE47cN0U54X", - "outputId": "0ada0239-1946-4689-8f70-6d563b48cd70", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "UxE47cN0U54X" }, "source": [ "np.max(a_retornos)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "2.506276801325959" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 204 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -1019,12 +702,7 @@ { "cell_type": "code", "metadata": { - "id": "Jgj8Yw46dBMx", - "outputId": "ae39b268-d74a-41ef-b55f-e8334cb05d4d", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "Jgj8Yw46dBMx" }, "source": [ "np.random.seed(20111974)\n", @@ -1032,20 +710,7 @@ "a_numeros1" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([0.53, 0.57, 0.54, 0.65, 0.86, 0.6 , 0.87, 0.46, 0.67, 0.64])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 205 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -1059,31 +724,13 @@ { "cell_type": "code", "metadata": { - "id": "YUP90nBVdUeF", - "outputId": "79a45cda-54b2-4256-ec24-74a732e743ee", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "YUP90nBVdUeF" }, "source": [ "np.sort(a_numeros1)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([0.46, 0.53, 0.54, 0.57, 0.6 , 0.64, 0.65, 0.67, 0.86, 0.87])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 206 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -1098,121 +745,13 @@ { "cell_type": "code", "metadata": { - "id": "ehxPlD3EkEYL", - "outputId": "48705c96-d575-4985-ecb8-ec644a527b28", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - } + "id": "ehxPlD3EkEYL" }, "source": [ "help(np.random.normal)" ], "execution_count": null, - "outputs": [ - { - "output_type": "stream", - "text": [ - "Help on built-in function normal:\n", - "\n", - "normal(...) method of numpy.random.mtrand.RandomState instance\n", - " normal(loc=0.0, scale=1.0, size=None)\n", - " \n", - " Draw random samples from a normal (Gaussian) distribution.\n", - " \n", - " The probability density function of the normal distribution, first\n", - " derived by De Moivre and 200 years later by both Gauss and Laplace\n", - " independently [2]_, is often called the bell curve because of\n", - " its characteristic shape (see the example below).\n", - " \n", - " The normal distributions occurs often in nature. For example, it\n", - " describes the commonly occurring distribution of samples influenced\n", - " by a large number of tiny, random disturbances, each with its own\n", - " unique distribution [2]_.\n", - " \n", - " Parameters\n", - " ----------\n", - " loc : float or array_like of floats\n", - " Mean (\"centre\") of the distribution.\n", - " scale : float or array_like of floats\n", - " Standard deviation (spread or \"width\") of the distribution. Must be\n", - " non-negative.\n", - " size : int or tuple of ints, optional\n", - " Output shape. If the given shape is, e.g., ``(m, n, k)``, then\n", - " ``m * n * k`` samples are drawn. If size is ``None`` (default),\n", - " a single value is returned if ``loc`` and ``scale`` are both scalars.\n", - " Otherwise, ``np.broadcast(loc, scale).size`` samples are drawn.\n", - " \n", - " Returns\n", - " -------\n", - " out : ndarray or scalar\n", - " Drawn samples from the parameterized normal distribution.\n", - " \n", - " See Also\n", - " --------\n", - " scipy.stats.norm : probability density function, distribution or\n", - " cumulative density function, etc.\n", - " \n", - " Notes\n", - " -----\n", - " The probability density for the Gaussian distribution is\n", - " \n", - " .. math:: p(x) = \\frac{1}{\\sqrt{ 2 \\pi \\sigma^2 }}\n", - " e^{ - \\frac{ (x - \\mu)^2 } {2 \\sigma^2} },\n", - " \n", - " where :math:`\\mu` is the mean and :math:`\\sigma` the standard\n", - " deviation. The square of the standard deviation, :math:`\\sigma^2`,\n", - " is called the variance.\n", - " \n", - " The function has its peak at the mean, and its \"spread\" increases with\n", - " the standard deviation (the function reaches 0.607 times its maximum at\n", - " :math:`x + \\sigma` and :math:`x - \\sigma` [2]_). This implies that\n", - " `numpy.random.normal` is more likely to return samples lying close to\n", - " the mean, rather than those far away.\n", - " \n", - " References\n", - " ----------\n", - " .. [1] Wikipedia, \"Normal distribution\",\n", - " https://en.wikipedia.org/wiki/Normal_distribution\n", - " .. [2] P. R. Peebles Jr., \"Central Limit Theorem\" in \"Probability,\n", - " Random Variables and Random Signal Principles\", 4th ed., 2001,\n", - " pp. 51, 51, 125.\n", - " \n", - " Examples\n", - " --------\n", - " Draw samples from the distribution:\n", - " \n", - " >>> mu, sigma = 0, 0.1 # mean and standard deviation\n", - " >>> s = np.random.normal(mu, sigma, 1000)\n", - " \n", - " Verify the mean and the variance:\n", - " \n", - " >>> abs(mu - np.mean(s))\n", - " 0.0 # may vary\n", - " \n", - " >>> abs(sigma - np.std(s, ddof=1))\n", - " 0.1 # may vary\n", - " \n", - " Display the histogram of the samples, along with\n", - " the probability density function:\n", - " \n", - " >>> import matplotlib.pyplot as plt\n", - " >>> count, bins, ignored = plt.hist(s, 30, density=True)\n", - " >>> plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *\n", - " ... np.exp( - (bins - mu)**2 / (2 * sigma**2) ),\n", - " ... linewidth=2, color='r')\n", - " >>> plt.show()\n", - " \n", - " Two-by-four array of samples from N(3, 6.25):\n", - " \n", - " >>> np.random.normal(3, 2.5, size=(2, 4))\n", - " array([[-4.49401501, 4.00950034, -1.81814867, 7.29718677], # random\n", - " [ 0.39924804, 4.68456316, 4.99394529, 4.84057254]]) # random\n", - "\n" - ], - "name": "stdout" - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -1249,32 +788,14 @@ { "cell_type": "code", "metadata": { - "id": "E3niz_zHaF3e", - "outputId": "055d73d6-e3ac-4807-ae58-2ab9d2d268fe", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "E3niz_zHaF3e" }, "source": [ "a_numeros1 = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])\n", "a_numeros1" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 2 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -1288,32 +809,14 @@ { "cell_type": "code", "metadata": { - "id": "gbHlydALKB3R", - "outputId": "febef174-625f-4799-aebd-a2423ff86bf2", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "gbHlydALKB3R" }, "source": [ "# Dimensão do array\n", "a_numeros1.ndim" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "1" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 3 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -1327,32 +830,14 @@ { "cell_type": "code", "metadata": { - "id": "juJJ74d2wale", - "outputId": "38f5820f-d9df-43bb-9b9e-f9c735550a9e", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "juJJ74d2wale" }, "source": [ "# Números de itens no array\n", "a_numeros1.shape" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "(10,)" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 4 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -1408,89 +893,35 @@ { "cell_type": "code", "metadata": { - "id": "tWEzge6HYSFu", - "outputId": "8ad6afab-7a41-4d5d-ca6a-994e9c2caf1e", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "tWEzge6HYSFu" }, "source": [ "a_numeros1" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 12 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "lUNlFVKYYT9f", - "outputId": "c0fe615e-f5e4-414b-ac87-4790188bbfc5", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "lUNlFVKYYT9f" }, "source": [ "a_numeros2" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 22 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "Xo8Lid5fYVPW", - "outputId": "2ea0ae7b-8046-4278-fc76-27c75146ba07", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "Xo8Lid5fYVPW" }, "source": [ "a_numeros3" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 25 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -1519,61 +950,25 @@ { "cell_type": "code", "metadata": { - "id": "Jt2KVyviw0bp", - "outputId": "d123c61e-f732-450c-b148-680b779bfa37", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "Jt2KVyviw0bp" }, "source": [ "a_numeros1" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 213 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "arROkhWXbdTW", - "outputId": "4fbecfe8-ce4a-406d-9f54-ec23a4a1806c", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "arROkhWXbdTW" }, "source": [ "a_numeros2 = a_numeros1 + 2\n", "a_numeros2" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 214 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -1587,32 +982,14 @@ { "cell_type": "code", "metadata": { - "id": "Vm7abO6Ebkun", - "outputId": "157f1414-e300-4e76-a83b-44e56c594b04", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "Vm7abO6Ebkun" }, "source": [ "a_numeros1 = a_numeros1*10\n", "a_numeros1" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 215 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -1637,12 +1014,7 @@ { "cell_type": "code", "metadata": { - "id": "VDi0vIPSYR4F", - "outputId": "5687b067-ecf8-4522-f0a0-43012ec5fc90", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 50 - } + "id": "VDi0vIPSYR4F" }, "source": [ "np.random.seed(20111974)\n", @@ -1650,21 +1022,7 @@ "a_numeros1" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[2.51, 1.11, 2.06],\n", - " [0.56, 0.3 , 1.05]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 32 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -1679,31 +1037,13 @@ { "cell_type": "code", "metadata": { - "id": "pKvjjnkrK-v7", - "outputId": "09a31b77-bbd6-4a39-df96-7d2c3870ade0", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "pKvjjnkrK-v7" }, "source": [ "a_numeros1.shape" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "(2, 3)" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 217 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -1726,104 +1066,43 @@ { "cell_type": "code", "metadata": { - "id": "hXPbWh3Tv26T", - "outputId": "60a69fea-451f-4d33-9342-962ffe4f293e", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 67 - } + "id": "hXPbWh3Tv26T" }, "source": [ "a_numeros2 = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])\n", "a_numeros2" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[1, 2, 3],\n", - " [4, 5, 6],\n", - " [7, 8, 9]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 34 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "we6ZJOICc7bQ", - "outputId": "01da492b-e3f9-4d16-96d2-aa37a4837b82", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "we6ZJOICc7bQ" }, "source": [ "# Número de linhas e colunas de a_numeros1:\n", "a_numeros1.shape" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "(2, 3)" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 35 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "f0ocwuI1dED6", - "outputId": "65179388-9f21-41b0-983c-15d332081f15", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "f0ocwuI1dED6" }, "source": [ "# Número de linhas e colunas de a_numeros2\n", "a_numeros2.shape" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "(3, 3)" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 36 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "CApPtnW0YuRP", - "outputId": "c84fcb1b-9520-465d-ea49-7e8a39d0e773", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 67 - } + "id": "CApPtnW0YuRP" }, "source": [ "# Somar 2 à cada elemento de a_numeros2\n", @@ -1831,32 +1110,12 @@ "a_numeros2" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[ 3, 4, 5],\n", - " [ 6, 7, 8],\n", - " [ 9, 10, 11]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 37 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "M87aGmxRY3RW", - "outputId": "95c25c90-5bd9-47f4-ef72-79c9f1a9b69e", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 67 - } + "id": "M87aGmxRY3RW" }, "source": [ "# Multiplicar por 10 cada elemento de a_numeros2\n", @@ -1864,22 +1123,7 @@ "a_numeros2" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[ 30, 40, 50],\n", - " [ 60, 70, 80],\n", - " [ 90, 100, 110]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 38 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -1895,12 +1139,7 @@ { "cell_type": "code", "metadata": { - "id": "sH2FTXj5MRRC", - "outputId": "b750e4c3-49e5-4ded-9b7e-b91167a7d1a6", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 50 - } + "id": "sH2FTXj5MRRC" }, "source": [ "np.random.seed(20111974)\n", @@ -1908,21 +1147,7 @@ "a_numeros1" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[2.51, 1.11, 2.06],\n", - " [0.56, 0.3 , 1.05]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 39 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -1936,33 +1161,14 @@ { "cell_type": "code", "metadata": { - "id": "K0hOHR3IMa-o", - "outputId": "e7a86131-79b5-4224-d949-59f09433575c", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 50 - } + "id": "K0hOHR3IMa-o" }, "source": [ "a_numeros1_copia = a_numeros1.copy()\n", "a_numeros1_copia" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[2.51, 1.11, 2.06],\n", - " [0.56, 0.3 , 1.05]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 40 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -1978,12 +1184,7 @@ { "cell_type": "code", "metadata": { - "id": "VnagcUqVkLhW", - "outputId": "d59f8cf9-7be2-4522-8861-1a26b86c736c", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "VnagcUqVkLhW" }, "source": [ "# Define a seed\n", @@ -1993,49 +1194,18 @@ "a_temperatura_farenheit " ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([60, 42, 40, 8, 27, 2, 46, 88, 81, 88])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 41 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "VrjNKfXxk1yv", - "outputId": "9e1a8410-3be0-49b9-be1c-d0588814a9dc", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "VrjNKfXxk1yv" }, "source": [ "type(a_temperatura_farenheit)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "numpy.ndarray" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 42 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -2049,43 +1219,19 @@ { "cell_type": "code", "metadata": { - "id": "E_jXflR_lNy3", - "outputId": "16563271-d4c1-4f89-f609-f64be0fd2bfc", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 50 - } + "id": "E_jXflR_lNy3" }, "source": [ "a_temperatura_celsius = 5*a_temperatura_farenheit/9 - 5*32/9\n", "a_temperatura_celsius" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([ 15.56, 5.56, 4.44, -13.33, -2.78, -16.67, 7.78, 31.11,\n", - " 27.22, 31.11])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 53 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "U4pCv0pNqPZI", - "outputId": "a6ec3a9b-3aeb-4682-ad4d-1e4c58ceb8b4", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 50 - } + "id": "U4pCv0pNqPZI" }, "source": [ "# O mesmo resultado, porém, escrito de forma diferente:\n", @@ -2093,21 +1239,7 @@ "a_temperatura_celsius" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([ 15.56, 5.56, 4.44, -13.33, -2.78, -16.67, 7.78, 31.11,\n", - " 27.22, 31.11])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 52 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -2122,32 +1254,14 @@ { "cell_type": "code", "metadata": { - "id": "pqOv8P1za1m8", - "outputId": "9c2d9f0b-d5e2-4860-c8e9-37e3c006aed9", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "pqOv8P1za1m8" }, "source": [ "# Selecionar o segundo item de a_numeros1 (lembre-se que no Python arrays começam com indice = 0)\n", "a_numeros1[1]" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([0.56, 0.3 , 1.05])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 45 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -2161,33 +1275,13 @@ { "cell_type": "code", "metadata": { - "id": "zoDmbXo6bCeu", - "outputId": "ed5c7f69-b8e5-43b5-cf65-057c99cd8518", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 67 - } + "id": "zoDmbXo6bCeu" }, "source": [ "a_numeros2" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[ 30, 40, 50],\n", - " [ 60, 70, 80],\n", - " [ 90, 100, 110]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 46 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -2201,61 +1295,25 @@ { "cell_type": "code", "metadata": { - "id": "sJiVfnlzcjRv", - "outputId": "a6e3e8a2-b5d4-4cce-f1d5-725d84e74f86", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "sJiVfnlzcjRv" }, "source": [ "a_numeros2[1, 2]" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "80" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 47 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "Xl5HwJIMcv2e", - "outputId": "9c93c138-3641-4cd6-c083-83d2a5b04148", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "Xl5HwJIMcv2e" }, "source": [ "# Selecionar o último elemento de a_numeros1 --> Lembre-se que a_numeros1 é um array. Desta forma, teremos o último elemento do array!\n", "a_numeros1[-1]" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([0.56, 0.3 , 1.05])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 51 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -2269,61 +1327,24 @@ { "cell_type": "code", "metadata": { - "id": "OBv9EM54rYX3", - "outputId": "a8c5c0e7-42da-4b8a-dbb0-36a09eda1981", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 50 - } + "id": "OBv9EM54rYX3" }, "source": [ "a_numeros1" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[2.51, 1.11, 2.06],\n", - " [0.56, 0.3 , 1.05]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 50 - } - ] + "outputs": [] }, - { - "cell_type": "code", - "metadata": { - "id": "Po3WLFC-rod8", - "outputId": "5fe7358a-cb76-484d-ac49-c46b5db3b800", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } - }, - "source": [ - "a_temperatura_celsius[-1]" - ], - "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "31.111111111111107" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 54 - } - ] + { + "cell_type": "code", + "metadata": { + "id": "Po3WLFC-rod8" + }, + "source": [ + "a_temperatura_celsius[-1]" + ], + "execution_count": null, + "outputs": [] }, { "cell_type": "markdown", @@ -2338,162 +1359,57 @@ { "cell_type": "code", "metadata": { - "id": "_meTJdUsda4e", - "outputId": "6eb348a3-e169-4ca4-8312-cc21c36db87f", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - } + "id": "_meTJdUsda4e" }, "source": [ "f'O máximo de a_numeros1 é: {np.max(a_numeros1)}'" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "application/vnd.google.colaboratory.intrinsic+json": { - "type": "string" - }, - "text/plain": [ - "'O máximo de a_numeros1 é: 2.506276801325959'" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 55 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "m-wiBkAidnhN", - "outputId": "28e2204c-6141-445d-870e-65f0cf4c17d3", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - } + "id": "m-wiBkAidnhN" }, "source": [ "f'O mínimo de a_numeros1 é: {np.min(a_numeros1)}'" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "application/vnd.google.colaboratory.intrinsic+json": { - "type": "string" - }, - "text/plain": [ - "'O mínimo de a_numeros1 é: 0.29897275739745677'" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 56 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "lmupnRHQdtwh", - "outputId": "4e126754-2d47-4493-85e2-8acb80a2d579", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - } + "id": "lmupnRHQdtwh" }, "source": [ "f'O máximo de a_numeros2 é: {np.max(a_numeros2)}'" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "application/vnd.google.colaboratory.intrinsic+json": { - "type": "string" - }, - "text/plain": [ - "'O máximo de a_numeros2 é: 110'" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 57 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "H2z7oB6Bd786", - "outputId": "938a8ac0-f5d5-41b0-f3d0-8e38aba3dcaa", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - } + "id": "H2z7oB6Bd786" }, "source": [ "f'O máximo de cada LINHA de a_numeros2 é: {np.max(a_numeros2, axis = 1)}' # Aqui, axis = 1 é que diz ao numpy que estamos interessados nas linhas" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "application/vnd.google.colaboratory.intrinsic+json": { - "type": "string" - }, - "text/plain": [ - "'O máximo de cada LINHA de a_numeros2 é: [ 50 80 110]'" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 58 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "gj2ZBDsWeMyk", - "outputId": "00921a94-02c7-46cc-dc26-fec32cb6ae35", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - } + "id": "gj2ZBDsWeMyk" }, "source": [ "f'O máximo de cada COLUNA de a_numeros2 é: {np.max(a_numeros2, axis = 0)}' # axis = 0, diz ao numpy que estamos interessados nas colunas." ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "application/vnd.google.colaboratory.intrinsic+json": { - "type": "string" - }, - "text/plain": [ - "'O máximo de cada COLUNA de a_numeros2 é: [ 90 100 110]'" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 59 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -2508,98 +1424,35 @@ { "cell_type": "code", "metadata": { - "id": "lIY5jx3ueh7q", - "outputId": "1b757995-be76-4485-9ae9-6c8bd2fa1a10", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - } + "id": "lIY5jx3ueh7q" }, "source": [ "f'A média de a_numeros1 é: {np.mean(a_numeros1)}'" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "application/vnd.google.colaboratory.intrinsic+json": { - "type": "string" - }, - "text/plain": [ - "'A média de a_numeros1 é: 1.2649068535973844'" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 60 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "VmqSELRReuAW", - "outputId": "92fd3010-e201-46b1-c5d7-4eeb08a019e1", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - } + "id": "VmqSELRReuAW" }, "source": [ "f'A média de a_numeros2 é: {np.mean(a_numeros2)}'" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "application/vnd.google.colaboratory.intrinsic+json": { - "type": "string" - }, - "text/plain": [ - "'A média de a_numeros2 é: 70.0'" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 61 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "Gxap-Wg5e2_H", - "outputId": "8f043c45-4368-4c1e-d878-d38f088de3b8", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - } + "id": "Gxap-Wg5e2_H" }, "source": [ "f'O Desvio Padrão de a_numeros2 é: {np.std(a_numeros2)}'" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "application/vnd.google.colaboratory.intrinsic+json": { - "type": "string" - }, - "text/plain": [ - "'O Desvio Padrão de a_numeros2 é: 25.81988897471611'" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 62 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -2625,71 +1478,25 @@ { "cell_type": "code", "metadata": { - "id": "-Lb3VZCCfK_a", - "outputId": "1106bfb2-28b0-4f1d-847a-cb4f964e4ffc", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 68 - } + "id": "-Lb3VZCCfK_a" }, "source": [ "a_numeros2" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[ 30, 40, 50],\n", - " [ 60, 70, 80],\n", - " [ 90, 100, 110]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 240 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "YWN_nN-4fD7u", - "outputId": "404c9b49-64f6-40f6-d897-5e2dfa8a52b7", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 168 - } + "id": "YWN_nN-4fD7u" }, "source": [ "# reshaping para 9 linhas e 1 coluna:\n", "a_numeros2.reshape(9, 1) # a_numeros2.reshape(9,-1) produz o mesmo resultado." ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[ 30],\n", - " [ 40],\n", - " [ 50],\n", - " [ 60],\n", - " [ 70],\n", - " [ 80],\n", - " [ 90],\n", - " [100],\n", - " [110]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 63 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -2705,7 +1512,7 @@ "cell_type": "code", "metadata": { "id": "9RA9Ht2b7Swd", - "outputId": "3b0cc275-06ed-4b32-da9f-e4a70cca538a", + "outputId": "eadedfd5-fd6c-49c8-db5c-6f8f30d45f36", "colab": { "base_uri": "https://localhost:8080/", "height": 34 @@ -2729,7 +1536,7 @@ "metadata": { "tags": [] }, - "execution_count": 64 + "execution_count": 19 } ] }, @@ -2749,10 +1556,10 @@ "cell_type": "code", "metadata": { "id": "VMdHl1Il7wLw", - "outputId": "df821e79-bb81-4b4d-8d3d-050b1e4b4bef", + "outputId": "d51c7263-f523-4af8-9606-ee93cab66f1c", "colab": { "base_uri": "https://localhost:8080/", - "height": 163 + "height": 162 } }, "source": [ @@ -2767,7 +1574,7 @@ "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mValueError\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_X\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# O valor \"-1\" na posição das linhas pede ao NumPy para calcular o número de linhas automaticamente.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0ma_numeros1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# O valor \"-1\" na posição das linhas pede ao NumPy para calcular o número de linhas automaticamente.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mValueError\u001b[0m: cannot reshape array of size 15 into shape (2)" ] } @@ -2795,7 +1602,7 @@ "cell_type": "code", "metadata": { "id": "3oEAAXTp8I7Z", - "outputId": "6bd71483-9b77-4a0c-b2a3-f9da78830729", + "outputId": "e8c8a90f-c34a-4304-d9b4-fd7f04ce224f", "colab": { "base_uri": "https://localhost:8080/", "height": 34 @@ -2819,7 +1626,7 @@ "metadata": { "tags": [] }, - "execution_count": 65 + "execution_count": 21 } ] }, @@ -2836,7 +1643,7 @@ "cell_type": "code", "metadata": { "id": "9D1y7uD88Qip", - "outputId": "37d2e79b-7de9-45c7-e630-5ed8cd00457f", + "outputId": "e7d22bcd-c10f-4ea3-e41b-03f6f98a054f", "colab": { "base_uri": "https://localhost:8080/", "height": 151 @@ -2864,43 +1671,23 @@ "metadata": { "tags": [] }, - "execution_count": 66 + "execution_count": 22 } ] }, - { - "cell_type": "markdown", - "metadata": { - "id": "yvTnrszn8Yk0" - }, - "source": [ - "Porque agora deu certo?" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LeQ9LqIE8baG" - }, - "source": [ - "## Último exemplo com reshape\n", - "> Considere o array a seguir:" - ] - }, { "cell_type": "code", "metadata": { - "id": "OQOC9iiN8hZT", - "outputId": "80bd5db3-2778-442c-ce68-f23679f47897", + "id": "ALh-sq7DMnN5", + "outputId": "db373349-7910-4f1f-93f3-8ac8f67da8b8", "colab": { "base_uri": "https://localhost:8080/", - "height": 50 + "height": 151 } }, "source": [ - "np.random.seed(20111974)\n", - "a_numeros1 = np.random.randn(2, 3)\n", - "a_numeros1" + "# OU --> Neste caso, estamos reshaping o array em 8 linhas e 2 colunas\n", + "a_numeros1.reshape(8, -1)" ], "execution_count": null, "outputs": [ @@ -2908,17 +1695,55 @@ "output_type": "execute_result", "data": { "text/plain": [ - "array([[2.51, 1.11, 2.06],\n", - " [0.56, 0.3 , 1.05]])" + "array([[9, 9],\n", + " [3, 9],\n", + " [2, 9],\n", + " [1, 5],\n", + " [3, 1],\n", + " [9, 4],\n", + " [8, 2],\n", + " [4, 3]])" ] }, "metadata": { "tags": [] }, - "execution_count": 67 + "execution_count": 26 } ] }, + { + "cell_type": "markdown", + "metadata": { + "id": "yvTnrszn8Yk0" + }, + "source": [ + "Porque agora deu certo?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LeQ9LqIE8baG" + }, + "source": [ + "## Último exemplo com reshape\n", + "> Considere o array a seguir:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "OQOC9iiN8hZT" + }, + "source": [ + "np.random.seed(20111974)\n", + "a_numeros1 = np.random.randn(2, 3)\n", + "a_numeros1" + ], + "execution_count": null, + "outputs": [] + }, { "cell_type": "markdown", "metadata": { @@ -2931,33 +1756,13 @@ { "cell_type": "code", "metadata": { - "id": "QDDsYoVt9Klz", - "outputId": "60176abb-f0d2-4041-bb4a-27ca16552c4a", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 67 - } + "id": "QDDsYoVt9Klz" }, "source": [ "a_numeros1.reshape(-1, 2)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[2.51, 1.11],\n", - " [2.06, 0.56],\n", - " [0.3 , 1.05]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 68 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -2971,33 +1776,13 @@ { "cell_type": "code", "metadata": { - "id": "5uBeokKc9Uo-", - "outputId": "46b45ad5-94b3-4cf0-e866-fde24ea8c99f", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 67 - } + "id": "5uBeokKc9Uo-" }, "source": [ "a_numeros1.reshape(3, -1)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[2.51, 1.11],\n", - " [2.06, 0.56],\n", - " [0.3 , 1.05]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 69 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -3011,33 +1796,13 @@ { "cell_type": "code", "metadata": { - "id": "MDt8UYYH9dBw", - "outputId": "5febef42-e5f6-4a17-9dbd-b3c0d8fad09c", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 67 - } + "id": "MDt8UYYH9dBw" }, "source": [ "a_numeros1.reshape(3, 2)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[2.51, 1.11],\n", - " [2.06, 0.56],\n", - " [0.3 , 1.05]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 70 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -3053,65 +1818,25 @@ { "cell_type": "code", "metadata": { - "id": "RsZwyuhoffjb", - "outputId": "df1868bd-82fe-49ad-c3bd-c661eede1a58", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 68 - } + "id": "RsZwyuhoffjb" }, "source": [ "a_numeros2" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[ 30, 40, 50],\n", - " [ 60, 70, 80],\n", - " [ 90, 100, 110]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 250 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "A3MzTVoGfiyO", - "outputId": "ac747fcf-8adb-4076-ee70-fba500620b1d", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 68 - } + "id": "A3MzTVoGfiyO" }, "source": [ "# Transposta do array a_numeros2 é dado por:\n", "a_numeros2.T" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[ 30, 60, 90],\n", - " [ 40, 70, 100],\n", - " [ 50, 80, 110]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 251 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -3152,94 +1877,35 @@ { "cell_type": "code", "metadata": { - "id": "7zmHHWWlvaYB", - "outputId": "7b9618a8-7a7a-45aa-fda3-d64b60aa5a9c", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 68 - } + "id": "7zmHHWWlvaYB" }, "source": [ "a_numeros1" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[1, 2, 3],\n", - " [4, 5, 6],\n", - " [7, 8, 9]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 253 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "3fHKyhOJvcak", - "outputId": "09f93a28-fdd9-4aa4-b8dd-e2ddec78fd18", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 51 - } + "id": "3fHKyhOJvcak" }, "source": [ "a_numeros2" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[6, 2],\n", - " [5, 3]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 254 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "vQG7yyfjwLg9", - "outputId": "a5bc619d-71eb-49da-e4af-9acc0a1e8b85", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 68 - } + "id": "vQG7yyfjwLg9" }, "source": [ "a_numeros3" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[1, 3, 5],\n", - " [2, 5, 1],\n", - " [2, 3, 8]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 255 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -3253,89 +1919,35 @@ { "cell_type": "code", "metadata": { - "id": "N6jwuC6twkyc", - "outputId": "f5dad967-2d7a-4d88-d513-8a7c65899372", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "N6jwuC6twkyc" }, "source": [ "np.linalg.det(a_numeros1)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "0.0" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 256 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "QSvViNwzwnhI", - "outputId": "7a9f32a3-d6b5-48b9-c78a-abeb136be09b", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "QSvViNwzwnhI" }, "source": [ "np.linalg.det(a_numeros2)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "8.000000000000002" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 257 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "o8jwsnccw5id", - "outputId": "0e7ec980-9de3-42af-f326-5cc3678d1830", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "o8jwsnccw5id" }, "source": [ "np.linalg.det(a_numeros3)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "-25.000000000000007" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 258 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -3349,63 +1961,24 @@ { "cell_type": "code", "metadata": { - "id": "b9FgWvTYvpik", - "outputId": "f414dc21-c596-4474-b4c7-980a91580728", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 51 - } + "id": "b9FgWvTYvpik" }, "source": [ "np.linalg.inv(a_numeros2)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[ 0.38, -0.25],\n", - " [-0.62, 0.75]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 259 - } - ] + "outputs": [] }, { "cell_type": "code", "metadata": { - "id": "KsdEt1kIvsM_", - "outputId": "b1dd24cb-f934-4db5-9f74-94d09ada624d", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 459 - } + "id": "KsdEt1kIvsM_" }, "source": [ "np.linalg.inv(a_numeros1)" ], "execution_count": null, - "outputs": [ - { - "output_type": "error", - "ename": "LinAlgError", - "evalue": "ignored", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mLinAlgError\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[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlinalg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma_X\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<__array_function__ internals>\u001b[0m in \u001b[0;36minv\u001b[0;34m(*args, **kwargs)\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/numpy/linalg/linalg.py\u001b[0m in \u001b[0;36minv\u001b[0;34m(a)\u001b[0m\n\u001b[1;32m 549\u001b[0m \u001b[0msignature\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'D->D'\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misComplexType\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;34m'd->d'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 550\u001b[0m \u001b[0mextobj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_linalg_error_extobj\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_raise_linalgerror_singular\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 551\u001b[0;31m \u001b[0mainv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_umath_linalg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msignature\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msignature\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mextobj\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mextobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 552\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mainv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult_t\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\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 553\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/numpy/linalg/linalg.py\u001b[0m in \u001b[0;36m_raise_linalgerror_singular\u001b[0;34m(err, flag)\u001b[0m\n\u001b[1;32m 95\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 96\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_raise_linalgerror_singular\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mflag\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[0;32m---> 97\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mLinAlgError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Singular matrix\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 98\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 99\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_raise_linalgerror_nonposdef\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mflag\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[0;31mLinAlgError\u001b[0m: Singular matrix" - ] - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -3419,33 +1992,13 @@ { "cell_type": "code", "metadata": { - "id": "ANPBCnmVwOf4", - "outputId": "10d89ffe-728f-4e3a-df1b-88fc9bddd972", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 68 - } + "id": "ANPBCnmVwOf4" }, "source": [ "np.linalg.inv(a_numeros3)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[-1.48, 0.36, 0.88],\n", - " [ 0.56, 0.08, -0.36],\n", - " [ 0.16, -0.12, 0.04]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 262 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -3477,34 +2030,14 @@ { "cell_type": "code", "metadata": { - "id": "omzC5dGA0btc", - "outputId": "d0010653-49f2-4e96-d4e2-502457e963a7", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 68 - } + "id": "omzC5dGA0btc" }, "source": [ "A= np.array([[1, 3, 5], [2, 5, 1], [2, 3, 8]])\n", "np.linalg.inv(A)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([[-1.48, 0.36, 0.88],\n", - " [ 0.56, 0.08, -0.36],\n", - " [ 0.16, -0.12, 0.04]])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 264 - } - ] + "outputs": [] }, { "cell_type": "markdown", @@ -3615,10 +2148,10 @@ }, "source": [ "np.random.seed(20111974)\n", - "a_numeros1 = np.random.randn(2, 3)\n", + "a_numeros1 = np.random.randn(5, 8)\n", "\n", "np.random.seed(19741120)\n", - "a_numeros2 = np.random.randn(2, 3)" + "a_numeros2 = np.random.randn(8, 8)" ], "execution_count": null, "outputs": [] @@ -3636,10 +2169,10 @@ "cell_type": "code", "metadata": { "id": "HgO1ujvhObyE", - "outputId": "12530dac-087a-4f7f-8266-a7b4190751b9", + "outputId": "c40e7ed9-255b-4886-dddf-3b17f2b1be2f", "colab": { "base_uri": "https://localhost:8080/", - "height": 50 + "height": 187 } }, "source": [ @@ -3651,14 +2184,22 @@ "output_type": "execute_result", "data": { "text/plain": [ - "array([[2.5062768 , 1.11440422, 2.05565501],\n", - " [0.56482376, 0.29897276, 1.04930857]])" + "array([[ 2.5062768 , 1.11440422, 2.05565501, 0.56482376, 0.29897276,\n", + " 1.04930857, -0.12607366, 1.06227632],\n", + " [ 1.13807032, 1.37966044, -2.05995563, 0.67474814, 0.72722843,\n", + " -0.33923852, 0.43613107, 0.59135489],\n", + " [-1.29281877, 1.17712036, -0.98644163, -1.79034143, -1.08913605,\n", + " -0.90712825, -1.02291108, -1.36445713],\n", + " [-0.29429164, 0.06343709, -1.14196185, -0.50706079, -0.83539436,\n", + " -1.41492946, -0.2159062 , -1.16519474],\n", + " [-0.60767518, -0.61510925, 1.0771542 , 0.5043687 , 0.02674197,\n", + " 1.83494644, 0.34728874, -1.14671885]])" ] }, "metadata": { "tags": [] }, - "execution_count": 4 + "execution_count": 33 } ] }, @@ -3666,10 +2207,10 @@ "cell_type": "code", "metadata": { "id": "2aQY_klZOeg9", - "outputId": "a8b9e2d7-1575-4051-b4cc-339cbd28d403", + "outputId": "14eb3d9c-d0fc-4b6a-fe19-1790695c838f", "colab": { "base_uri": "https://localhost:8080/", - "height": 50 + "height": 289 } }, "source": [ @@ -3681,14 +2222,28 @@ "output_type": "execute_result", "data": { "text/plain": [ - "array([[-0.77337752, -1.10547465, 0.10062807],\n", - " [-1.14571729, -2.15266227, -0.75255725]])" + "array([[-0.77337752, -1.10547465, 0.10062807, -1.14571729, -2.15266227,\n", + " -0.75255725, -2.1529949 , -0.33017773],\n", + " [-1.10465731, 0.32889675, 0.01010198, -1.33213633, -0.33945805,\n", + " -0.01299007, 0.05342823, -0.18641201],\n", + " [ 0.39473805, -0.89354231, -0.50667323, -0.74660913, 1.83586365,\n", + " -1.20536871, 1.20184886, 0.51160897],\n", + " [-0.56952286, -0.93343871, -0.24972528, 0.98487133, 1.19333367,\n", + " 2.29956497, 0.16657022, 0.71357415],\n", + " [-0.45251078, 0.92163918, 0.73421263, 2.17811191, -0.05655212,\n", + " 1.25326 , -0.37039248, 1.43855202],\n", + " [ 0.85646091, -0.11257239, -0.35400297, 0.94136671, -0.08696163,\n", + " -1.49000701, 0.00848666, 0.86705275],\n", + " [ 1.6340906 , 1.36321063, -0.02175361, -0.45301645, -0.37111236,\n", + " -0.04716069, -2.27337435, 0.95318738],\n", + " [ 0.7100548 , -0.79883269, -0.3165779 , -1.58352824, -0.37751484,\n", + " -0.29760341, -0.73424207, -0.55703223]])" ] }, "metadata": { "tags": [] }, - "execution_count": 5 + "execution_count": 34 } ] }, @@ -3696,10 +2251,10 @@ "cell_type": "code", "metadata": { "id": "bK70vaq8_KMH", - "outputId": "ec2a3991-cde8-4067-f824-86bf94452bfe", + "outputId": "f6d400cf-4b54-4990-815b-052f5224aadd", "colab": { "base_uri": "https://localhost:8080/", - "height": 84 + "height": 459 } }, "source": [ @@ -3711,16 +2266,38 @@ "output_type": "execute_result", "data": { "text/plain": [ - "array([[ 2.5062768 , 1.11440422, 2.05565501],\n", - " [ 0.56482376, 0.29897276, 1.04930857],\n", - " [-0.77337752, -1.10547465, 0.10062807],\n", - " [-1.14571729, -2.15266227, -0.75255725]])" + "array([[ 2.5062768 , 1.11440422, 2.05565501, 0.56482376, 0.29897276,\n", + " 1.04930857, -0.12607366, 1.06227632],\n", + " [ 1.13807032, 1.37966044, -2.05995563, 0.67474814, 0.72722843,\n", + " -0.33923852, 0.43613107, 0.59135489],\n", + " [-1.29281877, 1.17712036, -0.98644163, -1.79034143, -1.08913605,\n", + " -0.90712825, -1.02291108, -1.36445713],\n", + " [-0.29429164, 0.06343709, -1.14196185, -0.50706079, -0.83539436,\n", + " -1.41492946, -0.2159062 , -1.16519474],\n", + " [-0.60767518, -0.61510925, 1.0771542 , 0.5043687 , 0.02674197,\n", + " 1.83494644, 0.34728874, -1.14671885],\n", + " [-0.77337752, -1.10547465, 0.10062807, -1.14571729, -2.15266227,\n", + " -0.75255725, -2.1529949 , -0.33017773],\n", + " [-1.10465731, 0.32889675, 0.01010198, -1.33213633, -0.33945805,\n", + " -0.01299007, 0.05342823, -0.18641201],\n", + " [ 0.39473805, -0.89354231, -0.50667323, -0.74660913, 1.83586365,\n", + " -1.20536871, 1.20184886, 0.51160897],\n", + " [-0.56952286, -0.93343871, -0.24972528, 0.98487133, 1.19333367,\n", + " 2.29956497, 0.16657022, 0.71357415],\n", + " [-0.45251078, 0.92163918, 0.73421263, 2.17811191, -0.05655212,\n", + " 1.25326 , -0.37039248, 1.43855202],\n", + " [ 0.85646091, -0.11257239, -0.35400297, 0.94136671, -0.08696163,\n", + " -1.49000701, 0.00848666, 0.86705275],\n", + " [ 1.6340906 , 1.36321063, -0.02175361, -0.45301645, -0.37111236,\n", + " -0.04716069, -2.27337435, 0.95318738],\n", + " [ 0.7100548 , -0.79883269, -0.3165779 , -1.58352824, -0.37751484,\n", + " -0.29760341, -0.73424207, -0.55703223]])" ] }, "metadata": { "tags": [] }, - "execution_count": 6 + "execution_count": 35 } ] }, @@ -3737,10 +2314,10 @@ "cell_type": "code", "metadata": { "id": "3QnVUzAY_teZ", - "outputId": "f20f678e-0267-4480-a359-eddc869fee1d", + "outputId": "e8adfd85-e760-40f5-d9ac-48353d24ccd2", "colab": { "base_uri": "https://localhost:8080/", - "height": 84 + "height": 459 } }, "source": [ @@ -3752,16 +2329,38 @@ "output_type": "execute_result", "data": { "text/plain": [ - "array([[ 2.5062768 , 1.11440422, 2.05565501],\n", - " [ 0.56482376, 0.29897276, 1.04930857],\n", - " [-0.77337752, -1.10547465, 0.10062807],\n", - " [-1.14571729, -2.15266227, -0.75255725]])" + "array([[ 2.5062768 , 1.11440422, 2.05565501, 0.56482376, 0.29897276,\n", + " 1.04930857, -0.12607366, 1.06227632],\n", + " [ 1.13807032, 1.37966044, -2.05995563, 0.67474814, 0.72722843,\n", + " -0.33923852, 0.43613107, 0.59135489],\n", + " [-1.29281877, 1.17712036, -0.98644163, -1.79034143, -1.08913605,\n", + " -0.90712825, -1.02291108, -1.36445713],\n", + " [-0.29429164, 0.06343709, -1.14196185, -0.50706079, -0.83539436,\n", + " -1.41492946, -0.2159062 , -1.16519474],\n", + " [-0.60767518, -0.61510925, 1.0771542 , 0.5043687 , 0.02674197,\n", + " 1.83494644, 0.34728874, -1.14671885],\n", + " [-0.77337752, -1.10547465, 0.10062807, -1.14571729, -2.15266227,\n", + " -0.75255725, -2.1529949 , -0.33017773],\n", + " [-1.10465731, 0.32889675, 0.01010198, -1.33213633, -0.33945805,\n", + " -0.01299007, 0.05342823, -0.18641201],\n", + " [ 0.39473805, -0.89354231, -0.50667323, -0.74660913, 1.83586365,\n", + " -1.20536871, 1.20184886, 0.51160897],\n", + " [-0.56952286, -0.93343871, -0.24972528, 0.98487133, 1.19333367,\n", + " 2.29956497, 0.16657022, 0.71357415],\n", + " [-0.45251078, 0.92163918, 0.73421263, 2.17811191, -0.05655212,\n", + " 1.25326 , -0.37039248, 1.43855202],\n", + " [ 0.85646091, -0.11257239, -0.35400297, 0.94136671, -0.08696163,\n", + " -1.49000701, 0.00848666, 0.86705275],\n", + " [ 1.6340906 , 1.36321063, -0.02175361, -0.45301645, -0.37111236,\n", + " -0.04716069, -2.27337435, 0.95318738],\n", + " [ 0.7100548 , -0.79883269, -0.3165779 , -1.58352824, -0.37751484,\n", + " -0.29760341, -0.73424207, -0.55703223]])" ] }, "metadata": { "tags": [] }, - "execution_count": 7 + "execution_count": 36 } ] }, @@ -3787,10 +2386,10 @@ "cell_type": "code", "metadata": { "id": "uL7lEN_mABID", - "outputId": "f041eccb-ed45-4503-cc8e-9e81e9ae92f5", + "outputId": "d1ea4d86-2cc1-4e2d-af72-b3a292ef15fd", "colab": { "base_uri": "https://localhost:8080/", - "height": 84 + "height": 459 } }, "source": [ @@ -3802,16 +2401,38 @@ "output_type": "execute_result", "data": { "text/plain": [ - "array([[ 2.5062768 , 1.11440422, 2.05565501],\n", - " [ 0.56482376, 0.29897276, 1.04930857],\n", - " [-0.77337752, -1.10547465, 0.10062807],\n", - " [-1.14571729, -2.15266227, -0.75255725]])" + "array([[ 2.5062768 , 1.11440422, 2.05565501, 0.56482376, 0.29897276,\n", + " 1.04930857, -0.12607366, 1.06227632],\n", + " [ 1.13807032, 1.37966044, -2.05995563, 0.67474814, 0.72722843,\n", + " -0.33923852, 0.43613107, 0.59135489],\n", + " [-1.29281877, 1.17712036, -0.98644163, -1.79034143, -1.08913605,\n", + " -0.90712825, -1.02291108, -1.36445713],\n", + " [-0.29429164, 0.06343709, -1.14196185, -0.50706079, -0.83539436,\n", + " -1.41492946, -0.2159062 , -1.16519474],\n", + " [-0.60767518, -0.61510925, 1.0771542 , 0.5043687 , 0.02674197,\n", + " 1.83494644, 0.34728874, -1.14671885],\n", + " [-0.77337752, -1.10547465, 0.10062807, -1.14571729, -2.15266227,\n", + " -0.75255725, -2.1529949 , -0.33017773],\n", + " [-1.10465731, 0.32889675, 0.01010198, -1.33213633, -0.33945805,\n", + " -0.01299007, 0.05342823, -0.18641201],\n", + " [ 0.39473805, -0.89354231, -0.50667323, -0.74660913, 1.83586365,\n", + " -1.20536871, 1.20184886, 0.51160897],\n", + " [-0.56952286, -0.93343871, -0.24972528, 0.98487133, 1.19333367,\n", + " 2.29956497, 0.16657022, 0.71357415],\n", + " [-0.45251078, 0.92163918, 0.73421263, 2.17811191, -0.05655212,\n", + " 1.25326 , -0.37039248, 1.43855202],\n", + " [ 0.85646091, -0.11257239, -0.35400297, 0.94136671, -0.08696163,\n", + " -1.49000701, 0.00848666, 0.86705275],\n", + " [ 1.6340906 , 1.36321063, -0.02175361, -0.45301645, -0.37111236,\n", + " -0.04716069, -2.27337435, 0.95318738],\n", + " [ 0.7100548 , -0.79883269, -0.3165779 , -1.58352824, -0.37751484,\n", + " -0.29760341, -0.73424207, -0.55703223]])" ] }, "metadata": { "tags": [] }, - "execution_count": 8 + "execution_count": 37 } ] }, @@ -3858,10 +2479,10 @@ "cell_type": "code", "metadata": { "id": "JPxhGsaSSMk2", - "outputId": "580e2270-930e-4ba4-9b08-efdadb474d04", + "outputId": "47727fe9-05f1-4ff7-ec0a-04579120cf78", "colab": { "base_uri": "https://localhost:8080/", - "height": 185 + "height": 187 } }, "source": [ @@ -3888,7 +2509,7 @@ "metadata": { "tags": [] }, - "execution_count": 13 + "execution_count": 39 } ] }, @@ -3896,10 +2517,10 @@ "cell_type": "code", "metadata": { "id": "9ZyUPfybTfej", - "outputId": "4c4c4f07-771e-4fc2-8946-4e810647c0c6", + "outputId": "ac27a20e-1622-4cb9-d6f6-74ee467bdb72", "colab": { "base_uri": "https://localhost:8080/", - "height": 185 + "height": 187 } }, "source": [ @@ -3926,7 +2547,7 @@ "metadata": { "tags": [] }, - "execution_count": 14 + "execution_count": 40 } ] }, @@ -3934,10 +2555,10 @@ "cell_type": "code", "metadata": { "id": "nS1cPG3aRug1", - "outputId": "90242ea3-737e-48d7-f1af-e812fb2f4b83", + "outputId": "c70cf891-ae8f-445d-c271-c6b7f7da1738", "colab": { "base_uri": "https://localhost:8080/", - "height": 185 + "height": 187 } }, "source": [ @@ -3965,7 +2586,7 @@ "metadata": { "tags": [] }, - "execution_count": 15 + "execution_count": 41 } ] }, @@ -3983,14 +2604,32 @@ { "cell_type": "code", "metadata": { - "id": "e2pL5anBV0DI" + "id": "e2pL5anBV0DI", + "outputId": "f37cd827-ee00-49ba-994d-77cab3a24421", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } }, "source": [ "a_numeros1 = np.arange(10, 0, -1)\n", "a_numeros1" ], "execution_count": null, - "outputs": [] + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([10, 9, 8, 7, 6, 5, 4, 3, 2, 1])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 42 + } + ] }, { "cell_type": "markdown", @@ -4013,14 +2652,62 @@ { "cell_type": "code", "metadata": { - "id": "O_ZBaWxfWA9o" + "id": "BdrAQLHkTS-v", + "outputId": "44a6e480-1b6c-4dad-ee29-2fcb4ada5097", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([10, 9, 8, 7, 6, 5, 4, 3, 2, 1])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 45 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "O_ZBaWxfWA9o", + "outputId": "fae44244-ff29-4b04-cd2d-a4c768487e75", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } }, "source": [ + "# Índices do array que atendem a condição\n", "l_indices = np.where(a_numeros1 > 7)\n", "l_indices" ], "execution_count": null, - "outputs": [] + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(array([0, 1, 2]),)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 44 + } + ] }, { "cell_type": "markdown", @@ -4034,14 +2721,32 @@ { "cell_type": "code", "metadata": { - "id": "tOxs3iYQWWxu" + "id": "tOxs3iYQWWxu", + "outputId": "b402fdfd-c6e0-4170-b35c-c7c5cd2ca85e", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } }, "source": [ "a_numeros2 = a_numeros1[l_indices]\n", "a_numeros2" ], "execution_count": null, - "outputs": [] + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([10, 9, 8])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 46 + } + ] }, { "cell_type": "markdown", @@ -4055,13 +2760,31 @@ { "cell_type": "code", "metadata": { - "id": "YbdRNk1WXTLT" + "id": "YbdRNk1WXTLT", + "outputId": "062b157c-00fb-4f8f-d207-a0c8e9871e48", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } }, "source": [ "a_numeros1[a_numeros1 > 7]" ], "execution_count": null, - "outputs": [] + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([10, 9, 8])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 47 + } + ] }, { "cell_type": "markdown", @@ -4086,13 +2809,32 @@ { "cell_type": "code", "metadata": { - "id": "FYZaBsasSb3N" + "id": "FYZaBsasSb3N", + "outputId": "0a190896-249c-4d7c-ea0d-a20a53536446", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + } }, "source": [ "a_numeros1 > 7" ], "execution_count": null, - "outputs": [] + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([ True, True, True, False, False, False, False, False, False,\n", + " False])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 48 + } + ] }, { "cell_type": "code", @@ -4105,6 +2847,35 @@ "execution_count": null, "outputs": [] }, + { + "cell_type": "code", + "metadata": { + "id": "nO4FiBmDUZOT", + "outputId": "9f54e601-d95a-444c-bd59-28947e332248", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "a_numeros1" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([-1, -1, -1, 7, 6, 5, 4, 3, 2, 1])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 52 + } + ] + }, { "cell_type": "markdown", "metadata": { @@ -4179,13 +2950,31 @@ { "cell_type": "code", "metadata": { - "id": "sr268Rp8b-Se" + "id": "sr268Rp8b-Se", + "outputId": "82514805-b350-45c4-a3fc-7cb24c847b7f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } }, "source": [ "a_numeros2 < 0" ], "execution_count": null, - "outputs": [] + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([False, False, False])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 50 + } + ] }, { "cell_type": "code", @@ -4295,8 +3084,8 @@ "source": [ "## Desafio\n", "> Substituir os outliers do array por:\n", - "1. Q1-1.5\\*IQR, se ponto < Q1-1.5\\*IQR\n", - "2. Q3+1.5\\*IQR, se ponto > Q3+1.5\\*IQR" + "1. Q1-1.5\\*(Q3 - Q1), se ponto < Q1-1.5\\*IQR\n", + "2. Q3+1.5\\*(Q3 - Q1), se ponto > Q3+1.5\\*IQR" ] }, { @@ -4305,13 +3094,26 @@ "id": "DUw_a-MjWvBc" }, "source": [ - "### Gerar o exemplo" + "### Desafio para resolverem\n", + "> Objetivo: Simular aleatoriamente o salário de 1.000 pessoas com distribuição N(1.045; 100). \n", + "* Identificar os outliers da distribuição que acabamos de simular;\n", + "* Qual a média da distribuição que simulamos?\n", + "* Qual o desvio-padrão;\n", + "* Plotar o Boxplot da distribuição dos dados;\n", + "* Quantas pessoas > Q3 + 1.5*(Q3.Q1)\n", + "\n", + "Obs.: Use np.random.seed(20111974)." ] }, { "cell_type": "code", "metadata": { - "id": "RL0Zb0fyDory" + "id": "RL0Zb0fyDory", + "outputId": "1e5a0d7e-833c-4de5-aedc-56a4d836ea73", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 446 + } }, "source": [ "np.random.seed(19741120)\n", @@ -4324,22 +3126,82 @@ "\n", "a_numeros1_copia = a_numeros1.copy()\n", "for i in l_indices:\n", - " a_numeros1_copia[i] = 2*a_numeros1_copia[i]" + " a_numeros1_copia[i] = 2*a_numeros1_copia[i]\n", + "\n", + "a_numeros1_copia" ], "execution_count": null, - "outputs": [] + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([ 92.26622483, 88.94525348, 202.01256141, 88.54282712,\n", + " 78.47337726, 92.47442751, 78.47005101, 96.69822268,\n", + " 177.90685389, 103.28896747, 100.10101983, 86.67863666,\n", + " 96.60541955, 99.87009928, 100.53428231, 98.13587989,\n", + " 103.94738054, 91.06457686, 94.93326767, 92.53390871,\n", + " 118.35863649, 87.94631286, 112.01848858, 105.1160897 ,\n", + " 94.30477141, 90.66561289, 97.50274717, 219.69742669,\n", + " 111.93333668, 122.99564969, 101.66570222, 107.13574148,\n", + " 95.47489218, 109.21639184, 107.3421263 , 121.78111913,\n", + " 99.43447875, 112.53259996, 96.29607519, 114.38552019,\n", + " 217.12921824, 98.87427612, 192.91994052, 109.41366709,\n", + " 99.13038373, 85.09992988, 200.16973311, 108.67052746,\n", + " 116.34090601, 113.63210628, 99.78246389, 95.46983552,\n", + " 96.28887641, 99.52839308, 77.2662565 , 109.53187379,\n", + " 107.10054804, 92.01167315, 96.83422097, 84.16471762,\n", + " 192.44970327, 97.02396587, 92.65757933, 94.42967769,\n", + " 94.02193121, 96.78511833, 113.48163484, 113.01668438,\n", + " 105.02843445, 107.58835306, 110.94932036, 99.23942748,\n", + " 93.74530061, 98.11132421, 84.62965767, 101.61893629,\n", + " 97.35568508, 94.27312327, 105.55501746, 105.45183177,\n", + " 91.55201318, 207.3344281 , 103.85618579, 98.93911584,\n", + " 119.4216084 , 91.53859352, 79.86676575, 106.45458816,\n", + " 311.17594425, 106.44862258, 113.52153879, 111.68130043,\n", + " 100.4550085 , 93.80661302, 98.87736992, 122.53185044,\n", + " 112.21271855, 101.34656943, 104.99984125, 94.74563688])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 56 + } + ] }, { "cell_type": "code", "metadata": { - "id": "ZnmykyahLWX9" + "id": "ZnmykyahLWX9", + "outputId": "3bbfbafd-8715-4f72-de0e-693f2dcd9887", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } }, "source": [ "# Algumas estatísticas descritivas:\n", "f'Média: {np.mean(a_numeros1)}; Mediana: {np.median(a_numeros1)}; STD: {np.std(a_numeros1)}'" ], "execution_count": null, - "outputs": [] + "outputs": [ + { + "output_type": "execute_result", + "data": { + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + }, + "text/plain": [ + "'Média: 100.18633633362035; Mediana: 99.33695311387913; STD: 10.028092450008492'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 55 + } + ] }, { "cell_type": "markdown", @@ -4353,7 +3215,12 @@ { "cell_type": "code", "metadata": { - "id": "U993i1GJg2hk" + "id": "U993i1GJg2hk", + "outputId": "4f8185a8-327a-4502-8998-c81cfd28cc20", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 269 + } }, "source": [ "# Import a biblioteca seaborn:\n", @@ -4361,7 +3228,33 @@ "sns.boxplot(y = a_numeros1_copia)" ], "execution_count": null, - "outputs": [] + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 57 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] }, { "cell_type": "markdown", @@ -4760,31 +3653,13 @@ { "cell_type": "code", "metadata": { - "id": "Tqd_9XO5p7bo", - "outputId": "40a41655-0920-4369-c9d6-ae7e3f471edc", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } + "id": "Tqd_9XO5p7bo" }, "source": [ "np.setxor1d(a_numeros1, a_numeros2)" ], "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "array([0, 2, 3, 5, 8])" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 2 - } - ] + "outputs": [] }, { "cell_type": "markdown", From d6b06113eabf930fde3773472ad6a63c1c1c5a1a Mon Sep 17 00:00:00 2001 From: Hayltons <65053778+Hayltons@users.noreply.github.com> Date: Mon, 5 Oct 2020 18:28:47 -0300 Subject: [PATCH 07/10] Criado usando o Colaboratory --- Notebooks/NB02__Numpy_hs.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Notebooks/NB02__Numpy_hs.ipynb b/Notebooks/NB02__Numpy_hs.ipynb index 959958a2a..e390345b9 100644 --- a/Notebooks/NB02__Numpy_hs.ipynb +++ b/Notebooks/NB02__Numpy_hs.ipynb @@ -3100,7 +3100,7 @@ "* Qual a média da distribuição que simulamos?\n", "* Qual o desvio-padrão;\n", "* Plotar o Boxplot da distribuição dos dados;\n", - "* Quantas pessoas > Q3 + 1.5*(Q3.Q1)\n", + "* Quantas pessoas > Q3 + 1.5*(Q3-Q1)\n", "\n", "Obs.: Use np.random.seed(20111974)." ] From 161843425f1eddffd9d1ac2d5b23b60fe4d28f9e Mon Sep 17 00:00:00 2001 From: Hayltons <65053778+Hayltons@users.noreply.github.com> Date: Sat, 13 Nov 2021 22:04:55 -0300 Subject: [PATCH 08/10] Criado usando o Colaboratory --- Retomada_NB01_01__Getting_Started.ipynb | 706 ++++++++++++++++++++++++ 1 file changed, 706 insertions(+) create mode 100644 Retomada_NB01_01__Getting_Started.ipynb diff --git a/Retomada_NB01_01__Getting_Started.ipynb b/Retomada_NB01_01__Getting_Started.ipynb new file mode 100644 index 000000000..87726cd99 --- /dev/null +++ b/Retomada_NB01_01__Getting_Started.ipynb @@ -0,0 +1,706 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Cópia de NB01_01__Getting_Started.ipynb", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "accelerator": "GPU" + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qFdz_KELivnU" + }, + "source": [ + "

INTRODUÇÃO AO PYTHON

\n", + "

Retomada Estudos nov-2021

" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Ap5LL_oIhXmI" + }, + "source": [ + "# **AGENDA**:\n", + "> Nesta sessão, vamos abordar os seguintes assuntos:\n", + "\n", + "* Comentários no Python;\n", + "* Regras gerais para nomes de variáveis no Python;\n", + "* Como descobrir as palavras reservadas do Python;\n", + "* Como deletar variáveis;\n", + "* Wrap Up;" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Xu5bZARihbPv" + }, + "source": [ + "___\n", + "# **REFERÊNCIAS**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qG0cPxziGcJj" + }, + "source": [ + "___\n", + "# **Comentários no Python**\n", + "> Basicamente, há duas formas de se fazer comentários e documentar seus codes no Python. Confira os exemplos a seguir:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "K1mmf41HG1cu" + }, + "source": [ + "## Exemplo 1 - Comentários com o símbolo padrão \"#\"" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "B56PtqQ4G2xq" + }, + "source": [ + "# Isso é um comentário para o Python." + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vLyc-A93G_6G" + }, + "source": [ + "## Exemplo 2" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "1y8BBOxoG-sd" + }, + "source": [ + "print('Olá parceiros do curso de Python para Machine Learning') # A partir daqui, o Python considera tudo como comentários." + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "PHqYXcK4HQkK" + }, + "source": [ + "## Exemplo 3a - Comentários em múltiplas linhas usando docstring \n", + "> Docstring são três apóstrofos sequenciais. Acompanhe o exemplo a seguir:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "2FxBPFZGGDLs" + }, + "source": [ + "'''\n", + "Tudo que eu escrever entre esses apóstrofos são comentários para o Python.\n", + "\n", + "Bla bla bla\n", + "Bla bla bla\n", + "Bla bla\n", + "...\n", + "Bla bla bla\n", + "\n", + "Chega de comentários\n", + "'''" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7S1TJR_roLnY" + }, + "source": [ + "## Exemplo 3b - Docstring para documentar funções" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gvUbWOf_oT7a" + }, + "source": [ + "def OlaMundo():\n", + " '''\n", + " Objetivo: Esta função tem por objetivo imprimir/mostrar a frase \"Olá mundo!!!\".\n", + " Input: nenhum\n", + " Output: frase \"Olá mundo!!!\"\n", + " '''\n", + " print('Olá mundo!!!')" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "a-urq9YFonpX" + }, + "source": [ + "OlaMundo()" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_TPdDJjxo7Vs" + }, + "source": [ + "Quando eu quiser ler o docString de uma função, use:\n", + "```\n", + "nome_da_funcao.__doc__.\n", + "```" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "acOWubUaozEe" + }, + "source": [ + "OlaMundo.__doc__" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kpNXncpbKdg1" + }, + "source": [ + "## Exemplo 4 - Comentários em múltiplas linhas usando o símbolo padrão \"#\"" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "DhIy_LnHHR1v" + }, + "source": [ + "# Primeira linha de comentários\n", + "# Segunda linha de comentários\n", + "# ...\n", + "# Última linha de comentários" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MM3jZ47z7Qyl" + }, + "source": [ + "___\n", + "# **Regras gerais para nomes de variáveis no Python**\n", + "* As variáveis no Python devem começar com letras (A-Z/a-z) ou underscore(_)\n", + "* As variáveis Python não devem conter símbolos especiais como, por exemplo, !, @, #, $, %, .\n", + "* Palavras reservadas do Python não podem ser usadas como nomes de variáveis;\n", + "* **Observação**: Python é case-sensitive. Portanto, a variável \"nome\" e \"Nome\" são variáveis distintas." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "BViYCn1AVahs" + }, + "source": [ + "# Case-sensitive: Diferentes resultados, supostamente a mesma variável.\n", + "nome = \"Alex\"\n", + "Nome = \"Bernardo\"\n", + "\n", + "print(nome)\n", + "print(Nome)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1FPJOv0ZWkgB" + }, + "source": [ + "___\n", + "# [PEP - Style Guide for Python Code](https://www.python.org/dev/peps/pep-0008/)\n", + "> Guia ou melhores práticas para se escrever códigos mais claros em Python. Em outras palavras, é uma forma de (tentar) padronizar a forma de se escrever Python codes.\n", + ">> Eu recomendo fortemente a investirem um tempo a ler este guia.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "WncC-2EhM_FX" + }, + "source": [ + "## Convenção (particular) para nomes de variáveis no Python --> Convenção adotada pelo Nelio\n", + "> A convenção a seguir identifica o tipo de variável pelo seu prefixo, conforme podemos acompanhar abaixo:\n", + "\n", + "| Prefixo da Variável | Tipo da variável | Exemplo |\n", + "|---------------------|------------------|---------|\n", + "| s_ | String | s_nome= \"Isto é uma string\" |\n", + "| set_ | Set | set_dias_da_semana= {'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab', 'Dom'} |\n", + "| t_ | Tupla | t_vogais= ('a', 'e', 'i', 'o', 'u') |\n", + "| d_ | Dicionário | d_meses_do_ano= {'Jan': 1, 'Fev': 2, ..., 'Dez': 12} |\n", + "| i_ | Inteiro | i_idade= 44 |\n", + "| f_ | Float | f_valor= 44.5 |\n", + "| l_ | Lista | l_nomes= ['Joao', 'Alfredo', ..., 'Manoel'] |\n", + "| a_ | Array | Array, vetor, matriz |\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "JsOrzfuK7thV" + }, + "source": [ + "## Exemplo 1: variáveis e estrutura usando PEP8\n", + "\n", + "Que tal a documentação do código abaixo?\n", + "\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "xbxl9YO27ysk" + }, + "source": [ + "x = 'Pedro Alvares Cabral'\n", + "a, b, c = x.split()\n", + "print(a)\n", + "print(b)\n", + "print(c)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "nM5RQzKI8ShN" + }, + "source": [ + "Que tal esta versão?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "mTC6Or-S8U6H" + }, + "source": [ + "s_descobridor_Brasil = 'Pedro Alvares Cabral'\n", + "s_primeiro_nome, s_segundo_nome, s_terceiro_nome = s_descobridor_Brasil.split()\n", + "print(s_primeiro_nome)\n", + "print(s_segundo_nome)\n", + "print(s_terceiro_nome)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "a0wh9yYxDRsy" + }, + "source": [ + "#### Qual versão é mais fácil de ler e entender?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "uDyQbftjDLRb" + }, + "source": [ + "## Exemplo 2: variáveis e estrutura usando PEP8" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "pKnL_50cDNVt" + }, + "source": [ + "def s(a, b):\n", + " return a+b" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "IPFKf9PNDcc7" + }, + "source": [ + "z= s(5, 6)\n", + "print(z)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "T875m9_8DjFA" + }, + "source": [ + "Que tal a versão a seguir?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "eD9mjemdDkvG" + }, + "source": [ + "def soma(i_numero1, i_numero2):\n", + " return (i_numero1+i_numero2)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "OXb0iZVPDx5Y" + }, + "source": [ + "i_soma = soma(5, 6)\n", + "print(i_soma)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3o9_mZ73EGgc" + }, + "source": [ + "## Classes e funções\n", + "* Coloque 2 linhas em branco depois da definição das classes e métodos;\n", + "* Coloque 1 linha em branco depois da definição das funções.\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Xk_o3ga1Eng8" + }, + "source": [ + "class MinhaClasse1:\n", + " def minha_funcao1(self):\n", + " return None\n", + "\n", + " def minha_funcao2(self):\n", + " return None\n", + "\n", + "\n", + "class MinhaClasse2:\n", + " pass\n", + "\n", + "\n", + "class MinhaClasse3:\n", + " pass" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MGfE6lc4MTP0" + }, + "source": [ + "## Palavras reservadas do Python" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QtWLaT0l8LbO" + }, + "source": [ + "Como verificar se um determinado nome de variável é uma palavra reservada do Python?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-GIb1gXA9J5T" + }, + "source": [ + "import keyword" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Zs5PI50jnM2y" + }, + "source": [ + "Vamos verificar se 'return' é uma palavra reservada do Python:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "wfkA9LIwx5Xh" + }, + "source": [ + "keyword.iskeyword('return')" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tP2UQbU39q48" + }, + "source": [ + "E 'flag'? É uma palavra reservada do Python?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "sk33aEjP9s61", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "0f3d9297-4ca7-448a-cb3f-d3fe9a119b15" + }, + "source": [ + "keyword.iskeyword('flag')" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "False" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 3 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Jn86gWSQ90xi" + }, + "source": [ + "E 'lambda'? É uma palavra reservada do Python?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "fSR9X1dI93ed", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "b5f7ff58-998c-4dba-81ef-bc699337dd4d" + }, + "source": [ + "keyword.iskeyword('lambda')" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "True" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 4 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8LS69KLH9_NI" + }, + "source": [ + "E 'global'? é uma palavra reservada do Python?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "UDYDPDeG9_q_", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "5d11a2cd-7273-4581-e7a7-4a3e95ff61ae" + }, + "source": [ + "keyword.iskeyword('global')" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "True" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 5 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "nsQgPP2B-463" + }, + "source": [ + "___\n", + "# **Deletar variáveis**\n", + "* del var - Deleta a variável var." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "xAR0S3FPj2GD" + }, + "source": [ + "Suponha a variável definida abaixo:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "F9k7QkTF_AEv" + }, + "source": [ + "s_cor= 'vermelho'\n", + "i_idade= 45" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "5wx4RsCq_TkM" + }, + "source": [ + "s_cor" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "pZPm8CmN_XKW" + }, + "source": [ + "i_idade" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "5bYZFe9S_mJt" + }, + "source": [ + "del s_cor" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "-ncQWNIJz5pg" + }, + "source": [ + "s_cor" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "wp-UjGtZues4" + }, + "source": [ + "___\n", + "# **Wrap Up**\n", + "## Leitura recomendada:\n", + "* [How to Write Beautiful Python Code With PEP 8](https://realpython.com/python-pep8/)." + ] + } + ] +} \ No newline at end of file From 36ee327cf57efc977ca6b839f80045937e78d824 Mon Sep 17 00:00:00 2001 From: Hayltons <65053778+Hayltons@users.noreply.github.com> Date: Sat, 13 Nov 2021 22:06:07 -0300 Subject: [PATCH 09/10] Criado usando o Colaboratory From a7f75ba12e400b7c51869698b8c0c63563cecaa8 Mon Sep 17 00:00:00 2001 From: Hayltons <65053778+Hayltons@users.noreply.github.com> Date: Sat, 13 Nov 2021 22:16:11 -0300 Subject: [PATCH 10/10] Teste de Retomada nov-2021 --- ...\263pia_de_NB01_01__Getting_Started.ipynb" | 706 ++++++++++++++++++ 1 file changed, 706 insertions(+) create mode 100644 "Notebooks/C\303\263pia_de_NB01_01__Getting_Started.ipynb" diff --git "a/Notebooks/C\303\263pia_de_NB01_01__Getting_Started.ipynb" "b/Notebooks/C\303\263pia_de_NB01_01__Getting_Started.ipynb" new file mode 100644 index 000000000..2e7a1cff6 --- /dev/null +++ "b/Notebooks/C\303\263pia_de_NB01_01__Getting_Started.ipynb" @@ -0,0 +1,706 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Cópia de NB01_01__Getting_Started.ipynb", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "accelerator": "GPU" + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qFdz_KELivnU" + }, + "source": [ + "

INTRODUÇÃO AO PYTHON

\n", + "

Retomada Estudos nov-2021

" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Ap5LL_oIhXmI" + }, + "source": [ + "# **AGENDA**:\n", + "> Nesta sessão, vamos abordar os seguintes assuntos:\n", + "\n", + "* Comentários no Python;\n", + "* Regras gerais para nomes de variáveis no Python;\n", + "* Como descobrir as palavras reservadas do Python;\n", + "* Como deletar variáveis;\n", + "* Wrap Up;" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Xu5bZARihbPv" + }, + "source": [ + "___\n", + "# **REFERÊNCIAS**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qG0cPxziGcJj" + }, + "source": [ + "___\n", + "# **Comentários no Python**\n", + "> Basicamente, há duas formas de se fazer comentários e documentar seus codes no Python. Confira os exemplos a seguir:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "K1mmf41HG1cu" + }, + "source": [ + "## Exemplo 1 - Comentários com o símbolo padrão \"#\"" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "B56PtqQ4G2xq" + }, + "source": [ + "# Isso é um comentário para o Python." + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vLyc-A93G_6G" + }, + "source": [ + "## Exemplo 2" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "1y8BBOxoG-sd" + }, + "source": [ + "print('Olá parceiros do curso de Python para Machine Learning') # A partir daqui, o Python considera tudo como comentários." + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "PHqYXcK4HQkK" + }, + "source": [ + "## Exemplo 3a - Comentários em múltiplas linhas usando docstring \n", + "> Docstring são três apóstrofos sequenciais. Acompanhe o exemplo a seguir:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "2FxBPFZGGDLs" + }, + "source": [ + "'''\n", + "Tudo que eu escrever entre esses apóstrofos são comentários para o Python.\n", + "\n", + "Bla bla bla\n", + "Bla bla bla\n", + "Bla bla\n", + "...\n", + "Bla bla bla\n", + "\n", + "Chega de comentários\n", + "'''" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7S1TJR_roLnY" + }, + "source": [ + "## Exemplo 3b - Docstring para documentar funções" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gvUbWOf_oT7a" + }, + "source": [ + "def OlaMundo():\n", + " '''\n", + " Objetivo: Esta função tem por objetivo imprimir/mostrar a frase \"Olá mundo!!!\".\n", + " Input: nenhum\n", + " Output: frase \"Olá mundo!!!\"\n", + " '''\n", + " print('Olá mundo!!!')" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "a-urq9YFonpX" + }, + "source": [ + "OlaMundo()" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_TPdDJjxo7Vs" + }, + "source": [ + "Quando eu quiser ler o docString de uma função, use:\n", + "```\n", + "nome_da_funcao.__doc__.\n", + "```" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "acOWubUaozEe" + }, + "source": [ + "OlaMundo.__doc__" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kpNXncpbKdg1" + }, + "source": [ + "## Exemplo 4 - Comentários em múltiplas linhas usando o símbolo padrão \"#\"" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "DhIy_LnHHR1v" + }, + "source": [ + "# Primeira linha de comentários\n", + "# Segunda linha de comentários\n", + "# ...\n", + "# Última linha de comentários" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MM3jZ47z7Qyl" + }, + "source": [ + "___\n", + "# **Regras gerais para nomes de variáveis no Python**\n", + "* As variáveis no Python devem começar com letras (A-Z/a-z) ou underscore(_)\n", + "* As variáveis Python não devem conter símbolos especiais como, por exemplo, !, @, #, $, %, .\n", + "* Palavras reservadas do Python não podem ser usadas como nomes de variáveis;\n", + "* **Observação**: Python é case-sensitive. Portanto, a variável \"nome\" e \"Nome\" são variáveis distintas." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "BViYCn1AVahs" + }, + "source": [ + "# Case-sensitive: Diferentes resultados, supostamente a mesma variável.\n", + "nome = \"Alex\"\n", + "Nome = \"Bernardo\"\n", + "\n", + "print(nome)\n", + "print(Nome)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1FPJOv0ZWkgB" + }, + "source": [ + "___\n", + "# [PEP - Style Guide for Python Code](https://www.python.org/dev/peps/pep-0008/)\n", + "> Guia ou melhores práticas para se escrever códigos mais claros em Python. Em outras palavras, é uma forma de (tentar) padronizar a forma de se escrever Python codes.\n", + ">> Eu recomendo fortemente a investirem um tempo a ler este guia.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "WncC-2EhM_FX" + }, + "source": [ + "## Convenção (particular) para nomes de variáveis no Python --> Convenção adotada pelo Nelio\n", + "> A convenção a seguir identifica o tipo de variável pelo seu prefixo, conforme podemos acompanhar abaixo:\n", + "\n", + "| Prefixo da Variável | Tipo da variável | Exemplo |\n", + "|---------------------|------------------|---------|\n", + "| s_ | String | s_nome= \"Isto é uma string\" |\n", + "| set_ | Set | set_dias_da_semana= {'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab', 'Dom'} |\n", + "| t_ | Tupla | t_vogais= ('a', 'e', 'i', 'o', 'u') |\n", + "| d_ | Dicionário | d_meses_do_ano= {'Jan': 1, 'Fev': 2, ..., 'Dez': 12} |\n", + "| i_ | Inteiro | i_idade= 44 |\n", + "| f_ | Float | f_valor= 44.5 |\n", + "| l_ | Lista | l_nomes= ['Joao', 'Alfredo', ..., 'Manoel'] |\n", + "| a_ | Array | Array, vetor, matriz |\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "JsOrzfuK7thV" + }, + "source": [ + "## Exemplo 1: variáveis e estrutura usando PEP8\n", + "\n", + "Que tal a documentação do código abaixo?\n", + "\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "xbxl9YO27ysk" + }, + "source": [ + "x = 'Pedro Alvares Cabral'\n", + "a, b, c = x.split()\n", + "print(a)\n", + "print(b)\n", + "print(c)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "nM5RQzKI8ShN" + }, + "source": [ + "Que tal esta versão?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "mTC6Or-S8U6H" + }, + "source": [ + "s_descobridor_Brasil = 'Pedro Alvares Cabral'\n", + "s_primeiro_nome, s_segundo_nome, s_terceiro_nome = s_descobridor_Brasil.split()\n", + "print(s_primeiro_nome)\n", + "print(s_segundo_nome)\n", + "print(s_terceiro_nome)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "a0wh9yYxDRsy" + }, + "source": [ + "#### Qual versão é mais fácil de ler e entender?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "uDyQbftjDLRb" + }, + "source": [ + "## Exemplo 2: variáveis e estrutura usando PEP8" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "pKnL_50cDNVt" + }, + "source": [ + "def s(a, b):\n", + " return a+b" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "IPFKf9PNDcc7" + }, + "source": [ + "z= s(5, 6)\n", + "print(z)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "T875m9_8DjFA" + }, + "source": [ + "Que tal a versão a seguir?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "eD9mjemdDkvG" + }, + "source": [ + "def soma(i_numero1, i_numero2):\n", + " return (i_numero1+i_numero2)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "OXb0iZVPDx5Y" + }, + "source": [ + "i_soma = soma(5, 6)\n", + "print(i_soma)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3o9_mZ73EGgc" + }, + "source": [ + "## Classes e funções\n", + "* Coloque 2 linhas em branco depois da definição das classes e métodos;\n", + "* Coloque 1 linha em branco depois da definição das funções.\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Xk_o3ga1Eng8" + }, + "source": [ + "class MinhaClasse1:\n", + " def minha_funcao1(self):\n", + " return None\n", + "\n", + " def minha_funcao2(self):\n", + " return None\n", + "\n", + "\n", + "class MinhaClasse2:\n", + " pass\n", + "\n", + "\n", + "class MinhaClasse3:\n", + " pass" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MGfE6lc4MTP0" + }, + "source": [ + "## Palavras reservadas do Python" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QtWLaT0l8LbO" + }, + "source": [ + "Como verificar se um determinado nome de variável é uma palavra reservada do Python?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-GIb1gXA9J5T" + }, + "source": [ + "import keyword" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Zs5PI50jnM2y" + }, + "source": [ + "Vamos verificar se 'return' é uma palavra reservada do Python:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "wfkA9LIwx5Xh" + }, + "source": [ + "keyword.iskeyword('return')" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tP2UQbU39q48" + }, + "source": [ + "E 'flag'? É uma palavra reservada do Python?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "sk33aEjP9s61", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "0f3d9297-4ca7-448a-cb3f-d3fe9a119b15" + }, + "source": [ + "keyword.iskeyword('flag')" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "False" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 3 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Jn86gWSQ90xi" + }, + "source": [ + "E 'lambda'? É uma palavra reservada do Python?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "fSR9X1dI93ed", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "b5f7ff58-998c-4dba-81ef-bc699337dd4d" + }, + "source": [ + "keyword.iskeyword('lambda')" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "True" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 4 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8LS69KLH9_NI" + }, + "source": [ + "E 'global'? é uma palavra reservada do Python?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "UDYDPDeG9_q_", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "5d11a2cd-7273-4581-e7a7-4a3e95ff61ae" + }, + "source": [ + "keyword.iskeyword('global')" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "True" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 5 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "nsQgPP2B-463" + }, + "source": [ + "___\n", + "# **Deletar variáveis**\n", + "* del var - Deleta a variável var." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "xAR0S3FPj2GD" + }, + "source": [ + "Suponha a variável definida abaixo:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "F9k7QkTF_AEv" + }, + "source": [ + "s_cor= 'vermelho'\n", + "i_idade= 45" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "5wx4RsCq_TkM" + }, + "source": [ + "s_cor" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "pZPm8CmN_XKW" + }, + "source": [ + "i_idade" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "5bYZFe9S_mJt" + }, + "source": [ + "del s_cor" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "-ncQWNIJz5pg" + }, + "source": [ + "s_cor" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "wp-UjGtZues4" + }, + "source": [ + "___\n", + "# **Wrap Up**\n", + "## Leitura recomendada:\n", + "* [How to Write Beautiful Python Code With PEP 8](https://realpython.com/python-pep8/)." + ] + } + ] +} \ No newline at end of file