Clustering com numpy e Cython Anderson Berg XIII Encontro do PUG-PE
Agrupamento de dados
K-Means
Matrizes
Exemplo simples >>> from numpy import * >>>a = arange(10).reshape(2,5) >>>a array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]])
Criação de arrays >>> a = array( [2,3,4] ) >>> b = array( [ (1.5,2,3), (4,5,6) ] ) >>> b array([[ 1.5, 2. , 3. ], [ 4. , 5. , 6. ]]) >>> zeros( (3,4) ) array([[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]]) >>> ones( (2,3,4), dtype=int16 ) array([[[ 1, 1, 1, 1], [ 1, 1, 1, 1], [ 1, 1, 1, 1]], [[ 1, 1, 1, 1], [ 1, 1, 1, 1], [ 1, 1, 1, 1]]], dtype=int16)
Outras Operações >>> b = arange( 4 ) >>> b**2 array([0, 1, 4, 9]) >>> a = random.random((2,3)) >>> a array([[ 0.6903007 , 0.39168346, 0.16524769], [ 0.48819875, 0.77188505, 0.94792155]])
Ainda outras operações >>> a.sum() 3.4552372100521485 >>> a.min() 0.16524768654743593 >>> a.max() 0.9479215542670073 >>> a[:,1] array([0.39168346, 0.77188505]) >>> sum(a[:,1]) 1.1635685099999999
Primeiros Passos helloworld.pyx: print "Hello World" setup.py: from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext setup( cmdclass = {'build_ext': build_ext}, ext_modules = [Extension("helloworld", ["helloworld.pyx"])] ) $ python setup.py build_ext --inplace >>> import helloworld Hello World
Advanced Mode def primes(int kmax): cdef int n, k, i cdef int p[1000] result = [] if kmax > 1000: kmax = 1000 k = 0 n = 2 while k < kmax: i = 0 while i < k and n % p[i] != 0: i = i + 1 if i == k: p[k] = n k = k + 1 result.append(n) n = n + 1 return result
Sem Cython Com Cython
Clustering com numpy e Cython Anderson Berg - @berg_pe XIII Encontro do PUG-PE

Clustering com numpy e cython

  • 1.
    Clustering com numpye Cython Anderson Berg XIII Encontro do PUG-PE
  • 2.
  • 3.
  • 4.
  • 7.
    Exemplo simples >>> fromnumpy import * >>>a = arange(10).reshape(2,5) >>>a array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]])
  • 8.
    Criação de arrays >>>a = array( [2,3,4] ) >>> b = array( [ (1.5,2,3), (4,5,6) ] ) >>> b array([[ 1.5, 2. , 3. ], [ 4. , 5. , 6. ]]) >>> zeros( (3,4) ) array([[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]]) >>> ones( (2,3,4), dtype=int16 ) array([[[ 1, 1, 1, 1], [ 1, 1, 1, 1], [ 1, 1, 1, 1]], [[ 1, 1, 1, 1], [ 1, 1, 1, 1], [ 1, 1, 1, 1]]], dtype=int16)
  • 9.
    Outras Operações >>> b= arange( 4 ) >>> b**2 array([0, 1, 4, 9]) >>> a = random.random((2,3)) >>> a array([[ 0.6903007 , 0.39168346, 0.16524769], [ 0.48819875, 0.77188505, 0.94792155]])
  • 10.
    Ainda outras operações >>>a.sum() 3.4552372100521485 >>> a.min() 0.16524768654743593 >>> a.max() 0.9479215542670073 >>> a[:,1] array([0.39168346, 0.77188505]) >>> sum(a[:,1]) 1.1635685099999999
  • 12.
    Primeiros Passos helloworld.pyx: print "HelloWorld" setup.py: from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext setup( cmdclass = {'build_ext': build_ext}, ext_modules = [Extension("helloworld", ["helloworld.pyx"])] ) $ python setup.py build_ext --inplace >>> import helloworld Hello World
  • 13.
    Advanced Mode def primes(intkmax): cdef int n, k, i cdef int p[1000] result = [] if kmax > 1000: kmax = 1000 k = 0 n = 2 while k < kmax: i = 0 while i < k and n % p[i] != 0: i = i + 1 if i == k: p[k] = n k = k + 1 result.append(n) n = n + 1 return result
  • 14.
    Sem Cython Com Cython
  • 15.
    Clustering com numpye Cython Anderson Berg - @berg_pe XIII Encontro do PUG-PE