Transcrições
1. Vídeo de introdução: Olá a todos e bem-vindos
ao meu último curso, Data Science com
pandas e Python. Então, quem sou eu e por que você
deveria me ouvir? Bem, meu nome é o
programador preguiçoso e sou autor de mais de 30
cursos on-line em ciência de dados, aprendizado de
máquina e análise
financeira. Tenho dois mestrados em engenharia e estatística. Minha carreira neste campo se
estende por mais de 15 anos. Trabalhei em várias
empresas que agora chamamos Big Tech e em várias startups. Usando a ciência de dados,
aumentei as receitas milhões de dólares
com as equipes que liderei. Mas o mais importante é
que eu sou muito
apaixonado por trazer essa tecnologia
fundamental para você. Então, sobre o que é esse curso? Este curso
trata de
ensinar habilidades básicas
usando a biblioteca pandas, que se tornou padrão
na última década para fazer Ciência de
Dados com Python, você aprenderá sobre
como carregar um conjunto de dados como um
dataframe e como
manipular DataFrames
de maneiras que são comumente necessárias na ciência de dados. Por exemplo, selecionar
linhas e colunas diferentes, aplicar funções a colunas inteiras e até mesmo como criar gráficos. Essas habilidades são essenciais
se você quiser fazer Ciência de
Dados com Python
no mundo real. Então, quem deve fazer esse curso e como você deve se preparar? Este curso foi desenvolvido
para estudantes
interessados em
ciência de dados e
aprendizado de máquina e já têm alguma experiência com bibliotecas de
computação numérica, como NumPy e Matplotlib. A segunda habilidade que você precisa
é de alguma programação básica. Qualquer linguagem é boa, mas como esse
curso usa Python, isso seria o ideal. Felizmente, o Python é uma linguagem muito
fácil de aprender. Você já conhece
outro idioma. Você não deve ter
problemas em se atualizar. Para esses dois tópicos. Um entendimento de nível médio
deve ser suficiente. Em uma graduação, o entendimento
seria ainda melhor. Então, em termos de recursos, o que você precisará
para fazer este curso? Felizmente, não muito. Você precisará de um computador, um navegador da web e uma
conexão com a Internet. E se você está
assistindo a este vídeo, então você já atende a
essas condições. Agora, vamos falar sobre
por que você deve fazer este curso e o que você deve
esperar obter dele. Bem, o que eu notei depois de
ensinar aprendizado de máquina por muitos anos é que há
uma grande lacuna no conhecimento. Os alunos frequentam um curso
de aprendizado de o objetivo de aprender aprendizado
de máquina. Eles entenderão os conceitos, mas depois não terão ideia de como
colocar esses conceitos no código porque eles
realmente não sabem como programar. O objetivo deste curso é preencher essa lacuna criando
uma ponte entre um revestimento comum
e o tipo de codificação que você precisará para a
ciência de dados e o aprendizado de máquina. Carregando e
manipulando especificamente seus conjuntos de dados. Ao final deste curso, você terá aprendido o suficiente
para usar o que aprendeu em
um conjunto de dados real. Na verdade, isso é o que
faremos como nosso projeto final. Então, espero que você esteja
tão empolgado quanto
eu para aprender sobre
essa incrível biblioteca. Obrigado por ouvir,
e nos
vemos na próxima palestra.
2. Contributo de Pandas: Nesta palestra,
apresentaremos a próxima
seção deste curso, que é sobre pandas. Pandas é uma biblioteca que
facilita muito a leitura, gravação e manipulação de dados. Agora, embora haja muitas
funcionalidades no Pandas, não
poderemos
acessar todas nesta breve seção. Esta seção é focada
exclusivamente nos fundamentos. Queremos responder
perguntas como como você carrega um CSV
e como você escreve um CSV? O que faz um DataFrame e como
ele é diferente de
um array NumPy? E, a propósito, se você tem formação em arte e
é de estatística, deve
se sentir em
casa com o DataFrames. Vamos analisar as operações
básicas em DataFrames, como selecionar linhas e colunas
específicas. Isso será muito
estranho se
você tiver uma
experiência pura de programação. Porque do jeito
que parece à primeira vista, parece ser o oposto do que você veria como um nervoso. Examinaremos uma função especial
chamada função apply, que permite que você execute a
mesma operação em cada linha de seus dados de forma eficiente sem
precisar usar um for-loop. Por fim, veremos
como o Pandas torna plotagem de seus dados
muito conveniente.
3. Como carregar dados: Nesta palestra,
veremos como
carregar dados usando pandas. Pandas é particularmente útil para dados
estruturados como uma tabela. Portanto, ele não lidará
com dados de imagem ou dados
de áudio ou dados de texto
não estruturados, se é isso que você
estava pensando. Os dados tabulares
quando armazenados em um arquivo geralmente estão na forma
de um CSV ou TSV. Isso significa valores
separados por vírgula e valores
separados por tabulação. Você também pode usar pandas para ler em uma planilha do
Excel, pois ela tem uma estrutura
semelhante, embora isso
seja mais incomum. Então, para começar,
vamos importar pandas. Importe pandas como pdf. Em seguida, vamos baixar um CSV do meu repositório do GitHub. Você e eu vamos copiar esse URL do meu caderno
pré-escrito. Portanto, não tente digitar isso manualmente, como alguns de
vocês às vezes fazem. Vamos fazer W get. E então esse URL. Como você pode ver, o arquivo que acabamos baixar é chamado
de S-box, esse CSV. Em seguida, vamos
ler no CSV, então df é igual a pd, ler CSV como box dot CSV. Observe que esse comando também funciona
diretamente com URLs. Então, se
copiarmos o URL diretamente, vamos usar df igual a pd, ler CSV e
colar esse URL. Tudo bem, então isso também funciona. Em seguida, podemos verificar o
tipo de objeto que df é fazendo o tipo df. Como você pode ver, é um objeto dataframe e
não uma matriz NumPy. Agora, apenas para fins de comparação, devemos ver o que está
no arquivo real que baixamos. Então, vamos usar o comando Linux. Então, isso é besteira,
já que os livros pontilham csv. Então, como você pode ver, há uma coluna de cabeçalho
com os cabeçalhos data, abertura, alta, baixa, fechamento,
volume e nome. Deve ficar claro que
esses são os preços das ações Starbucks a partir
de fevereiro de 2013. X, vamos
voltar aos pandas. Pandas tem um
comando análogo e df.head. Vamos tentar isso. E,
como você pode ver, se você estiver em um caderno
que mostra uma prévia bem formatada
da parte superior do seu DataFrame. Você também pode definir o número de linhas que deseja
ver como argumento. Então, podemos fazer df.head ten. E isso nos mostra
as primeiras dez linhas em vez das cinco primeiras. Assim como no Linux,
há um comando de cauda. Então, podemos fazer df, dry tail. E isso nos mostra o
final do DataFrame. Finalmente, há uma
função de informação, Df dot info. E isso nos dá algumas informações
importantes sobre o dataframe. Então, como você pode ver, ele mostra coisas
como o tipo de índice que o DataFrame usa, quantas colunas ele tem, os tipos de dados dessas colunas e quanta memória ele ocupa.
4. Como selecionar fileiras e colunas: Nesta palestra,
discutiremos como
selecionar linhas e colunas
do nosso DataFrame. Isso é semelhante à
indexação de uma matriz. Então, por exemplo com uma matriz NumPy, eu posso perguntar, me
dê o elemento na
linha zero, coluna zero. E nesse caso, eu usaria a notação de colchete e passaria uma vírgula zero zero. Então, vamos ver se isso
funciona com um DataFrame. Df zero vírgula zero. Como você pode ver,
isso não funciona. Então, antes de fazermos qualquer outra coisa, vamos verificar as colunas
do DataFrame
usando o atributo
chamado columns. Então isso é pdf, dy. coluna retorna um
objeto de índice com os nomes das colunas. Observe que você
também pode atribuir
esse atributo com uma
lista de nomes de colunas. Então, digamos que eu não
goste do fato a coluna do nome ser a
única que está em maiúscula, pois ofende meu
senso de uniformidade. Então, vamos mudar
isso para minúsculas. Podemos fazer df.columns e
depois enviar uma lista. Mude isso para minúsculas. E lá vamos nós. E também podemos verificar
se funcionou. Tudo bem, então funciona. Tudo bem, então aqui está uma ideia. E se eu passar um
desses nomes de coluna para
os colchetes? Então, vamos tentar df. Aberto. Como você pode ver, isso retorna a coluna aberta
do DataFrame. Também podemos selecionar
várias colunas usando uma lista de nomes de colunas. Então, vamos tentar o colchete aberto f, colchete aberto, aberto, fechado. E isso retorna as duas colunas. Agora, só por curiosidade, vamos verificar o tipo
de dados da coluna aberta. Então, esse é o tipo aberto. Interessante, então é uma série. Agora vamos verificar o tipo
das colunas abertas e fechadas. Portanto, este é um DataFrame. A lição aqui é que
quando você tem apenas uma dimensão e o Pandas
normalmente é armazenado como uma série. Se for bidimensional,
é um DataFrame. Neste ponto, você pode estar
pensando que os pandas são muito estranhos porque colchetes são
usados para selecionar colunas. Já no NumPy e em qualquer
outro tipo de matriz, os colchetes
geralmente selecionam as linhas. A pergunta óbvia agora é como selecionamos uma
linha em um DataFrame? A resposta é que podemos
fazer isso usando o I e os atributos locais. Então, podemos fazer df dot de zero. E isso retorna a
coluna zero do DataFrame. Talvez você queira
verificar isso. Também podemos fazer o log
de pontos F de zero. E isso também retorna
a mesma linha. Então você pode estar se perguntando
qual é a diferença? A diferença é
que I look é usado para índices inteiros
e não importa o que aconteça, enquanto baixo seleciona a
linha pelo rótulo do índice. E acontece que em nosso DataFrame eles
são a mesma coisa. Para demonstrar essa diferença, vamos carregar nosso
DataFrame novamente, mas desta vez vamos especificar que a coluna de data
deve ser o índice. Então, faremos df2 igual a pd, leia CSV como box dot CSV. E então diremos que
index col é igual a data. A propósito, é
altamente recomendável que você
leia a documentação
dos pandas. Existem muitos argumentos para as muitas funções que o Pandas tem e você basicamente
nunca conseguirá se lembrar de todas elas. Então, acostume-se a usar
a documentação. Agora vamos fazer a cabeça do ponto F2. Então, como você pode ver, a coluna de data parece agora ter algum tipo de status
especial. Na verdade, é o índice
desse DataFrame. Então agora podemos fazer d de muito baixo. E então podemos passar
um desses índices. E isso retorna a primeira
linha do DataFrame. A propósito, se verificarmos
o tipo dessa linha, podemos ver que também
é uma série. Portanto, tanto as linhas individuais quanto colunas
individuais
são objetos de série. Agora, vamos falar sobre como podemos selecionar várias linhas
do DataFrame. Suponha que eu queira todas
as linhas em o preço de abertura foi
maior que 64. Então eu posso fazer df open bracket, d f open maior que 64. Tudo bem, então essas são
todas as linhas em que o preço de abertura é
maior que 64. Agora, suponha que eu queira
todas as linhas em que o nome não seja Starbucks. Então eu posso fazer df, nome
df não é igual à S-box. Ok, então não temos linhas em que
o nome não seja Starbucks. Então, parece que usando a notação de
colchetes, eu posso passar algo como um código booleano como esse que
funciona de dentro para fora. Então, vamos verificar o que essa coisa
booleana realmente é. Vamos verificar o tipo. Então, talvez não seja uma surpresa, é uma série contendo valores
booleanos. Portanto, os colchetes
em um DataFrame , exceto uma
série booleana como entrada. Agora, estranhamente, esse comportamento corresponde à forma como as matrizes
Numpy funcionam. Na minha opinião, numpy é mais
consistente aqui porque isso envolve seleção de linhas e
não chamá-las de seleção. Então, vamos fazer isso. Vamos importar numpy, pois np
é igual a np.array range ten. Vamos ver o que é a. Portanto, essa é uma matriz
de números inteiros de 0 a 10. Agora, digamos que eu só
queira manter os números pares. Então eu posso fazer um colchete aberto, um mod dois é igual a zero. Isso me dá todos os
números pares nessa matriz. Agora, como lição de casa, você pode
verificar o tipo de dados da coisa que acabamos de passar
para os colchetes. Então, um mod dois é igual a zero. Agora, ao criar algoritmos de
aprendizado de máquina, você geralmente quer trabalhar
com matrizes de números e não com DataFrames que podem
conter todos os tipos de objetos. Então, como podemos converter um
DataFrame em uma matriz NumPy? Podemos usar o atributo values. Então, são apenas valores de pontos df. Agora, infelizmente, isso nos
dá o objeto dtype, que não é o que queremos se estivermos fazendo aprendizado de máquina, porque agora existem cadeias de caracteres
dentro dessa matriz. Então, vamos ver o que
acontece se
selecionarmos apenas as colunas numéricas. Então, vamos fazer um valor igual a df, abrir e fechar, e
vamos verificar o que é. Ok, então agora temos uma matriz
adequada de números. Vamos verificar o tipo de a. Tudo bem, então é uma
matriz NumPy conforme o esperado. Tudo bem, então suponha que
agora
que fizemos o que precisávamos fazer
com nosso DataFrame, gostaríamos de
salvá-lo em um arquivo. Isso é feito com
as duas funções CSV. Digamos que eu queira manter apenas as colunas abertas e
fechadas. Então eu posso fazer df pequeno
igual a df aberto, fechado. E então eu posso fazer pequenos df
para CSV, saída de ponto CSV. Ok, e isso acabou de
salvar meu DataFrame um arquivo chamado output dot CSV. Agora podemos usar o comando Linux para ver o que está em nosso arquivo para que
possamos fazer o head output dot CSV. Agora, infelizmente, parece
haver uma
coluna de índice bastante inútil em nosso arquivo. Felizmente, podemos nos livrar disso. Então, faremos essa mesma linha. E adicionaremos um novo argumento. O índice é igual a falso. Agora podemos tentar o comando
head novamente. E a coluna do índice desapareceu.
5. A função apply(): Nesta palestra,
discutiremos a função de aplicação. O caso de uso típico da função apply
seria semelhante
ao cenário em que queremos fazer alguma operação em cada
elemento de uma lista, por exemplo, se quiséssemos
quadrar cada item, é
claro, em Python, sabemos que os loops são lentos, então gostaríamos de
evitá-los, se possível. A função apply pode ser
usada se você quiser fazer
a mesma operação
em cada linha de um DataFrame ou em cada
coluna de um DataFrame. Em outras palavras, ele faz o que
você quer fazer com um
loop for sem precisar
realmente escrever um loop for. Então, vamos dar um exemplo. Suponha que eu queira ter
uma coluna chamada ano, onde eu pego a coluna de data
existente, analiso o ano e o
converto em um número inteiro. Então, vamos começar escrevendo
uma função que aceita como entrada uma única
linha de um DataFrame. Então, isso seria surdo em dois
anos e demoraria em uma fileira. Então, vamos retornar int
de rho, data de colchete. Em seguida, dividiremos essa
corda com um traço
e, em seguida, pegaremos
o elemento zero. Agora, se você não consegue ver como
isso funciona imediatamente, sugiro tentar isso
em uma sequência de datas fictícia. Lembre-se de que o formato é um traço de
ano, traço de mês, dia. Em seguida, vamos
aplicar essa função a
cada linha do nosso DataFrame. Então,
aplicamos df dot data a ano. Portanto, o primeiro argumento é um eixo de
função igual a um. O eixo igual a
um é necessário. Caso contrário, isso funcionará coluna em vez de robôs. Então, vamos executar isso. E como você pode ver, lançamos uma série contendo apenas o ano do tipo D em 64. Observe que também podemos atribuir essa série
a uma nova coluna. Portanto, podemos fazer df ano
igual ao que temos acima. Tudo bem, agora vamos verificar o que
isso fez com nosso DataFrame. Como você pode ver, há uma
nova coluna chamada ano.
6. Como organizar com Pandas: Nesta palestra,
veremos como planejar com pandas. Pandas torna isso
muito fácil
, pois fornece métodos de instância em séries
e DataFrames que
geram gráficos automaticamente. Então, vamos experimentar alguns. Então, vamos fazer
df open dot host. Como você pode ver, isso
cria um histograma. Que tal o enredo aberto F? Como você pode ver, isso
cria um gráfico de linhas. A propósito, esses nomes de métodos correspondem às versões dinâmicas do
gráfico do mapa, o que os torna
fáceis de lembrar. Também podemos fazer
gráficos mais interessantes, como o boxplot. Agora, é claro, o boxplot é útil para colunas numéricas. Então, vamos selecionar abrir
alto, baixo e fechar. Então isso seria df, aberto alto, baixo, perto. E faremos o gráfico da caixa de pontos. E então isso é um boxplot. Outro gráfico
muito útil para obter um resumo rápido dos seus
dados é a matriz de dispersão. Então, vamos traçar isso primeiro e depois discutiremos
o que estamos vendo. Então, vamos
importar a matriz de dispersão. Então, da plotagem de pontos do Pandas,
importe a matriz de dispersão. E então vamos
chamar essa função. Então, matriz de dispersão, mesmo
DataFrame acima. E então diremos que alfa é igual 0,2 e figsize é igual a 66. Ok? Essa é uma matriz de dispersão. Então, como você sabe, alfa
igual a 0,2 faz com que os pontos tenham transparência e o tamanho
fixo torna o gráfico um pouco maior
para que possamos vê-lo melhor. Então, o que é esse enredo? Basicamente, esse gráfico mostra a correlação linear entre
cada uma das colunas de dados. Na diagonal, obtemos um histograma de cada coluna
individual. Então, isso nos permite ver a
distribuição de nossos dados. Em outras palavras, esse
é um
resumo estatístico dos dados. Vemos que tipo de
distribuição cada coluna tem e como elas estão
relacionadas umas com as outras.
7. Exercício de Pandas: Nesta palestra,
abordaremos o próximo exercício para a dissecação
da caneta. Neste exercício, você
combinará o que aprendeu
nas seções anteriores e
dará um passo adiante. Você também precisará
usar a
documentação do pandas para
concluir este exercício. A propósito, usar a documentação
é muito importante porque essas bibliotecas são
constantemente atualizadas e as APIs
estão sempre mudando. Você poderia fazer um treinamento de uma
semana inteira sobre pandas e ainda não saber metade do que os pandas
têm a oferecer. E mesmo que você tenha estudado todo
o plano em API, o
que, aliás,
é muito improvável, você ainda não conseguiria
memorizar a coisa toda de qualquer maneira. Mesmo se você pudesse memorizar
todas essas informações, por que você gostaria de memorizar quando o que você memorizou minha mudança? Portanto, não tente memorizar a
sintaxe ou se
apegar demais a uma
forma específica de fazer as coisas, apenas aprenda a usar
a documentação. E outra observação,
você deve fazer isso sem usar blogs
ou tutoriais. Use apenas a documentação oficial do Pandas
e do NumPy. Tudo bem, então qual é o exercício? Neste exercício,
você gerará o conjunto de dados de rosca que é o conjunto de dados de círculos
concêntricos. Depois de gerar
o conjunto de dados, que obviamente
será armazenado em uma matriz, você criará um
DataFrame a partir dessa matriz. Você deseja chamar os nomes das
colunas de X1 e X2. Em seguida, você desejará derivar novas colunas com base em X1 e X2. Chamamos isso de expansão quadrática de
características. Então você quer gerar
três novas colunas, x1 ao quadrado, x2 ao quadrado e X1 vezes X2. Você pode achar que a
função de aplicação é útil aqui. Além disso, você deseja nomear essas
colunas adequadamente. Finalmente, depois de
concluir seu DataFrame, salve-o em um CSV sem cabeçalhos e sem
nenhuma coluna de índice. Portanto, seu CSV deve conter apenas os números que seriam armazenados se fosse uma matriz NumPy. Boa sorte e nos
vemos na próxima palestra.
8. Onde obter cupons de desconto e material de aprendizagem de máquina GRÁTIS: Olá a todos e bem-vindos de
volta a esta aula. Nesta palestra,
vou responder a uma das
perguntas mais comuns que recebo. Onde posso obter cupons de desconto e material de aprendizado profundo gratuito? Vamos começar com cupons. Tenho várias maneiras de você
se manter atualizado comigo. maneira absoluta melhor maneira absoluta de se
manter atualizado com cupons de desconto
recém-lançados é
assinar meu boletim informativo. Há várias
maneiras de fazer isso. Primeiro, você pode visitar meu
site, lazy programmer dot. No topo da página, há uma caixa
onde você pode inserir seu e-mail e se
inscrever no boletim informativo. Outro site que
possuo e
opero é o deep learning courses.com. Este site contém basicamente os mesmos cursos que você
vê nesta plataforma, mas também contém material VIP
extra.
Mais sobre isso mais tarde. Então, se você rolar até o
final deste site, encontrará uma caixa para
inserir seu e-mail, que
o inscreverá no boletim informativo, como faria
no programa Lazy no DOT ME. Então você só precisa
fazer um desses. Agora vamos fazer uma pequena
digressão porque essa é outra
pergunta comum que recebo. O que é esse
material VIP e como posso obtê-lo? Então, aqui está como a coisa
VIP funciona. Normalmente, quando eu lanço um curso, eu o libero com material VIP
temporário, que é exclusivo para os
madrugadores que se inscreveram no curso durante
meu anúncio. Esta é uma pequena recompensa para aqueles
que se mantêm atualizados com meus anúncios e,
claro, realmente os lêem. É importante observar que material
VIP pode
sair a qualquer momento. Por exemplo, eu não consegui fazer
grandes atualizações em um curso três anos depois de iniciá-lo
e fazer outra versão VIP. O objetivo do curso de
aprendizado profundo é
ter um lar permanente
para esses materiais VIP. Portanto, mesmo que possa ser temporário na plataforma em
que você se inscreveu. Se você se inscrever na
versão VIP do curso, terá acesso
permanente
aos materiais VIP no curso de aprendizado
profundo, mediante solicitação. Aqui estão alguns exemplos de
materiais que você pode encontrar nas seções VIP
do meu
TensorFlow. Para o curso, há três
horas extras de material sobre o Deep Dream e localização de
objetos. Normalmente eu não libero o conteúdo
VIP em formato de vídeo, mas isso foi uma exceção. Outro exemplo em meu curso de IA
de ponta foi uma seção extra escrita
sobre o algoritmo T3. Este curso abordou três
algoritmos no total. Então, a seção
de extras oferece mais um, ou em outras palavras,
33% a mais de material. Outro exemplo em meu
coro
avançado de PNL e RNNs é uma seção sobre reconhecimento de
fala
usando aprendizado profundo. Além disso, há
uma seção totalmente nova
do curso sobre
previsões de estoque ou redes de memória, dependendo da versão
do curso que você está fazendo. A razão para isso
é que eu poderia lançar versões
ligeiramente diferentes de cada curso em plataformas
diferentes. Por causa de como as regras em
todas essas plataformas funcionam, devo diferenciar
os cursos. No entanto, como eu possuo um curso
de aprendizado
profundos.com, essa é a única
plataforma que contém a
versão mais completa do curso, que inclui todas as seções. Observe que isso é raro,
portanto, dependendo do
curso que você está fazendo, isso pode não afetá-lo. Tudo bem, então vamos
voltar para você. Cupons de desconto
e material gratuito. Outros lugares onde anunciei cupons de
desconto são Facebook,
Twitter e YouTube. Talvez você queira pausar
este vídeo para acessar esses URLs e
me seguir ou se inscrever
nesses sites, se forem sites
que você usa regularmente. Então, para o Facebook,
aquele programador preguiçoso do facebook.com dot Emmy para o Twitter, isso é twitter.com slash lazy underscore
scientists para o YouTube, youtube.com slash C
slash lazy programmer x. Ocasionalmente, eu ainda lançava material
totalmente gratuito. Isso é bom se eu
quiser apenas falar sobre um tópico específico sem precisar criar um curso
inteiro para ele. Por exemplo, I. Acabei de lançar um vídeo sobre as previsões
do mercado de ações e por que maioria dos outros blogs em cursos abordam esse problema de
forma completamente errada. Esse é outro benefício de
se inscrever para essas coisas. Eu posso expor falsos
cientistas de dados que são
realmente profissionais de marketing. Ao passo que eu nunca faria
um curso inteiro sobre isso. Às vezes, isso pode ser
escrito e às
vezes em formato de vídeo. Se for escrito,
será em um programa
preguiçoso e
me ensinado ou em um curso de aprendizado profundo. Se for um vídeo,
estará no YouTube. Portanto, certifique-se de se inscrever
para mim no YouTube. Se eu lançar um vídeo, também
posso fazer um post sobre isso no lazy programmer dot ME. E também posso anunciá-lo usando outros métodos que discuti
anteriormente. Então esse é o
boletim informativo, o Facebook, Twitter e, obviamente, o próprio
YouTube. Agora eu percebo que isso é
muita coisa e você provavelmente não usa
todas essas plataformas. Eu certamente não,
pelo menos não regularmente. Então, se você quiser fazer
o mínimo, aqui está o que você deve fazer. Primeiro, assine
meu boletim informativo. Lembre-se de que você pode fazer isso em
um programa lento no DOT ME ou no curso de
aprendizado profundo. Em segundo lugar, assine meu
canal do YouTube em youtube.com. Slash C slash lazy programmer x. Obrigado por ouvir e nos
vemos na próxima palestra.