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
Anúncio

Recomendados

Construindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduce
Marcel Caraciolo
 
(A13) LabMM3 - JavaScript - Arrays multidimensionais
(A13) LabMM3 - JavaScript - Arrays multidimensionais
Carlos Santos
 
Olá Python!
Olá Python!
Henrique Gabriel Gularte Pereira
 
(A12) LabMM3 - JavaScript - Arrays
(A12) LabMM3 - JavaScript - Arrays
Carlos Santos
 
Introdução a python módulo b
Introdução a python módulo b
Jader Gabriel
 
Tcc apresentacao1
Tcc apresentacao1
Luis Henrique Lindner
 
Fugindo das armadilhas do MVC
Fugindo das armadilhas do MVC
Ediaimo Borges
 
Proxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testes
Stanislaw Pusep
 
Perl Moderno, dia1
Perl Moderno, dia1
garux
 
Introduçã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
Luis Gustavo Almeida
 
Busca textual com solr e sunspot no rails
Busca textual com solr e sunspot no rails
Maurício Linhares
 
Jug bizus (4)
Jug bizus (4)
JugVale
 
Jug bizus
Jug bizus
Rodrigo Barbosa
 
Hibernate efetivo (COALTI-2014 / ALJUG)
Hibernate efetivo (COALTI-2014 / ALJUG)
Rafael Ponte
 
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 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 Brasil
Marcel Caraciolo
 
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 Foursquare
Marcel Caraciolo
 
Redes Neurais e Python
Redes Neurais e Python
pugpe
 
Orientação a Objetos em Python
Orientação a Objetos em Python
Luciano Ramalho
 
Python para iniciantes
Python para iniciantes
richardsonlima
 
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 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...
Marcel Caraciolo
 
Aprendendo python
Aprendendo python
Victor Marcelino
 
Python - 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 Educativas
Marcel Caraciolo
 
Crab: A Python Framework for Building Recommender Systems
Crab: A Python Framework for Building Recommender Systems
Marcel Caraciolo
 

Mais conteúdo relacionado

Mais procurados (7)

Perl Moderno, dia1
Perl Moderno, dia1
garux
 
Introduçã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
Luis Gustavo Almeida
 
Busca textual com solr e sunspot no rails
Busca textual com solr e sunspot no rails
Maurício Linhares
 
Jug bizus (4)
Jug bizus (4)
JugVale
 
Jug bizus
Jug bizus
Rodrigo Barbosa
 
Hibernate efetivo (COALTI-2014 / ALJUG)
Hibernate efetivo (COALTI-2014 / ALJUG)
Rafael Ponte
 
Perl Moderno, dia1
Perl Moderno, dia1
garux
 
Introduçã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
Luis Gustavo Almeida
 
Busca textual com solr e sunspot no rails
Busca textual com solr e sunspot no rails
Maurício Linhares
 
Jug bizus (4)
Jug bizus (4)
JugVale
 
Hibernate efetivo (COALTI-2014 / ALJUG)
Hibernate efetivo (COALTI-2014 / ALJUG)
Rafael Ponte
 

Destaque (20)

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 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 Brasil
Marcel Caraciolo
 
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 Foursquare
Marcel Caraciolo
 
Redes Neurais e Python
Redes Neurais e Python
pugpe
 
Orientação a Objetos em Python
Orientação a Objetos em Python
Luciano Ramalho
 
Python para iniciantes
Python para iniciantes
richardsonlima
 
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 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...
Marcel Caraciolo
 
Aprendendo python
Aprendendo python
Victor Marcelino
 
Python - 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 Educativas
Marcel Caraciolo
 
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 Networks
Marcel Caraciolo
 
Palestra: 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 Systems
Marcel Caraciolo
 
Mining 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 ?
Marcel Caraciolo
 
Python e Aprendizagem de Máquina (Inteligência Artificial)
Python e Aprendizagem de Máquina (Inteligência Artificial)
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 Brasil
Marcel Caraciolo
 
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 Foursquare
Marcel Caraciolo
 
