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": [
+ "
"
+ ]
+ },
+ {
+ "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
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": [
+ "
"
+ ]
+ },
+ {
+ "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",
+ " survived | \n",
+ " pclass | \n",
+ " name | \n",
+ " sex | \n",
+ " age | \n",
+ " sibsp | \n",
+ " parch | \n",
+ " ticket | \n",
+ " fare | \n",
+ " cabin | \n",
+ " embarked | \n",
+ "
\n",
+ " \n",
+ " | PassengerId | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Braund, Mr. Owen Harris | \n",
+ " male | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " A/5 21171 | \n",
+ " 7.2500 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
+ " female | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " PC 17599 | \n",
+ " 71.2833 | \n",
+ " C85 | \n",
+ " C | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1.0 | \n",
+ " 3 | \n",
+ " Heikkinen, Miss. Laina | \n",
+ " female | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " STON/O2. 3101282 | \n",
+ " 7.9250 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
+ " female | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 113803 | \n",
+ " 53.1000 | \n",
+ " C123 | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Allen, Mr. William Henry | \n",
+ " male | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 373450 | \n",
+ " 8.0500 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " survived | \n",
+ " pclass | \n",
+ " name | \n",
+ " sex | \n",
+ " age | \n",
+ " sibsp | \n",
+ " parch | \n",
+ " fare | \n",
+ " cabin | \n",
+ " embarked | \n",
+ "
\n",
+ " \n",
+ " | PassengerId | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Braund, Mr. Owen Harris | \n",
+ " male | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.2500 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
+ " female | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 71.2833 | \n",
+ " C85 | \n",
+ " C | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1.0 | \n",
+ " 3 | \n",
+ " Heikkinen, Miss. Laina | \n",
+ " female | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 7.9250 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
+ " female | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 53.1000 | \n",
+ " C123 | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Allen, Mr. William Henry | \n",
+ " male | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0500 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " survived | \n",
+ " pclass | \n",
+ " name | \n",
+ " sex | \n",
+ " age | \n",
+ " sibsp | \n",
+ " parch | \n",
+ " fare | \n",
+ " cabin | \n",
+ " embarked | \n",
+ " survived2 | \n",
+ "
\n",
+ " \n",
+ " | PassengerId | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Braund, Mr. Owen Harris | \n",
+ " male | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.2500 | \n",
+ " NaN | \n",
+ " S | \n",
+ " Died | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
+ " female | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 71.2833 | \n",
+ " C85 | \n",
+ " C | \n",
+ " Survived | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1.0 | \n",
+ " 3 | \n",
+ " Heikkinen, Miss. Laina | \n",
+ " female | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 7.9250 | \n",
+ " NaN | \n",
+ " S | \n",
+ " Survived | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
+ " female | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 53.1000 | \n",
+ " C123 | \n",
+ " S | \n",
+ " Survived | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Allen, Mr. William Henry | \n",
+ " male | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0500 | \n",
+ " NaN | \n",
+ " S | \n",
+ " Died | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " survived | \n",
+ " pclass | \n",
+ " name | \n",
+ " age | \n",
+ " sibsp | \n",
+ " parch | \n",
+ " fare | \n",
+ " cabin | \n",
+ " embarked | \n",
+ " survived2 | \n",
+ " sex | \n",
+ "
\n",
+ " \n",
+ " | PassengerId | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Braund, Mr. Owen Harris | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.2500 | \n",
+ " NaN | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 71.2833 | \n",
+ " C85 | \n",
+ " C | \n",
+ " Survived | \n",
+ " female | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1.0 | \n",
+ " 3 | \n",
+ " Heikkinen, Miss. Laina | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 7.9250 | \n",
+ " NaN | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 53.1000 | \n",
+ " C123 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Allen, Mr. William Henry | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0500 | \n",
+ " NaN | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " 0 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " | PassengerId | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " C85 | \n",
+ " None | \n",
+ " None | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " C123 | \n",
+ " None | \n",
+ " None | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | PassengerId | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 85 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 123 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " survived | \n",
+ " pclass | \n",
+ " name | \n",
+ " age | \n",
+ " sibsp | \n",
+ " parch | \n",
+ " fare | \n",
+ " cabin | \n",
+ " embarked | \n",
+ " survived2 | \n",
+ " sex | \n",
+ " deck | \n",
+ " seat | \n",
+ "
\n",
+ " \n",
+ " | PassengerId | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Braund, Mr. Owen Harris | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.2500 | \n",
+ " NaN | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 71.2833 | \n",
+ " C85 | \n",
+ " C | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 85 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1.0 | \n",
+ " 3 | \n",
+ " Heikkinen, Miss. Laina | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 7.9250 | \n",
+ " NaN | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 53.1000 | \n",
+ " C123 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 123 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Allen, Mr. William Henry | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0500 | \n",
+ " NaN | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " survived | \n",
+ " pclass | \n",
+ " name | \n",
+ " age | \n",
+ " sibsp | \n",
+ " parch | \n",
+ " fare | \n",
+ " embarked | \n",
+ " survived2 | \n",
+ " sex | \n",
+ " deck | \n",
+ " seat | \n",
+ " sozinho_parch | \n",
+ "
\n",
+ " \n",
+ " | PassengerId | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Braund, Mr. Owen Harris | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.2500 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 71.2833 | \n",
+ " C | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 85 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1.0 | \n",
+ " 3 | \n",
+ " Heikkinen, Miss. Laina | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 7.9250 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 53.1000 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 123 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Allen, Mr. William Henry | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0500 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " survived | \n",
+ " pclass | \n",
+ " name | \n",
+ " age | \n",
+ " sibsp | \n",
+ " parch | \n",
+ " fare | \n",
+ " embarked | \n",
+ " survived2 | \n",
+ " sex | \n",
+ " deck | \n",
+ " seat | \n",
+ " sozinho_parch | \n",
+ " sozinho_sibsp | \n",
+ "
\n",
+ " \n",
+ " | PassengerId | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Braund, Mr. Owen Harris | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.2500 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 71.2833 | \n",
+ " C | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 85 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1.0 | \n",
+ " 3 | \n",
+ " Heikkinen, Miss. Laina | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 7.9250 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 53.1000 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 123 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Allen, Mr. William Henry | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0500 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " survived | \n",
+ " pclass | \n",
+ " name | \n",
+ " age | \n",
+ " sibsp | \n",
+ " parch | \n",
+ " fare | \n",
+ " embarked | \n",
+ " survived2 | \n",
+ " sex | \n",
+ " deck | \n",
+ " seat | \n",
+ " sozinho_parch | \n",
+ " sozinho_sibsp | \n",
+ "
\n",
+ " \n",
+ " | PassengerId | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Braund, Mr. Owen Harris | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.0 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 71.0 | \n",
+ " C | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 85 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1.0 | \n",
+ " 3 | \n",
+ " Heikkinen, Miss. Laina | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 53.0 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 123 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Allen, Mr. William Henry | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " survived | \n",
+ " pclass | \n",
+ " name | \n",
+ " age | \n",
+ " sibsp | \n",
+ " parch | \n",
+ " fare | \n",
+ " embarked | \n",
+ " survived2 | \n",
+ " sex | \n",
+ " deck | \n",
+ " seat | \n",
+ " sozinho_parch | \n",
+ " sozinho_sibsp | \n",
+ " mv_aux | \n",
+ "
\n",
+ " \n",
+ " | PassengerId | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Braund, Mr. Owen Harris | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.0 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 71.0 | \n",
+ " C | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 85 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1.0 | \n",
+ " 3 | \n",
+ " Heikkinen, Miss. Laina | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 53.0 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 123 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Allen, Mr. William Henry | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " survived | \n",
+ " pclass | \n",
+ " name | \n",
+ " age | \n",
+ " sibsp | \n",
+ " parch | \n",
+ " fare | \n",
+ " embarked | \n",
+ " survived2 | \n",
+ " sex | \n",
+ " deck | \n",
+ " seat | \n",
+ " sozinho_parch | \n",
+ " sozinho_sibsp | \n",
+ " mv_aux | \n",
+ " mv_age | \n",
+ "
\n",
+ " \n",
+ " | PassengerId | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Braund, Mr. Owen Harris | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.0 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " False | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 71.0 | \n",
+ " C | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 85 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " False | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1.0 | \n",
+ " 3 | \n",
+ " Heikkinen, Miss. Laina | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " False | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 53.0 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 123 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " False | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Allen, Mr. William Henry | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " False | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " survived | \n",
+ " pclass | \n",
+ " name | \n",
+ " age | \n",
+ " sibsp | \n",
+ " parch | \n",
+ " fare | \n",
+ " embarked | \n",
+ " survived2 | \n",
+ " sex | \n",
+ " deck | \n",
+ " seat | \n",
+ " sozinho_parch | \n",
+ " sozinho_sibsp | \n",
+ " mv_age | \n",
+ "
\n",
+ " \n",
+ " | PassengerId | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Braund, Mr. Owen Harris | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.0 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 71.0 | \n",
+ " C | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 85 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1.0 | \n",
+ " 3 | \n",
+ " Heikkinen, Miss. Laina | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 53.0 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 123 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Allen, Mr. William Henry | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " survived | \n",
+ " pclass | \n",
+ " name | \n",
+ " age | \n",
+ " sibsp | \n",
+ " parch | \n",
+ " fare | \n",
+ " embarked | \n",
+ " survived2 | \n",
+ " sex | \n",
+ " deck | \n",
+ " seat | \n",
+ " sozinho_parch | \n",
+ " sozinho_sibsp | \n",
+ " mv_age | \n",
+ " age_category | \n",
+ "
\n",
+ " \n",
+ " | PassengerId | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Braund, Mr. Owen Harris | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.0 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 71.0 | \n",
+ " C | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 85 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1.0 | \n",
+ " 3 | \n",
+ " Heikkinen, Miss. Laina | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 53.0 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 123 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Allen, Mr. William Henry | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " survived | \n",
+ " pclass | \n",
+ " age | \n",
+ " sibsp | \n",
+ " parch | \n",
+ " fare | \n",
+ " embarked | \n",
+ " survived2 | \n",
+ " sex | \n",
+ " deck | \n",
+ " seat | \n",
+ " sozinho_parch | \n",
+ " sozinho_sibsp | \n",
+ " mv_age | \n",
+ " age_category | \n",
+ " title | \n",
+ "
\n",
+ " \n",
+ " | PassengerId | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.0 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 71.0 | \n",
+ " C | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 85 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 9 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1.0 | \n",
+ " 3 | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 53.0 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 123 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 9 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 9 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " NaN | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0 | \n",
+ " Q | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 15 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " 0.0 | \n",
+ " 1 | \n",
+ " 54.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 52.0 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " E | \n",
+ " 46 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 12 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " 2.0 | \n",
+ " 3 | \n",
+ " 1 | \n",
+ " 21.0 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " 1.0 | \n",
+ " 3 | \n",
+ " 27.0 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 11.0 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 10 | \n",
+ " 1.0 | \n",
+ " 2 | \n",
+ " 14.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 30.0 | \n",
+ " C | \n",
+ " Survived | \n",
+ " female | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " survived | \n",
+ " pclass | \n",
+ " age | \n",
+ " sibsp | \n",
+ " parch | \n",
+ " fare | \n",
+ " embarked | \n",
+ " survived2 | \n",
+ " sex | \n",
+ " deck | \n",
+ " seat | \n",
+ " sozinho_parch | \n",
+ " sozinho_sibsp | \n",
+ " mv_age | \n",
+ " age_category | \n",
+ " title | \n",
+ " family_size | \n",
+ "
\n",
+ " \n",
+ " | PassengerId | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.0 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 71.0 | \n",
+ " C | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 85 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 9 | \n",
+ " 4 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1.0 | \n",
+ " 3 | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1.0 | \n",
+ " 1 | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 53.0 | \n",
+ " S | \n",
+ " Survived | \n",
+ " female | \n",
+ " C | \n",
+ " 123 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 9 | \n",
+ " 4 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0 | \n",
+ " S | \n",
+ " Died | \n",
+ " male | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 9 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ "
\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
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": [
+ "
"
+ ]
+ },
+ {
+ "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
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": [
+ "
"
+ ]
+ },
+ {
+ "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
diff --git a/Notebooks/NB02__Numpy_hs.ipynb b/Notebooks/NB02__Numpy_hs.ipynb
new file mode 100644
index 000000000..e390345b9
--- /dev/null
+++ b/Notebooks/NB02__Numpy_hs.ipynb
@@ -0,0 +1,4746 @@
+{
+ "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": [
+ "
"
+ ]
+ },
+ {
+ "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": [
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "0mKvExmgUFOk"
+ },
+ "source": [
+ "# **ESCALAR, VETORES, MATRIZES E TENSORES**\n",
+ "\n",
+ "\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"
+ },
+ "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": []
+ },
+ {
+ "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"
+ },
+ "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": []
+ },
+ {
+ "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"
+ },
+ "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": []
+ },
+ {
+ "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"
+ },
+ "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",
+ "\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": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "wa2t0P3nevTh"
+ },
+ "source": [
+ "Conferindo a média e desvio-padrão do array gerado:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "drUyk3f5ekDq"
+ },
+ "source": [
+ "f'Distribuição N({np.mean(a_numeros1)}, {np.std(a_numeros1)})'"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "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"
+ },
+ "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",
+ "l_lista_numeros = [10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000]\n",
+ "\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": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "bp-YuviQwWqE"
+ },
+ "source": [
+ "Com relação à Distribuição Normal($\\mu, \\sigma$), temos que:\n",
+ "\n",
+ "\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"
+ },
+ "source": [
+ "# Define seed\n",
+ "import numpy as np\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": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "m8Of2MMIrbF3"
+ },
+ "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": []
+ },
+ {
+ "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"
+ },
+ "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": []
+ },
+ {
+ "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": [
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "grtEXG2BoNRt"
+ },
+ "source": [
+ "Considere o array de retornos (simulados) a seguir:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "DjPKKq01YjF9"
+ },
+ "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": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "ajjlfqgssLVO"
+ },
+ "source": [
+ "a_retornos"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "XZ3m06gv9lei"
+ },
+ "source": [
+ "A seguir, o boxplot do array a_retornos:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "QtuwJP449tBQ"
+ },
+ "source": [
+ "# 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": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "o9ujdjxNY6qE"
+ },
+ "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": []
+ },
+ {
+ "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[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": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "sWrnESPQT4JM"
+ },
+ "source": [
+ "# lim_inferior e lim_superior para detecção de outliers\n",
+ "lim_inferior = q1 - 1.5 * (q3 - q1)\n",
+ "lim_superior = q3 + 1.5 * (q3 - q1)"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "Yb4-ZJlUUYsi"
+ },
+ "source": [
+ "f'Limite Inferior: {lim_inferior}; Limite Superior: {lim_superior}'"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "Jr6oXIHlUxOe"
+ },
+ "source": [
+ "np.min(a_retornos)"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "UxE47cN0U54X"
+ },
+ "source": [
+ "np.max(a_retornos)"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "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"
+ },
+ "source": [
+ "np.random.seed(20111974)\n",
+ "a_numeros1 = np.random.random(10)\n",
+ "a_numeros1"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "cC9272GFdRln"
+ },
+ "source": [
+ "Ordenando os itens de a_numeros1..."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "YUP90nBVdUeF"
+ },
+ "source": [
+ "np.sort(a_numeros1)"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "lG763cDGj-yB"
+ },
+ "source": [
+ "___\n",
+ "# **Obter ajuda**"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "ehxPlD3EkEYL"
+ },
+ "source": [
+ "help(np.random.normal)"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "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"
+ },
+ "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": "DyfXbW_ZKJBS"
+ },
+ "source": [
+ "Qual a dimensão de a_numeros1?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "gbHlydALKB3R"
+ },
+ "source": [
+ "# Dimensão do array\n",
+ "a_numeros1.ndim"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "am9otElpKNPa"
+ },
+ "source": [
+ "Qual o shape (dimensão) do array a_numeros1?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "juJJ74d2wale"
+ },
+ "source": [
+ "# Números de itens no array\n",
+ "a_numeros1.shape"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "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"
+ },
+ "source": [
+ "a_numeros1"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "lUNlFVKYYT9f"
+ },
+ "source": [
+ "a_numeros2"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "Xo8Lid5fYVPW"
+ },
+ "source": [
+ "a_numeros3"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "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",
+ "\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"
+ },
+ "source": [
+ "a_numeros1"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "arROkhWXbdTW"
+ },
+ "source": [
+ "a_numeros2 = a_numeros1 + 2\n",
+ "a_numeros2"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "ZJx2vG86vdVi"
+ },
+ "source": [
+ "Multiplicar por 10 cada item de a_numeros1:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "Vm7abO6Ebkun"
+ },
+ "source": [
+ "a_numeros1 = a_numeros1*10\n",
+ "a_numeros1"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "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"
+ },
+ "source": [
+ "np.random.seed(20111974)\n",
+ "a_numeros1 = np.random.randn(2, 3)\n",
+ "a_numeros1"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "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"
+ },
+ "source": [
+ "a_numeros1.shape"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "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"
+ },
+ "source": [
+ "a_numeros2 = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])\n",
+ "a_numeros2"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "we6ZJOICc7bQ"
+ },
+ "source": [
+ "# Número de linhas e colunas de a_numeros1:\n",
+ "a_numeros1.shape"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "f0ocwuI1dED6"
+ },
+ "source": [
+ "# Número de linhas e colunas de a_numeros2\n",
+ "a_numeros2.shape"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "CApPtnW0YuRP"
+ },
+ "source": [
+ "# Somar 2 à cada elemento de a_numeros2\n",
+ "a_numeros2 = a_numeros2+2\n",
+ "a_numeros2"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "M87aGmxRY3RW"
+ },
+ "source": [
+ "# Multiplicar por 10 cada elemento de a_numeros2\n",
+ "a_numeros2 = a_numeros2*10\n",
+ "a_numeros2"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "qZt93y1IL_v7"
+ },
+ "source": [
+ "___\n",
+ "# **Copiar arrays**\n",
+ "> Considere o array abaixo:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "sH2FTXj5MRRC"
+ },
+ "source": [
+ "np.random.seed(20111974)\n",
+ "a_numeros1 = np.random.randn(2, 3)\n",
+ "a_numeros1"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "VtgKeMt6MYrr"
+ },
+ "source": [
+ "Fazendo a cópia de a_numeros1..."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "K0hOHR3IMa-o"
+ },
+ "source": [
+ "a_numeros1_copia = a_numeros1.copy()\n",
+ "a_numeros1_copia"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "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"
+ },
+ "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": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "VrjNKfXxk1yv"
+ },
+ "source": [
+ "type(a_temperatura_farenheit)"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "o1STejhrk0kZ"
+ },
+ "source": [
+ "Transformando a temperatura Fahrenheit em Celsius..."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "E_jXflR_lNy3"
+ },
+ "source": [
+ "a_temperatura_celsius = 5*a_temperatura_farenheit/9 - 5*32/9\n",
+ "a_temperatura_celsius"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "U4pCv0pNqPZI"
+ },
+ "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": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "1UT4YD2FawUA"
+ },
+ "source": [
+ "___\n",
+ "# **Selecionar itens**"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "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": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "TIwVKk6AyRv6"
+ },
+ "source": [
+ "Dado a_numeros2 abaixo:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "zoDmbXo6bCeu"
+ },
+ "source": [
+ "a_numeros2"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "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"
+ },
+ "source": [
+ "a_numeros2[1, 2]"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "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": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "ezTH0HsyrnAl"
+ },
+ "source": [
+ "Veja..."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "OBv9EM54rYX3"
+ },
+ "source": [
+ "a_numeros1"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "Po3WLFC-rod8"
+ },
+ "source": [
+ "a_temperatura_celsius[-1]"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "4qJJ2HCedW4h"
+ },
+ "source": [
+ "___\n",
+ "# **Aplicar funções como max(), min() e etc**"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "_meTJdUsda4e"
+ },
+ "source": [
+ "f'O máximo de a_numeros1 é: {np.max(a_numeros1)}'"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "m-wiBkAidnhN"
+ },
+ "source": [
+ "f'O mínimo de a_numeros1 é: {np.min(a_numeros1)}'"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "lmupnRHQdtwh"
+ },
+ "source": [
+ "f'O máximo de a_numeros2 é: {np.max(a_numeros2)}'"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "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": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "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": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "7_tEfm2IecIU"
+ },
+ "source": [
+ "___\n",
+ "# **Calcular Estatísticas Descritivas: média e variância**"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "lIY5jx3ueh7q"
+ },
+ "source": [
+ "f'A média de a_numeros1 é: {np.mean(a_numeros1)}'"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "VmqSELRReuAW"
+ },
+ "source": [
+ "f'A média de a_numeros2 é: {np.mean(a_numeros2)}'"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "Gxap-Wg5e2_H"
+ },
+ "source": [
+ "f'O Desvio Padrão de a_numeros2 é: {np.std(a_numeros2)}'"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "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"
+ },
+ "source": [
+ "a_numeros2"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "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": []
+ },
+ {
+ "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": "eadedfd5-fd6c-49c8-db5c-6f8f30d45f36",
+ "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": 19
+ }
+ ]
+ },
+ {
+ "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": "d51c7263-f523-4af8-9606-ee93cab66f1c",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 162
+ }
+ },
+ "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_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)"
+ ]
+ }
+ ]
+ },
+ {
+ "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": "e8c8a90f-c34a-4304-d9b4-fd7f04ce224f",
+ "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": 21
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "iUhth0QV8Rpt"
+ },
+ "source": [
+ "Reshapping..."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "9D1y7uD88Qip",
+ "outputId": "e7d22bcd-c10f-4ea3-e41b-03f6f98a054f",
+ "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": 22
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "ALh-sq7DMnN5",
+ "outputId": "db373349-7910-4f1f-93f3-8ac8f67da8b8",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 151
+ }
+ },
+ "source": [
+ "# OU --> Neste caso, estamos reshaping o array em 8 linhas e 2 colunas\n",
+ "a_numeros1.reshape(8, -1)"
+ ],
+ "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": 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": {
+ "id": "Cvce8qBl9Cvq"
+ },
+ "source": [
+ "Queremos agora transformá-la num array de 3 linhas e 2 colunas."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "QDDsYoVt9Klz"
+ },
+ "source": [
+ "a_numeros1.reshape(-1, 2)"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "AdwU5ygt9Svq"
+ },
+ "source": [
+ "Poderia ser..."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "5uBeokKc9Uo-"
+ },
+ "source": [
+ "a_numeros1.reshape(3, -1)"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "OeRBsobc9aKj"
+ },
+ "source": [
+ "E por fim, também poderia ser..."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "MDt8UYYH9dBw"
+ },
+ "source": [
+ "a_numeros1.reshape(3, 2)"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "91o5vycQfdKW"
+ },
+ "source": [
+ "___\n",
+ "# **Transposta**\n",
+ "* O array a_numeros2 tem a seguinte forma:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "RsZwyuhoffjb"
+ },
+ "source": [
+ "a_numeros2"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "A3MzTVoGfiyO"
+ },
+ "source": [
+ "# Transposta do array a_numeros2 é dado por:\n",
+ "a_numeros2.T"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "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"
+ },
+ "source": [
+ "a_numeros1"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "3fHKyhOJvcak"
+ },
+ "source": [
+ "a_numeros2"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "vQG7yyfjwLg9"
+ },
+ "source": [
+ "a_numeros3"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "qa2Yre2rwgRk"
+ },
+ "source": [
+ "## Determinantes da matriz quadrada"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "N6jwuC6twkyc"
+ },
+ "source": [
+ "np.linalg.det(a_numeros1)"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "QSvViNwzwnhI"
+ },
+ "source": [
+ "np.linalg.det(a_numeros2)"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "o8jwsnccw5id"
+ },
+ "source": [
+ "np.linalg.det(a_numeros3)"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "kkVaTgzgw_XJ"
+ },
+ "source": [
+ "A seguir, calculamos as inversas das matrizes acima definidas..."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "b9FgWvTYvpik"
+ },
+ "source": [
+ "np.linalg.inv(a_numeros2)"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "KsdEt1kIvsM_"
+ },
+ "source": [
+ "np.linalg.inv(a_numeros1)"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "VA_F7_7kccpn"
+ },
+ "source": [
+ "Porque não temos a inversa de a_numeros1?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "ANPBCnmVwOf4"
+ },
+ "source": [
+ "np.linalg.inv(a_numeros3)"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "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"
+ },
+ "source": [
+ "A= np.array([[1, 3, 5], [2, 5, 1], [2, 3, 8]])\n",
+ "np.linalg.inv(A)"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "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",
+ "\n",
+ "\n",
+ "## Exemplo 2\n",
+ "\n",
+ "\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(5, 8)\n",
+ "\n",
+ "np.random.seed(19741120)\n",
+ "a_numeros2 = np.random.randn(8, 8)"
+ ],
+ "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": "c40e7ed9-255b-4886-dddf-3b17f2b1be2f",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 187
+ }
+ },
+ "source": [
+ "a_numeros1"
+ ],
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "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": 33
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "2aQY_klZOeg9",
+ "outputId": "14eb3d9c-d0fc-4b6a-fe19-1790695c838f",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 289
+ }
+ },
+ "source": [
+ "a_numeros2"
+ ],
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "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": 34
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "bK70vaq8_KMH",
+ "outputId": "f6d400cf-4b54-4990-815b-052f5224aadd",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 459
+ }
+ },
+ "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, 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": 35
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "CpaXBkm8_BF8"
+ },
+ "source": [
+ "## Método 2 - np.r_[A, B]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "3QnVUzAY_teZ",
+ "outputId": "e8adfd85-e760-40f5-d9ac-48353d24ccd2",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 459
+ }
+ },
+ "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, 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": 36
+ }
+ ]
+ },
+ {
+ "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": "d1ea4d86-2cc1-4e2d-af72-b3a292ef15fd",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 459
+ }
+ },
+ "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, 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": 37
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "68icJ-2ZAdRj"
+ },
+ "source": [
+ "# Concatenar arrays\n",
+ "\n",
+ "## Exemplo 1\n",
+ "\n",
+ "\n",
+ "\n",
+ "# Exemplo 2\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "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": "47727fe9-05f1-4ff7-ec0a-04579120cf78",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 187
+ }
+ },
+ "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": 39
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "9ZyUPfybTfej",
+ "outputId": "ac27a20e-1622-4cb9-d6f6-74ee467bdb72",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 187
+ }
+ },
+ "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": 40
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "nS1cPG3aRug1",
+ "outputId": "c70cf891-ae8f-445d-c271-c6b7f7da1738",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 187
+ }
+ },
+ "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": 41
+ }
+ ]
+ },
+ {
+ "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",
+ "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": [
+ {
+ "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",
+ "metadata": {
+ "id": "i9HuZZAfV302"
+ },
+ "source": [
+ "Selecionar somente os itens > 7:"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "ZCESvr7iXMkV"
+ },
+ "source": [
+ "## Usando np.where()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "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": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "(array([0, 1, 2]),)"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 44
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "EdWlfPOZWPME"
+ },
+ "source": [
+ "**Atenção**: Capturamos os índices. Para selecionar os itens, basta fazer:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "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": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "array([10, 9, 8])"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 46
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "PGsENqkaXRjh"
+ },
+ "source": [
+ "## Alternativa: Usando []"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "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": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "array([10, 9, 8])"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 47
+ }
+ ]
+ },
+ {
+ "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",
+ "outputId": "0a190896-249c-4d7c-ea0d-a20a53536446",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 51
+ }
+ },
+ "source": [
+ "a_numeros1 > 7"
+ ],
+ "execution_count": null,
+ "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",
+ "metadata": {
+ "id": "mvEof-UKaaVG"
+ },
+ "source": [
+ "a_numeros1[a_numeros1 > 7]"
+ ],
+ "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": {
+ "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",
+ "outputId": "82514805-b350-45c4-a3fc-7cb24c847b7f",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 34
+ }
+ },
+ "source": [
+ "a_numeros2 < 0"
+ ],
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "array([False, False, False])"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 50
+ }
+ ]
+ },
+ {
+ "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",
+ ""
+ ]
+ },
+ {
+ "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": [
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "z3VZdU8rICZA"
+ },
+ "source": [
+ "## Desafio\n",
+ "> Substituir os outliers do array por:\n",
+ "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"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "DUw_a-MjWvBc"
+ },
+ "source": [
+ "### 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",
+ "outputId": "1e5a0d7e-833c-4de5-aedc-56a4d836ea73",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 446
+ }
+ },
+ "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]\n",
+ "\n",
+ "a_numeros1_copia"
+ ],
+ "execution_count": null,
+ "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",
+ "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": [
+ {
+ "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",
+ "metadata": {
+ "id": "ILhNe80xW5C6"
+ },
+ "source": [
+ "### Solução do desafio"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "U993i1GJg2hk",
+ "outputId": "4f8185a8-327a-4502-8998-c81cfd28cc20",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 269
+ }
+ },
+ "source": [
+ "# Import a biblioteca seaborn:\n",
+ "import seaborn as sns\n",
+ "sns.boxplot(y = a_numeros1_copia)"
+ ],
+ "execution_count": null,
+ "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",
+ "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",
+ "\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",
+ "\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"
+ },
+ "source": [
+ "np.setxor1d(a_numeros1, a_numeros2)"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "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",
+ "\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",
+ "\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