SlideShare uma empresa Scribd logo
Computação Científica
   com Python
    A cobra também é inteligente!




                                    1
Membro do Muriçoca Labs - Labs de Projetos com Machine Learning




                                                                  2
O que é Python ?


                   6=7%#E!)")F#C>)&&
                   G."#A$%)F.&H&.8IA%.*1&-=$:#.$)7,J&

                                               !"#$%&'()*+&)*,'&
 !"#$%&$'()*')                                 -."&#&#$&/0121345&
 +,-$,&(&./-)                                  &&!"#$%&#&
  *')&01-)#23'0)      444)5-()%(&)
                          6"#1&7')
                        6"(+0'6)')
                          89:"0)*')      444);(&)
                        &+,'#*',)       <"<0"-1':&)
                                                          444)=)+&:-1'6)
                                         $"$&#1')
                                                           +>):90:%0-?)
                                        +&*,/-444)
                                                         *&*-6?+,-:'66
:%+!A*1*.:BA%*1-#7A*1"ACAD1,&                                &('#1-?)
                                                           "#1',8&:'@)

                   6)%!7.%7#819:#;+1<=>;+1;+?@1,&




                                      Marcel Caraciolo - @marcelcaraciolo
                                                                            3
Ciclo de Desenvolvimento em P&D



  3#%$/$()967*2$2   !"#$%&'$()*
   <&/59;&=967*2     +,$-.$/&0(12




   3(:;&/$28*/2     345&/&67*28$2
     .98*/2           .98*/2




                    Marcel Caraciolo - @marcelcaraciolo
                                                          4
Ciclo de Desenvolvimento em P&D



  3#%$/$()967*2$2   !"#$%&'$()*
   <&/59;&=967*2     +,$-.$/&0(12




   3(:;&/$28*/2     345&/&67*28$2
     .98*/2           .98*/2




                    Marcel Caraciolo - @marcelcaraciolo
                                                          5
Uso de software facilita muito!



  012*2-#"+,-$3$
   4)*(".)5"+,-$     !"#$%&'$()*
  4(5657$%8%         +,$-./$0&1(**




   !"#"$%-"./*)*$     !"#"$%&'()*)+,-$

  .'/,'#$%          !"#$%&'()"()$%
.'/0"1'23'*         *('+,"()$%*--%




                    Marcel Caraciolo - @marcelcaraciolo
                                                          6
Uso de Python facilita mais ainda!!


     23+%+/.-4(/)5)
             !
      6$%#-0$7-4(/
                      !"#$%&'$()*+
    6#.*').'57+,
                       ,-$./0$1&2(++
     4/8.+,1,




     ,-.-)!/-01%$%)    !"#$%$&'()*+),-*(%)

     2$34/+,          !"#$%&$'()#*+,
     (-54/+,1+          -./*"0+,1,




                      Marcel Caraciolo - @marcelcaraciolo
                                                            7
8
Aquisição de Dados




http://archive.ics.uci.edu/ml/

                                          Repositórios de Dados
                                            UCI, MovieLens, AWS, KDD, etc.

                                            Marcel Caraciolo - @marcelcaraciolo
                                                                                  9
Usando o loadtxt()


from numpy import loadtxt

def class2int(s):
! if s == 'Iris-setosa':
! ! return 1
! elif s == 'Iris-versicolor':
! ! return 0                                            http://archive.ics.uci.edu/ml/datasets/Iris
! else:
! ! return 2                                                         %n1, n2, n3, n4, class
                                                                   5.1,3.5,1.4,0.2,Iris-setosa
                                                                   4.9,3.0,1.4,0.2,Iris-setosa
                                                                   4.7,3.2,1.3,0.2,Iris-setosa
ary1 = loadtxt('iris.data', delimiter=',',                         4.6,3.1,1.5,0.2,Iris-setosa
                                                                   5.0,3.6,1.4,0.2,Iris-setosa
converters={4: lambda s: class2int(s)},                            5.4,3.9,1.7,0.4,Iris-setosa
skiprows=1)                                                        4.6,3.4,1.4,0.3,Iris-setosa
                                                                                ...

print ary1


 http://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html#numpy.loadtxt




                                               Marcel Caraciolo - @marcelcaraciolo
                                                                                                      10
Aquisição de Dados




    WEB



                     11
Bibliotecas como BeautifulSoap

<html>
 <body>
  <table>
   <tr>                          from BeautifulSoup import BeautifulSoup
    <td>
     3.0
    </td>                        soup = BeautifulSoup(''.join(html))
    <td>
     4.0
    </td>                        table = soup.find('table')
   </tr>     3.0    4.0
   <tr>                           
    <td>     5.0    6.2          rows = table.findAll('tr')
     5.0
    </td>                        for tr in rows:
    <td>
     6.2                           cols = tr.findAll('td')
    </td>                          for td in cols:
   </tr>
  </table>                             text = ''.join(td.find(text=True))
 </body>
</html>
                                       print text+"|",
                                   print




             $ sudo aptitude install python-beautifulsoup




                                        Marcel Caraciolo - @marcelcaraciolo
                                                                              12
Análise dos Dados




    !"#$%&                                                        '()$%&
    ! "#$%&$'#()*(                                                ! >?)&8#()*(-8'#($@A*8(
      +*,,-.*$'-/(0-,-(                                             *.(=B'C#$(0-,-(
      1#.0&'-23#(                                                   ',-:-8C-,(1#.(
      14*$561-(                                                     A*'#,*/(*(.-',4D*/(
    ! 789*:,-(;4$*-,<(                                            ! E-/*-)#(*.("F(:*.(
      =,#1*//-.*$'#(                                                #G.4D-)#(


!!"#$%&&'''()*+$,(-./!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"#$%&&012$,()*+$,(-./!




                                                                         Marcel Caraciolo - @marcelcaraciolo
                                                                                                               13
História do Numpy e Scipy

Criado por Eric Jones e Travis Oliphant em
                  2001
Atualmente mantida por uma comunidade de
                  usuários




                                     http://conference.scipy.org/scipy2011/

   http://enthought.com




                              Marcel Caraciolo - @marcelcaraciolo
                                                                              14
Numpy e Scipy como ambiente científico

       Capaz de competir com outros softwares
     matemáticos como Matlab, Octave, R, Scilab, etc.


Ipython - http://ipython.org/
Ferramenta essencial para todo desenvolvedor que vai trabalhar com Python + Scipy + Numpy + Matplotlib




                                                        Marcel Caraciolo - @marcelcaraciolo
                                                                                                         15
Numpy e Scipy como ambiente científico
          Comparando com o Matlab
            http://www.scipy.org/NumPy_for_Matlab_Users



     Scipy/Numpy                            Matlab

Python com múltiplos argumentos, Definição de função de Matlab bem
       valores default, etc.                  restrita



Programação Orientada a Objetos       Programação Procedural



           Gratuito                            Pago




                                     Marcel Caraciolo - @marcelcaraciolo
                                                                           16
Numpy e Scipy como ambiente científico

Mas eu gosto de plotar gráficos!

Matplotlib - http://matplotlib.sourceforge.net/
    Python 2D Plotting library

    MATLAB plotting framework - matplotlib.pyplot




 http://www.scipy.org/Cookbook/Matplotlib



                                                    Marcel Caraciolo - @marcelcaraciolo
                                                                                          17
Plotando com o PyLab


                                !!!"#$%$&'()*+,&*-"*./+*01"

$ ipython --pylab

>>> plot(x,sin(x))

>>> plot(x,cos(x))

>>> legend([‘sin’, ‘cos’])




                                                                  20




                                  Marcel Caraciolo - @marcelcaraciolo
                                                                        18
Funcionalidades do Scipy

Organizado em subpacotes, abrangendo vários domínios da
    !"#$%&#'(%)')*+,)&,-$%./
                computação científica
    !   !"#$%&'$()*+,*-./0$1)2+-3*$/"$%#+%()*45"&)-*(),6%&)-*
        ($*1),0.2$78)*1&+%269&1$




                                        Marcel Caraciolo - @marcelcaraciolo
                                                                              19
Mas por onde começo ?

Scipy e Numpy disponível para diversas plataformas

   http://new.scipy.org/download.html
     !"#$%&%'()*+)#*,-+.&)#
     !                      ou
         !"#$%&'()*&+#($,-./'0&$121&+#3'2'-)'(&$01)13,241(
         5))$677-'89("#$%9,2:7+,8-0,1+95)40&
     $ !sudo apt-get install python-numpy
       ! ,;
     $ sudo apt-get install python-scipy
         ! !"#$%&#'()*#!++'",#-.)$)/0",
           !   !"#$%&#'()*#!++'",#-.)$*1(",
                           5))$677-;4$%9("#$%9,2:7
                                      5))$6778889("#$%9,2:




                                                     Marcel Caraciolo - @marcelcaraciolo
                                                                                           20
Explorando o Numpy

                  !"#$%&'()%*%*+,-./
                      Arrays e Matrizes
                   ! !""#$%
>>> import numpy as np
                   ! &#'"()*%
>>> a = np.array([0,1,2,3,4,5],
              [10,11,12,13,14,15],          0   1   2   3   4   5
              [20,21,22,23,24,25],
              [30,31,32,33,34,35],         10 11 12 13 14 15
              [40,41,42,43,44,45],         20 21 22 23 24 25
              [50,51,52,53,54,55])
                                           30 31 32 33 34 35
!!!"#$%&'()*
!""!#$%&'()*+                              40 41 42 43 44 45
                                           50 51 52 53 54 55
!!!"#$+(&+(*
!""!#$%%))'(),*'(((((((
       %,)'(,,**+

!!!"#$(&,*
!""!#$%-'.-'--'&-')-',-*+

!!!"#$%&&%'&&%(
#))#*+$$%,'"%%'"%-('"
       $-,'"-%'"--((.


                                     Marcel Caraciolo - @marcelcaraciolo
                                                                           21
Explorando o Numpy

                   !"#$%&'()%*%*+,-./
                       Arrays e Matrizes
                   !  !""#$%
>>> import            &#'"()*%
              numpy !as np

>>> a = np.matrix([0,1,2,3,4,5],
                                                  0   1   2   3   4   5
             [10,11,12,13,14,15],
             [20,21,22,23,24,25],                10 11 12 13 14 15
             [30,31,32,33,34,35],
                                                 20 21 22 23 24 25
             [40,41,42,43,44,45],
             [50,51,52,53,54,55])                30 31 32 33 34 35
 
                                                 40 41 42 43 44 45
>>> m_t = a.transpose()
                                                 50 51 52 53 54 55
>>> mask = a < 30

>>> a[mask]     #Matriz com valores < 30




                                           Marcel Caraciolo - @marcelcaraciolo
                                                                                 22
Explorando o Numpy

!"#$%&'()%*%*+,-./ e Matrizes
  Operação de Arrays
!   !"#$%&'#()*+,)-$$%.()#)/%0$12#(
    !   3$1%&4+)5#)6#0+$#(
        numpy.zeros((M,N))                Vetor MxN de zeros
        numpy.ones((M,N))                 Vetor MxN de ums
        numpy.empty((M,N))                Vetor MxN vazio (qualquer valor)


        numpy.zeros_like(m)               Vetor de zeros com formato de m
        numpy.ones_like(m)                Vetor de ums com formato de m
        numpy.empty_like(m)               Vetor de vazio com formato de m


        numpy.random.random((M,N))        Vetor com valores aleatórios
        numpy.identity(N)                 Matriz Identidade, N x N
        numpy.array([(1,2,3),(4,5,6)])    Especifica os valores da matriz
        numpy.matrix([[1,2,3],[4,5,6]])   Especifica os valores da matriz
        numpy.arange(0.,1.,.3)            Vetor com Inicio I, fim F, passo P
        numpy.linspace(0.1, 1, 10)        Vetor com N valores de I à F




                                              Marcel Caraciolo - @marcelcaraciolo
                                                                                    23
Explorando o Numpy

             Arrays e Matrizes

>>> import numpy as np

>>> a = np.array([1,2,3],
             [4,5,6],
             [7,8,9])
 
>>> np.mean(a[0,:]) #media
>>> np.std(a[:,1]) #desvio-padrao
>>> np.min(a) #minimo
>>> np.max(a) #maximo
>>> b = a.T #transposta
>>> m = np.dot(a,b) #multipl.
>>> r = np.random.random((100,00))
>>> i = np.linalg.inv(r) #inversa
>>> eigval, eigvec = numpy.linalg.eig(r) #auto-vetores




                               Marcel Caraciolo - -@marcelcaraciolo
                                Marcel Caraciolo @marcelcaraciolo
                                                                      24
Explorando o Scipy

  Álgebra Linear (scipy.linalg)

>>> import numpy as np

>>> a = np.array([1,2,3],
              [4,5,6],
              [7,8,9])
 
>>> np.mean(a[0,:])
>>> np.std(a[:,1])
>>> np.min(a)
>>> np.max(a)
>>> b = a.T
>>> m = np.dot(a,b)
>>> r = np.random.random((100,00))
>>> i = np.linalg.inv(r)
>>> eigval, eigvec = numpy.linalg.eig(r)




                           Marcel Caraciolo - @marcelcaraciolo
                                                                 25
Explorando o Scipy

               Álgebra Linear (scipy.linalg)

                        Resolvendo sistemas de equações




>>> import numpy as np
>>> from scipy import linalg

>>> a = np.matrix(‘1 1 1; 1 -2 2; 0 1 2’)
>>> b = np.matrix(‘0;4;2’)
#Resolve a eq ax= b
>>> x = linalg.solve(a,b)
>>> print x




                                                 Marcel Caraciolo - @marcelcaraciolo
                                                                                       26
Explorando o Scipy

                     Estatísticas (scipy.stats)


>>> from scipy import stats
# 100 random values from a Poisson distribution with mu = 1.0
>>> s = stats.norm.rvs(loc=0.0,scale=1.0, size=100)
# basic statistics from the matrix.
>>> n, min_max, mean, var, skew, kurt = stats.describe(s)
>>> print("Number of elements: {0:d}".format(n))
>>> print("Minimum: {0:8.6f} Maximum: {1:8.6f}".format(min_max[0], min_max[1]))
>>> print("Mean: {0:8.6f}".format(mean))
>>> print("Variance: {0:8.6f}".format(var))
>>> print("Skew : {0:8.6f}".format(skew))
>>> print("Kurtosis: {0:8.6f}".format(kurt))




                                              Marcel Caraciolo - @marcelcaraciolo
                                                                                    27
Explorando o Scipy

                   Clusterização (scipy.cluster)
       !"#$%&'()*+,-./$0(1230"#$%&'4
Algoritmos de Agrupamento
       ! !"#$%&'($)*+,*!#%-./(,0'$
         ! !'-/"(,0',1*/.,0/)*$*!"#$%&'()!"#*+,%'-
Atualmente, apenas o K-Means
            !   ./012,341(+$(%52$&+,6%+1(&71('85$29,',1&%+1




                                              Marcel Caraciolo - @marcelcaraciolo
                                                                                    28
Explorando o Scipy

            !"#$%&'()*+,-./$0(1230"#$%&'4
                Clusterização (scipy.cluster)

            !       !"#$%&'
                (

                )

                *                                           !"#$%&'+,

                                                                         01 2#,3&4+5#6+
                -

                .                                                         7859$,$:56;<,2#,3&:++;=;3:>?',#,2#,2;+5@A3;:+



                /


Fonte: http://www.slideshare.net/santiagosilas/computao-cientfica-com-numpy-e-scipy-7797060



                                                                        Marcel Caraciolo - @marcelcaraciolo
                                                                                                                          29
Explorando o Scipy

!"#$%&'()*&+,-#./0123'
         Clusterização (scipy.cluster)
!   !"#$%&'(')*%+'




                                Marcel Caraciolo - @marcelcaraciolo
                                                                      30
Projetos Scikits

Projetos interessantes usando o Scipy/Numpy

     Scikit-learn                    http://scikit-learn.sourceforge.net/stable/

        Toolkit de aprendizagem de máquina com algoritmos como PCA, SVM, Bayes, etc.


     Divisi2          http://csc.media.mit.edu/docs/divisi2/

        Toolkit para representação de matrizes esparsas e uso de SVD

     Pandas            http://statsmodels.sourceforge.net/

        Toolkit para trabalho com dados estatísticos com Scipy e Numpy

    Sympy -             http://code.google.com/p/sympy/

        Toolkit para manipulação para matemática simbólica


    *Crab           https://github.com/muricoca/crab

        Toolkit para construção de sistemas de recomendação com Scipy e Numpy




                                                               Marcel Caraciolo - @marcelcaraciolo
                                                                                                     31
Clusterização (scipy.cluster)
       !"#$%&'()*+,-./$0(1230"#$%&'4
Algoritmos de Agrupamento
       ! !"#$%&'($)*+,*!#%-./(,0'$
         ! !'-/"(,0',1*/.,0/)*$*!"#$%&'()!"#*+,%'-
Atualmente, apenas o K-Means
            !   ./012,341(+$(%52$&+,6%+1(&71('85$29,',1&%+1




                                              Marcel Caraciolo - @marcelcaraciolo
                                                                                    32
Dúvidas?

  1. Documentação
          http://docs.scipy.org/doc/


 1I. Tutoriais
         http://scipy-lectures.github.com/



III. Listas de Discussão
          http://www.scipy.org/Mailing_Lists

           http://pyscience-brasil.wikidot.com/


IV. Livros
       Computação Científica com Python por Flávio Coelho, Editora Lulu.com




                                                  Marcel Caraciolo - @marcelcaraciolo
                                                                                        33
Computação Científica
   com Python
      A cobra também é inteligente!




  marcel{@orygens, @muricoca} . com
                                      34

Mais conteúdo relacionado

Mais procurados

Perl Moderno, dia1
Perl Moderno, dia1Perl Moderno, dia1
Perl Moderno, dia1
garux
 
Introdução ao c# para iniciantes
Introdução ao c# para iniciantesIntrodução ao c# para iniciantes
Introdução ao c# para iniciantes
Tiago
 
Crawling - Coleta de dados na Web com PHP
Crawling - Coleta de dados na Web com PHP Crawling - Coleta de dados na Web com PHP
Crawling - Coleta de dados na Web com PHP
Luis Gustavo Almeida
 
Busca textual com solr e sunspot no rails
Busca textual com solr e sunspot no railsBusca textual com solr e sunspot no rails
Busca textual com solr e sunspot no rails
Maurício Linhares
 
Jug bizus (4)
Jug   bizus (4)Jug   bizus (4)
Jug bizus (4)
JugVale
 
Jug bizus
Jug   bizusJug   bizus
Jug bizus
Rodrigo Barbosa
 
Hibernate efetivo (COALTI-2014 / ALJUG)
Hibernate efetivo (COALTI-2014 / ALJUG)Hibernate efetivo (COALTI-2014 / ALJUG)
Hibernate efetivo (COALTI-2014 / ALJUG)
Rafael Ponte
 

Mais procurados (7)

Perl Moderno, dia1
Perl Moderno, dia1Perl Moderno, dia1
Perl Moderno, dia1
 
Introdução ao c# para iniciantes
Introdução ao c# para iniciantesIntrodução ao c# para iniciantes
Introdução ao c# para iniciantes
 
Crawling - Coleta de dados na Web com PHP
Crawling - Coleta de dados na Web com PHP Crawling - Coleta de dados na Web com PHP
Crawling - Coleta de dados na Web com PHP
 
Busca textual com solr e sunspot no rails
Busca textual com solr e sunspot no railsBusca textual com solr e sunspot no rails
Busca textual com solr e sunspot no rails
 
Jug bizus (4)
Jug   bizus (4)Jug   bizus (4)
Jug bizus (4)
 
Jug bizus
Jug   bizusJug   bizus
Jug bizus
 
Hibernate efetivo (COALTI-2014 / ALJUG)
Hibernate efetivo (COALTI-2014 / ALJUG)Hibernate efetivo (COALTI-2014 / ALJUG)
Hibernate efetivo (COALTI-2014 / ALJUG)
 

Destaque

Python e Aprendizagem de Máquina (Inteligência Artificial)
Python e Aprendizagem de Máquina (Inteligência Artificial)Python e Aprendizagem de Máquina (Inteligência Artificial)
Python e Aprendizagem de Máquina (Inteligência Artificial)
Marcel Caraciolo
 
Big Data com Python
Big Data com PythonBig Data com Python
Big Data com Python
Marcel Caraciolo
 
Como Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilComo Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no Brasil
Marcel Caraciolo
 
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Marcel Caraciolo
 
PyFoursquare: Python Library for Foursquare
PyFoursquare: Python Library for FoursquarePyFoursquare: Python Library for Foursquare
PyFoursquare: Python Library for Foursquare
Marcel Caraciolo
 
Redes Neurais e Python
Redes Neurais e PythonRedes Neurais e Python
Redes Neurais e Python
pugpe
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
Luciano Ramalho
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
richardsonlima
 
Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks
Marcel Caraciolo
 
Crab - A Python Framework for Building Recommendation Systems
Crab - A Python Framework for Building Recommendation SystemsCrab - A Python Framework for Building Recommendation Systems
Crab - A Python Framework for Building Recommendation Systems
Marcel Caraciolo
 
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
Marcel Caraciolo
 
Aprendendo python
Aprendendo pythonAprendendo python
Aprendendo python
Victor Marcelino
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
Jean Lopes
 
Recomendação de Conteúdo para Redes Sociais Educativas
Recomendação de Conteúdo para Redes Sociais EducativasRecomendação de Conteúdo para Redes Sociais Educativas
Recomendação de Conteúdo para Redes Sociais Educativas
Marcel Caraciolo
 
Crab: A Python Framework for Building Recommender Systems
Crab: A Python Framework for Building Recommender Systems Crab: A Python Framework for Building Recommender Systems
Crab: A Python Framework for Building Recommender Systems
Marcel Caraciolo
 
Content Recommendation Based on Data Mining in Adaptive Social Networks
Content Recommendation Based on Data Mining  in Adaptive Social NetworksContent Recommendation Based on Data Mining  in Adaptive Social Networks
Content Recommendation Based on Data Mining in Adaptive Social Networks
Marcel Caraciolo
 
Palestra: Cientista de Dados – Dominando o Big Data com Software Livre
Palestra: Cientista de Dados – Dominando o Big Data com Software LivrePalestra: Cientista de Dados – Dominando o Big Data com Software Livre
Palestra: Cientista de Dados – Dominando o Big Data com Software Livre
Ambiente Livre
 
Introduction to Crab - Python Framework for Building Recommender Systems
Introduction to Crab - Python Framework for Building Recommender SystemsIntroduction to Crab - Python Framework for Building Recommender Systems
Introduction to Crab - Python Framework for Building Recommender Systems
Marcel Caraciolo
 
Mining Scipy Lectures
Mining Scipy LecturesMining Scipy Lectures
Mining Scipy Lectures
Marcel Caraciolo
 
Python 3.x - Ihh.. E agora ? Como faço ?
Python 3.x - Ihh.. E agora ? Como faço ?Python 3.x - Ihh.. E agora ? Como faço ?
Python 3.x - Ihh.. E agora ? Como faço ?
Marcel Caraciolo
 

Destaque (20)

Python e Aprendizagem de Máquina (Inteligência Artificial)
Python e Aprendizagem de Máquina (Inteligência Artificial)Python e Aprendizagem de Máquina (Inteligência Artificial)
Python e Aprendizagem de Máquina (Inteligência Artificial)
 
Big Data com Python
Big Data com PythonBig Data com Python
Big Data com Python
 
Como Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilComo Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no Brasil
 
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)
 
PyFoursquare: Python Library for Foursquare
PyFoursquare: Python Library for FoursquarePyFoursquare: Python Library for Foursquare
PyFoursquare: Python Library for Foursquare
 
Redes Neurais e Python
Redes Neurais e PythonRedes Neurais e Python
Redes Neurais e Python
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
 
Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks
 
Crab - A Python Framework for Building Recommendation Systems
Crab - A Python Framework for Building Recommendation SystemsCrab - A Python Framework for Building Recommendation Systems
Crab - A Python Framework for Building Recommendation Systems
 
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
 
Aprendendo python
Aprendendo pythonAprendendo python
Aprendendo python
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Recomendação de Conteúdo para Redes Sociais Educativas
Recomendação de Conteúdo para Redes Sociais EducativasRecomendação de Conteúdo para Redes Sociais Educativas
Recomendação de Conteúdo para Redes Sociais Educativas
 
Crab: A Python Framework for Building Recommender Systems
Crab: A Python Framework for Building Recommender Systems Crab: A Python Framework for Building Recommender Systems
Crab: A Python Framework for Building Recommender Systems
 
Content Recommendation Based on Data Mining in Adaptive Social Networks
Content Recommendation Based on Data Mining  in Adaptive Social NetworksContent Recommendation Based on Data Mining  in Adaptive Social Networks
Content Recommendation Based on Data Mining in Adaptive Social Networks
 
Palestra: Cientista de Dados – Dominando o Big Data com Software Livre
Palestra: Cientista de Dados – Dominando o Big Data com Software LivrePalestra: Cientista de Dados – Dominando o Big Data com Software Livre
Palestra: Cientista de Dados – Dominando o Big Data com Software Livre
 
Introduction to Crab - Python Framework for Building Recommender Systems
Introduction to Crab - Python Framework for Building Recommender SystemsIntroduction to Crab - Python Framework for Building Recommender Systems
Introduction to Crab - Python Framework for Building Recommender Systems
 
Mining Scipy Lectures
Mining Scipy LecturesMining Scipy Lectures
Mining Scipy Lectures
 
Python 3.x - Ihh.. E agora ? Como faço ?
Python 3.x - Ihh.. E agora ? Como faço ?Python 3.x - Ihh.. E agora ? Como faço ?
Python 3.x - Ihh.. E agora ? Como faço ?
 

Semelhante a Computação Científica com Python, Numpy e Scipy

Introdução ao framework CakePHP
Introdução ao framework CakePHPIntrodução ao framework CakePHP
Introdução ao framework CakePHP
igorpimentel
 
346
346346
346
iurdpt
 
346
346346
346
iurdpt
 
Ms05-resmat
Ms05-resmatMs05-resmat
Ms05-resmat
Luciana Costa
 
3
33
Módulo 5 análise das demonstrações contábeis
Módulo 5   análise das demonstrações contábeisMódulo 5   análise das demonstrações contábeis
Módulo 5 análise das demonstrações contábeis
PUC Minas
 
apostila.pdf
apostila.pdfapostila.pdf
apostila.pdf
DenilsonNunes13
 
Methodologies background hiberno romanesque metalwork
Methodologies background hiberno romanesque metalworkMethodologies background hiberno romanesque metalwork
Methodologies background hiberno romanesque metalwork
Martin Brown
 
Otimização e Escalabilidade
Otimização e EscalabilidadeOtimização e Escalabilidade
Otimização e Escalabilidade
metzen
 
EXIGÊNCIAS DE CERTIDÕES NEGATIVAS PARA LEVANTAMENTO DE VALORES DECORRENTES DE...
EXIGÊNCIAS DE CERTIDÕES NEGATIVAS PARA LEVANTAMENTO DE VALORES DECORRENTES DE...EXIGÊNCIAS DE CERTIDÕES NEGATIVAS PARA LEVANTAMENTO DE VALORES DECORRENTES DE...
EXIGÊNCIAS DE CERTIDÕES NEGATIVAS PARA LEVANTAMENTO DE VALORES DECORRENTES DE...
MARCO AURÉLIO BICALHO DE ABREU CHAGAS
 
Apresentações alta performance
Apresentações alta performanceApresentações alta performance
Apresentações alta performance
César Ribeiro
 
Pg2
Pg2Pg2
Pg2
csmp
 
Pgads42
Pgads42Pgads42
Pgads42
csmp
 
Bd racismo
Bd racismoBd racismo
Curso de Gestão de Comunicação Empresarial e Relações Públicas
Curso de Gestão de Comunicação Empresarial e Relações PúblicasCurso de Gestão de Comunicação Empresarial e Relações Públicas
Curso de Gestão de Comunicação Empresarial e Relações Públicas
Sustentare Escola de Negócios
 
Atm
AtmAtm
Pythonbasico
PythonbasicoPythonbasico
Pythonbasico
UFT
 
Python introdução
Python   introduçãoPython   introdução
Python modulo a
Python modulo aPython modulo a
Python modulo a
NatyTGomes
 
Pythonbasico
PythonbasicoPythonbasico
Pythonbasico
Wesley Rodrigues
 

Semelhante a Computação Científica com Python, Numpy e Scipy (20)

Introdução ao framework CakePHP
Introdução ao framework CakePHPIntrodução ao framework CakePHP
Introdução ao framework CakePHP
 
346
346346
346
 
346
346346
346
 
Ms05-resmat
Ms05-resmatMs05-resmat
Ms05-resmat
 
3
33
3
 
Módulo 5 análise das demonstrações contábeis
Módulo 5   análise das demonstrações contábeisMódulo 5   análise das demonstrações contábeis
Módulo 5 análise das demonstrações contábeis
 
apostila.pdf
apostila.pdfapostila.pdf
apostila.pdf
 
Methodologies background hiberno romanesque metalwork
Methodologies background hiberno romanesque metalworkMethodologies background hiberno romanesque metalwork
Methodologies background hiberno romanesque metalwork
 
Otimização e Escalabilidade
Otimização e EscalabilidadeOtimização e Escalabilidade
Otimização e Escalabilidade
 
EXIGÊNCIAS DE CERTIDÕES NEGATIVAS PARA LEVANTAMENTO DE VALORES DECORRENTES DE...
EXIGÊNCIAS DE CERTIDÕES NEGATIVAS PARA LEVANTAMENTO DE VALORES DECORRENTES DE...EXIGÊNCIAS DE CERTIDÕES NEGATIVAS PARA LEVANTAMENTO DE VALORES DECORRENTES DE...
EXIGÊNCIAS DE CERTIDÕES NEGATIVAS PARA LEVANTAMENTO DE VALORES DECORRENTES DE...
 
Apresentações alta performance
Apresentações alta performanceApresentações alta performance
Apresentações alta performance
 
Pg2
Pg2Pg2
Pg2
 
Pgads42
Pgads42Pgads42
Pgads42
 
Bd racismo
Bd racismoBd racismo
Bd racismo
 
Curso de Gestão de Comunicação Empresarial e Relações Públicas
Curso de Gestão de Comunicação Empresarial e Relações PúblicasCurso de Gestão de Comunicação Empresarial e Relações Públicas
Curso de Gestão de Comunicação Empresarial e Relações Públicas
 
Atm
AtmAtm
Atm
 
Pythonbasico
PythonbasicoPythonbasico
Pythonbasico
 
Python introdução
Python   introduçãoPython   introdução
Python introdução
 
Python modulo a
Python modulo aPython modulo a
Python modulo a
 
Pythonbasico
PythonbasicoPythonbasico
Pythonbasico
 

Mais de Marcel Caraciolo

Como interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com PythonComo interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com Python
Marcel Caraciolo
 
Joblib: Lightweight pipelining for parallel jobs (v2)
Joblib:  Lightweight pipelining for parallel jobs (v2)Joblib:  Lightweight pipelining for parallel jobs (v2)
Joblib: Lightweight pipelining for parallel jobs (v2)
Marcel Caraciolo
 
Construindo softwares de bioinformática para análises clínicas : Desafios e...
Construindo softwares  de bioinformática  para análises clínicas : Desafios e...Construindo softwares  de bioinformática  para análises clínicas : Desafios e...
Construindo softwares de bioinformática para análises clínicas : Desafios e...
Marcel Caraciolo
 
Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2
Marcel Caraciolo
 
Como Python pode ajudar na automação do seu laboratório
Como Python pode ajudar na automação do  seu laboratórioComo Python pode ajudar na automação do  seu laboratório
Como Python pode ajudar na automação do seu laboratório
Marcel Caraciolo
 
Python on Science ? Yes, We can.
Python on Science ?   Yes, We can.Python on Science ?   Yes, We can.
Python on Science ? Yes, We can.
Marcel Caraciolo
 
Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3
Marcel Caraciolo
 
Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?
Marcel Caraciolo
 
Benchy, python framework for performance benchmarking of Python Scripts
Benchy, python framework for performance benchmarking  of Python ScriptsBenchy, python framework for performance benchmarking  of Python Scripts
Benchy, python framework for performance benchmarking of Python Scripts
Marcel Caraciolo
 
Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?
Marcel Caraciolo
 
Construindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonConstruindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com Python
Marcel Caraciolo
 
Python, A pílula Azul da programação
Python, A pílula Azul da programaçãoPython, A pílula Azul da programação
Python, A pílula Azul da programação
Marcel Caraciolo
 
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Marcel Caraciolo
 
Aula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosAula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursos
Marcel Caraciolo
 
Arquivos Zip com Python - Aula PyCursos
Arquivos Zip com Python - Aula PyCursosArquivos Zip com Python - Aula PyCursos
Arquivos Zip com Python - Aula PyCursos
Marcel Caraciolo
 
Sistemas de Recomendação: Como funciona e Onde Se aplica?
Sistemas de Recomendação: Como funciona e Onde Se aplica?Sistemas de Recomendação: Como funciona e Onde Se aplica?
Sistemas de Recomendação: Como funciona e Onde Se aplica?
Marcel Caraciolo
 
Construindo Comunidades Open-Source Bem Sucedidas: Experiências do PUG-PE
Construindo Comunidades Open-Source Bem Sucedidas: Experiências do PUG-PEConstruindo Comunidades Open-Source Bem Sucedidas: Experiências do PUG-PE
Construindo Comunidades Open-Source Bem Sucedidas: Experiências do PUG-PE
Marcel Caraciolo
 
Sistemas de Recomendação e Mobilidade
Sistemas de Recomendação e MobilidadeSistemas de Recomendação e Mobilidade
Sistemas de Recomendação e Mobilidade
Marcel Caraciolo
 

Mais de Marcel Caraciolo (18)

Como interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com PythonComo interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com Python
 
Joblib: Lightweight pipelining for parallel jobs (v2)
Joblib:  Lightweight pipelining for parallel jobs (v2)Joblib:  Lightweight pipelining for parallel jobs (v2)
Joblib: Lightweight pipelining for parallel jobs (v2)
 
Construindo softwares de bioinformática para análises clínicas : Desafios e...
Construindo softwares  de bioinformática  para análises clínicas : Desafios e...Construindo softwares  de bioinformática  para análises clínicas : Desafios e...
Construindo softwares de bioinformática para análises clínicas : Desafios e...
 
Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2
 
Como Python pode ajudar na automação do seu laboratório
Como Python pode ajudar na automação do  seu laboratórioComo Python pode ajudar na automação do  seu laboratório
Como Python pode ajudar na automação do seu laboratório
 
Python on Science ? Yes, We can.
Python on Science ?   Yes, We can.Python on Science ?   Yes, We can.
Python on Science ? Yes, We can.
 
Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3
 
Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?
 
Benchy, python framework for performance benchmarking of Python Scripts
Benchy, python framework for performance benchmarking  of Python ScriptsBenchy, python framework for performance benchmarking  of Python Scripts
Benchy, python framework for performance benchmarking of Python Scripts
 
Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?
 
Construindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonConstruindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com Python
 
Python, A pílula Azul da programação
Python, A pílula Azul da programaçãoPython, A pílula Azul da programação
Python, A pílula Azul da programação
 
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
 
Aula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosAula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursos
 
Arquivos Zip com Python - Aula PyCursos
Arquivos Zip com Python - Aula PyCursosArquivos Zip com Python - Aula PyCursos
Arquivos Zip com Python - Aula PyCursos
 
Sistemas de Recomendação: Como funciona e Onde Se aplica?
Sistemas de Recomendação: Como funciona e Onde Se aplica?Sistemas de Recomendação: Como funciona e Onde Se aplica?
Sistemas de Recomendação: Como funciona e Onde Se aplica?
 
Construindo Comunidades Open-Source Bem Sucedidas: Experiências do PUG-PE
Construindo Comunidades Open-Source Bem Sucedidas: Experiências do PUG-PEConstruindo Comunidades Open-Source Bem Sucedidas: Experiências do PUG-PE
Construindo Comunidades Open-Source Bem Sucedidas: Experiências do PUG-PE
 
Sistemas de Recomendação e Mobilidade
Sistemas de Recomendação e MobilidadeSistemas de Recomendação e Mobilidade
Sistemas de Recomendação e Mobilidade
 

Último

PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
Guardioes Digitais em ação: Como criar senhas seguras!
Guardioes Digitais em ação: Como criar senhas seguras!Guardioes Digitais em ação: Como criar senhas seguras!
Guardioes Digitais em ação: Como criar senhas seguras!
Jonathas Muniz
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 

Último (7)

PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
Guardioes Digitais em ação: Como criar senhas seguras!
Guardioes Digitais em ação: Como criar senhas seguras!Guardioes Digitais em ação: Como criar senhas seguras!
Guardioes Digitais em ação: Como criar senhas seguras!
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 

Computação Científica com Python, Numpy e Scipy

  • 1. Computação Científica com Python A cobra também é inteligente! 1
  • 2. Membro do Muriçoca Labs - Labs de Projetos com Machine Learning 2
  • 3. O que é Python ? 6=7%#E!)")F#C>)&& G."#A$%)F.&H&.8IA%.*1&-=$:#.$)7,J& !"#$%&'()*+&)*,'& !"#$%&$'()*') -."&#&#$&/0121345& +,-$,&(&./-) &&!"#$%&#& *')&01-)#23'0) 444)5-()%(&) 6"#1&7') 6"(+0'6)') 89:"0)*') 444);(&) &+,'#*',) <"<0"-1':&) 444)=)+&:-1'6) $"$&#1') +>):90:%0-?) +&*,/-444) *&*-6?+,-:'66 :%+!A*1*.:BA%*1-#7A*1"ACAD1,& &('#1-?) "#1',8&:'@) 6)%!7.%7#819:#;+1<=>;+1;+?@1,& Marcel Caraciolo - @marcelcaraciolo 3
  • 4. Ciclo de Desenvolvimento em P&D 3#%$/$()967*2$2 !"#$%&'$()* <&/59;&=967*2 +,$-.$/&0(12 3(:;&/$28*/2 345&/&67*28$2 .98*/2 .98*/2 Marcel Caraciolo - @marcelcaraciolo 4
  • 5. Ciclo de Desenvolvimento em P&D 3#%$/$()967*2$2 !"#$%&'$()* <&/59;&=967*2 +,$-.$/&0(12 3(:;&/$28*/2 345&/&67*28$2 .98*/2 .98*/2 Marcel Caraciolo - @marcelcaraciolo 5
  • 6. Uso de software facilita muito! 012*2-#"+,-$3$ 4)*(".)5"+,-$ !"#$%&'$()* 4(5657$%8% +,$-./$0&1(** !"#"$%-"./*)*$ !"#"$%&'()*)+,-$ .'/,'#$% !"#$%&'()"()$% .'/0"1'23'* *('+,"()$%*--% Marcel Caraciolo - @marcelcaraciolo 6
  • 7. Uso de Python facilita mais ainda!! 23+%+/.-4(/)5) ! 6$%#-0$7-4(/ !"#$%&'$()*+ 6#.*').'57+, ,-$./0$1&2(++ 4/8.+,1, ,-.-)!/-01%$%) !"#$%$&'()*+),-*(%) 2$34/+, !"#$%&$'()#*+, (-54/+,1+ -./*"0+,1, Marcel Caraciolo - @marcelcaraciolo 7
  • 8. 8
  • 9. Aquisição de Dados http://archive.ics.uci.edu/ml/ Repositórios de Dados UCI, MovieLens, AWS, KDD, etc. Marcel Caraciolo - @marcelcaraciolo 9
  • 10. Usando o loadtxt() from numpy import loadtxt def class2int(s): ! if s == 'Iris-setosa': ! ! return 1 ! elif s == 'Iris-versicolor': ! ! return 0 http://archive.ics.uci.edu/ml/datasets/Iris ! else: ! ! return 2 %n1, n2, n3, n4, class 5.1,3.5,1.4,0.2,Iris-setosa 4.9,3.0,1.4,0.2,Iris-setosa 4.7,3.2,1.3,0.2,Iris-setosa ary1 = loadtxt('iris.data', delimiter=',', 4.6,3.1,1.5,0.2,Iris-setosa 5.0,3.6,1.4,0.2,Iris-setosa converters={4: lambda s: class2int(s)}, 5.4,3.9,1.7,0.4,Iris-setosa skiprows=1) 4.6,3.4,1.4,0.3,Iris-setosa ... print ary1 http://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html#numpy.loadtxt Marcel Caraciolo - @marcelcaraciolo 10
  • 12. Bibliotecas como BeautifulSoap <html> <body> <table> <tr> from BeautifulSoup import BeautifulSoup <td> 3.0 </td> soup = BeautifulSoup(''.join(html)) <td> 4.0 </td> table = soup.find('table') </tr> 3.0 4.0 <tr>   <td> 5.0 6.2 rows = table.findAll('tr') 5.0 </td> for tr in rows: <td> 6.2 cols = tr.findAll('td') </td> for td in cols: </tr> </table> text = ''.join(td.find(text=True)) </body> </html> print text+"|", print $ sudo aptitude install python-beautifulsoup Marcel Caraciolo - @marcelcaraciolo 12
  • 13. Análise dos Dados !"#$%& '()$%& ! "#$%&$'#()*( ! >?)&8#()*(-8'#($@A*8( +*,,-.*$'-/(0-,-( *.(=B'C#$(0-,-( 1#.0&'-23#( ',-:-8C-,(1#.( 14*$561-( A*'#,*/(*(.-',4D*/( ! 789*:,-(;4$*-,<( ! E-/*-)#(*.("F(:*.( =,#1*//-.*$'#( #G.4D-)#( !!"#$%&&'''()*+$,(-./!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"#$%&&012$,()*+$,(-./! Marcel Caraciolo - @marcelcaraciolo 13
  • 14. História do Numpy e Scipy Criado por Eric Jones e Travis Oliphant em 2001 Atualmente mantida por uma comunidade de usuários http://conference.scipy.org/scipy2011/ http://enthought.com Marcel Caraciolo - @marcelcaraciolo 14
  • 15. Numpy e Scipy como ambiente científico Capaz de competir com outros softwares matemáticos como Matlab, Octave, R, Scilab, etc. Ipython - http://ipython.org/ Ferramenta essencial para todo desenvolvedor que vai trabalhar com Python + Scipy + Numpy + Matplotlib Marcel Caraciolo - @marcelcaraciolo 15
  • 16. Numpy e Scipy como ambiente científico Comparando com o Matlab http://www.scipy.org/NumPy_for_Matlab_Users Scipy/Numpy Matlab Python com múltiplos argumentos, Definição de função de Matlab bem valores default, etc. restrita Programação Orientada a Objetos Programação Procedural Gratuito Pago Marcel Caraciolo - @marcelcaraciolo 16
  • 17. Numpy e Scipy como ambiente científico Mas eu gosto de plotar gráficos! Matplotlib - http://matplotlib.sourceforge.net/ Python 2D Plotting library MATLAB plotting framework - matplotlib.pyplot http://www.scipy.org/Cookbook/Matplotlib Marcel Caraciolo - @marcelcaraciolo 17
  • 18. Plotando com o PyLab !!!"#$%$&'()*+,&*-"*./+*01" $ ipython --pylab >>> plot(x,sin(x)) >>> plot(x,cos(x)) >>> legend([‘sin’, ‘cos’]) 20 Marcel Caraciolo - @marcelcaraciolo 18
  • 19. Funcionalidades do Scipy Organizado em subpacotes, abrangendo vários domínios da !"#$%&#'(%)')*+,)&,-$%./ computação científica ! !"#$%&'$()*+,*-./0$1)2+-3*$/"$%#+%()*45"&)-*(),6%&)-* ($*1),0.2$78)*1&+%269&1$ Marcel Caraciolo - @marcelcaraciolo 19
  • 20. Mas por onde começo ? Scipy e Numpy disponível para diversas plataformas http://new.scipy.org/download.html !"#$%&%'()*+)#*,-+.&)# ! ou !"#$%&'()*&+#($,-./'0&$121&+#3'2'-)'(&$01)13,241( 5))$677-'89("#$%9,2:7+,8-0,1+95)40& $ !sudo apt-get install python-numpy ! ,; $ sudo apt-get install python-scipy ! !"#$%&#'()*#!++'",#-.)$)/0", ! !"#$%&#'()*#!++'",#-.)$*1(", 5))$677-;4$%9("#$%9,2:7 5))$6778889("#$%9,2: Marcel Caraciolo - @marcelcaraciolo 20
  • 21. Explorando o Numpy !"#$%&'()%*%*+,-./ Arrays e Matrizes ! !""#$% >>> import numpy as np ! &#'"()*% >>> a = np.array([0,1,2,3,4,5], [10,11,12,13,14,15], 0 1 2 3 4 5 [20,21,22,23,24,25], [30,31,32,33,34,35], 10 11 12 13 14 15 [40,41,42,43,44,45], 20 21 22 23 24 25 [50,51,52,53,54,55])   30 31 32 33 34 35 !!!"#$%&'()* !""!#$%&'()*+ 40 41 42 43 44 45 50 51 52 53 54 55 !!!"#$+(&+(* !""!#$%%))'(),*'((((((( %,)'(,,**+ !!!"#$(&,* !""!#$%-'.-'--'&-')-',-*+ !!!"#$%&&%'&&%( #))#*+$$%,'"%%'"%-('" $-,'"-%'"--((. Marcel Caraciolo - @marcelcaraciolo 21
  • 22. Explorando o Numpy !"#$%&'()%*%*+,-./ Arrays e Matrizes ! !""#$% >>> import &#'"()*% numpy !as np >>> a = np.matrix([0,1,2,3,4,5], 0 1 2 3 4 5 [10,11,12,13,14,15], [20,21,22,23,24,25], 10 11 12 13 14 15 [30,31,32,33,34,35], 20 21 22 23 24 25 [40,41,42,43,44,45], [50,51,52,53,54,55]) 30 31 32 33 34 35   40 41 42 43 44 45 >>> m_t = a.transpose() 50 51 52 53 54 55 >>> mask = a < 30 >>> a[mask] #Matriz com valores < 30 Marcel Caraciolo - @marcelcaraciolo 22
  • 23. Explorando o Numpy !"#$%&'()%*%*+,-./ e Matrizes Operação de Arrays ! !"#$%&'#()*+,)-$$%.()#)/%0$12#( ! 3$1%&4+)5#)6#0+$#( numpy.zeros((M,N)) Vetor MxN de zeros numpy.ones((M,N)) Vetor MxN de ums numpy.empty((M,N)) Vetor MxN vazio (qualquer valor) numpy.zeros_like(m) Vetor de zeros com formato de m numpy.ones_like(m) Vetor de ums com formato de m numpy.empty_like(m) Vetor de vazio com formato de m numpy.random.random((M,N)) Vetor com valores aleatórios numpy.identity(N) Matriz Identidade, N x N numpy.array([(1,2,3),(4,5,6)]) Especifica os valores da matriz numpy.matrix([[1,2,3],[4,5,6]]) Especifica os valores da matriz numpy.arange(0.,1.,.3) Vetor com Inicio I, fim F, passo P numpy.linspace(0.1, 1, 10) Vetor com N valores de I à F Marcel Caraciolo - @marcelcaraciolo 23
  • 24. Explorando o Numpy Arrays e Matrizes >>> import numpy as np >>> a = np.array([1,2,3], [4,5,6], [7,8,9])   >>> np.mean(a[0,:]) #media >>> np.std(a[:,1]) #desvio-padrao >>> np.min(a) #minimo >>> np.max(a) #maximo >>> b = a.T #transposta >>> m = np.dot(a,b) #multipl. >>> r = np.random.random((100,00)) >>> i = np.linalg.inv(r) #inversa >>> eigval, eigvec = numpy.linalg.eig(r) #auto-vetores Marcel Caraciolo - -@marcelcaraciolo Marcel Caraciolo @marcelcaraciolo 24
  • 25. Explorando o Scipy Álgebra Linear (scipy.linalg) >>> import numpy as np >>> a = np.array([1,2,3], [4,5,6], [7,8,9])   >>> np.mean(a[0,:]) >>> np.std(a[:,1]) >>> np.min(a) >>> np.max(a) >>> b = a.T >>> m = np.dot(a,b) >>> r = np.random.random((100,00)) >>> i = np.linalg.inv(r) >>> eigval, eigvec = numpy.linalg.eig(r) Marcel Caraciolo - @marcelcaraciolo 25
  • 26. Explorando o Scipy Álgebra Linear (scipy.linalg) Resolvendo sistemas de equações >>> import numpy as np >>> from scipy import linalg >>> a = np.matrix(‘1 1 1; 1 -2 2; 0 1 2’) >>> b = np.matrix(‘0;4;2’) #Resolve a eq ax= b >>> x = linalg.solve(a,b) >>> print x Marcel Caraciolo - @marcelcaraciolo 26
  • 27. Explorando o Scipy Estatísticas (scipy.stats) >>> from scipy import stats # 100 random values from a Poisson distribution with mu = 1.0 >>> s = stats.norm.rvs(loc=0.0,scale=1.0, size=100) # basic statistics from the matrix. >>> n, min_max, mean, var, skew, kurt = stats.describe(s) >>> print("Number of elements: {0:d}".format(n)) >>> print("Minimum: {0:8.6f} Maximum: {1:8.6f}".format(min_max[0], min_max[1])) >>> print("Mean: {0:8.6f}".format(mean)) >>> print("Variance: {0:8.6f}".format(var)) >>> print("Skew : {0:8.6f}".format(skew)) >>> print("Kurtosis: {0:8.6f}".format(kurt)) Marcel Caraciolo - @marcelcaraciolo 27
  • 28. Explorando o Scipy Clusterização (scipy.cluster) !"#$%&'()*+,-./$0(1230"#$%&'4 Algoritmos de Agrupamento ! !"#$%&'($)*+,*!#%-./(,0'$ ! !'-/"(,0',1*/.,0/)*$*!"#$%&'()!"#*+,%'- Atualmente, apenas o K-Means ! ./012,341(+$(%52$&+,6%+1(&71('85$29,',1&%+1 Marcel Caraciolo - @marcelcaraciolo 28
  • 29. Explorando o Scipy !"#$%&'()*+,-./$0(1230"#$%&'4 Clusterização (scipy.cluster) ! !"#$%&' ( ) * !"#$%&'+, 01 2#,3&4+5#6+ - . 7859$,$:56;<,2#,3&:++;=;3:>?',#,2#,2;+5@A3;:+ / Fonte: http://www.slideshare.net/santiagosilas/computao-cientfica-com-numpy-e-scipy-7797060 Marcel Caraciolo - @marcelcaraciolo 29
  • 30. Explorando o Scipy !"#$%&'()*&+,-#./0123' Clusterização (scipy.cluster) ! !"#$%&'(')*%+' Marcel Caraciolo - @marcelcaraciolo 30
  • 31. Projetos Scikits Projetos interessantes usando o Scipy/Numpy Scikit-learn http://scikit-learn.sourceforge.net/stable/ Toolkit de aprendizagem de máquina com algoritmos como PCA, SVM, Bayes, etc. Divisi2 http://csc.media.mit.edu/docs/divisi2/ Toolkit para representação de matrizes esparsas e uso de SVD Pandas http://statsmodels.sourceforge.net/ Toolkit para trabalho com dados estatísticos com Scipy e Numpy Sympy - http://code.google.com/p/sympy/ Toolkit para manipulação para matemática simbólica *Crab https://github.com/muricoca/crab Toolkit para construção de sistemas de recomendação com Scipy e Numpy Marcel Caraciolo - @marcelcaraciolo 31
  • 32. Clusterização (scipy.cluster) !"#$%&'()*+,-./$0(1230"#$%&'4 Algoritmos de Agrupamento ! !"#$%&'($)*+,*!#%-./(,0'$ ! !'-/"(,0',1*/.,0/)*$*!"#$%&'()!"#*+,%'- Atualmente, apenas o K-Means ! ./012,341(+$(%52$&+,6%+1(&71('85$29,',1&%+1 Marcel Caraciolo - @marcelcaraciolo 32
  • 33. Dúvidas? 1. Documentação http://docs.scipy.org/doc/ 1I. Tutoriais http://scipy-lectures.github.com/ III. Listas de Discussão http://www.scipy.org/Mailing_Lists http://pyscience-brasil.wikidot.com/ IV. Livros Computação Científica com Python por Flávio Coelho, Editora Lulu.com Marcel Caraciolo - @marcelcaraciolo 33
  • 34. Computação Científica com Python A cobra também é inteligente! marcel{@orygens, @muricoca} . com 34