Redes Neurais e Python
Redes Neurais e Python
pugpe
 
Orientação a Objetos em Python
Orientação a Objetos em Python
Luciano Ramalho
 
Python para iniciantes
Python para iniciantes
richardsonlima
 
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 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...
Marcel Caraciolo
 
Python - 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 Educativas
Marcel Caraciolo
 
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 Networks
Marcel Caraciolo
 
Palestra: 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 Systems
Marcel Caraciolo
 
Python 3.x - Ihh.. E agora ? Como faço ?
Python 3.x - Ihh.. E agora ? Como faço ?
Marcel Caraciolo
 
Anúncio

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

Introdução ao framework CakePHP
Introdução ao framework CakePHP
igorpimentel
 
346
346
iurdpt
 
346
346
iurdpt
 
Livro_VersãoPublicada_STL_ excelavancado.pdf
Livro_VersãoPublicada_STL_ excelavancado.pdf
AdrianoCori
 
Ms05-resmat
Ms05-resmat
Luciana Costa
 
3
3
Pelo Siro
 
Módulo 5 análise das demonstrações contábeis
Módulo 5 análise das demonstrações contábeis
PUC Minas
 
apostila.pdf
apostila.pdf
DenilsonNunes13
 
Methodologies background hiberno romanesque metalwork
Methodologies background hiberno romanesque metalwork
Martin Brown
 
Otimizaçã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...
MARCO AURÉLIO BICALHO DE ABREU CHAGAS
 
Apresentações alta performance
Apresentações alta performance
César Ribeiro
 
Pg2
Pg2
csmp
 
Pgads42
Pgads42
csmp
 
Bd racismo
Bd racismo
Clara Cardoso Pereira
 
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úblicas
Sustentare Escola de Negócios
 
Atm
Atm
Luis Filipe Silva
 
Python modulo a
Python modulo a
NatyTGomes
 
Introdução a python módulo a
Introdução a python módulo a
Jader Gabriel
 
Pythonbasico
Pythonbasico
Wesley Rodrigues
 
Introdução ao framework CakePHP
Introdução ao framework CakePHP
igorpimentel
 
Livro_VersãoPublicada_STL_ excelavancado.pdf
Livro_VersãoPublicada_STL_ excelavancado.pdf
AdrianoCori
 
Módulo 5 análise das demonstrações contábeis
Módulo 5 análise das demonstrações contábeis
PUC Minas
 
Methodologies background hiberno romanesque metalwork
Methodologies background hiberno romanesque metalwork
Martin Brown
 
Otimizaçã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...
MARCO AURÉLIO BICALHO DE ABREU CHAGAS
 
Apresentações alta performance
Apresentações alta performance
César Ribeiro
 
Pg2
Pg2
csmp
 
Pgads42
Pgads42
csmp
 
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úblicas
Sustentare Escola de Negócios
 
Python modulo a
Python modulo a
NatyTGomes
 
Introdução a python módulo a
Introdução a python módulo a
Jader Gabriel
 
Anúncio

Mais de Marcel Caraciolo (18)

Como 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)
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...
Marcel Caraciolo
 
Como 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ório
Marcel Caraciolo
 
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 3
Marcel Caraciolo
 
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 Scripts
Marcel Caraciolo
 
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 Python
Marcel Caraciolo
 
Python, 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 ?
Marcel Caraciolo
 
Aula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursos
Marcel Caraciolo
 
Arquivos 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?
Marcel Caraciolo
 
Construindo 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 Mobilidade
Marcel Caraciolo
 
Como 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)
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...
Marcel Caraciolo
 
Como 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ório
Marcel Caraciolo
 
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 3
Marcel Caraciolo
 
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 Scripts
Marcel Caraciolo
 
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 Python
Marcel Caraciolo
 
Python, 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 ?
Marcel Caraciolo
 
Aula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursos
Marcel Caraciolo
 
Arquivos 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?
Marcel Caraciolo
 
Construindo 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 Mobilidade
Marcel Caraciolo
 

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