Skip to content

Instantly share code, notes, and snippets.

@jrgavilanes
Created February 7, 2023 17:55
Show Gist options
  • Select an option

  • Save jrgavilanes/6ead714922169d0972f4b678207c34bb to your computer and use it in GitHub Desktop.

Select an option

Save jrgavilanes/6ead714922169d0972f4b678207c34bb to your computer and use it in GitHub Desktop.
python for datascience

python-datascicence

Notas curso

https://codigofacilito.com/videos/crear-arreglos

Crea entorno e instala librerias

$ python -m venv venv
$ . venv/Scripts/activate       // windows
$ . venv/bin/activate           // linux
$ pip install ipython numpy     // pip install -r requirements.txt
$ code .

Notas Python

en python es falso: False None "" '' 0 0.0 [] {} ()

Notas Numpy

Funciones básicas de arrays

import numpy as np

a = np.array([1,2,3,4,5])
In [6]: a.dtype
Out[6]: dtype('int32')

In [7]: a = np.array([1,2,3,4,5], dtype=float)
In [8]: a.dtype
Out[8]: dtype('float64')
In [9]: a
Out[9]: array([1., 2., 3., 4., 5.])

In [13]: a = np.arange(0,10)
In [14]: a
Out[14]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

In [15]: a = np.arange(0,10,2)
In [16]: a
Out[16]: array([0, 2, 4, 6, 8])

In [17]: np.zeros(10)
Out[17]: array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])

In [18]: np.ones(5)
Out[18]: array([1., 1., 1., 1., 1.])
In [19]: np.ones(5, dtype=int)
Out[19]: array([1, 1, 1, 1, 1])

In [24]: np.empty(10, dtype=int)
Out[24]: 
array([         0, 1072693248,          0, 1072693248,          0, 
       1072693248,          0, 1072693248,          0, 1072693248])

In [26]: np.random.randint(0,100,10)
Out[26]: array([28, 25, 97, 39, 28, 71, 59, 90, 78,  2])

Obtener elementos del array

In [27]: x = np.random.randint(0,10,10)

In [28]: x
Out[28]: array([9, 1, 3, 3, 8, 5, 7, 5, 6, 7])

In [29]: x[-1]
Out[29]: 7

In [30]: x[0]
Out[30]: 9

In [31]: len(x)
Out[31]: 10

In [32]: x[-1] = 100

In [33]: x
Out[33]: array([  9,   1,   3,   3,   8,   5,   7,   5,   6, 100])

Subarrays, copias y vistas

In [35]: a = np.random.randint(0,10,20)

In [36]: a[:5]
Out[36]: array([9, 2, 0, 4, 6])

In [37]: a
Out[37]: array([9, 2, 0, 4, 6, 6, 9, 8, 3, 1, 4, 9, 3, 7, 1, 0, 2, 4, 3, 0])

In [38]: b = a.copy()

In [39]: b
Out[39]: array([9, 2, 0, 4, 6, 6, 9, 8, 3, 1, 4, 9, 3, 7, 1, 0, 2, 4, 3, 0])

In [40]: b[0]=90

In [41]: b
Out[41]: 
array([90,  2,  0,  4,  6,  6,  9,  8,  3,  1,  4,  9,  3,  7,  1,  0,  2,
        4,  3,  0])

In [42]: a
Out[42]: array([9, 2, 0, 4, 6, 6, 9, 8, 3, 1, 4, 9, 3, 7, 1, 0, 2, 4, 3, 0])

In [43]: c = a.view()

In [44]: c
Out[44]: array([9, 2, 0, 4, 6, 6, 9, 8, 3, 1, 4, 9, 3, 7, 1, 0, 2, 4, 3, 0])

In [45]: c[0]=80

In [46]: c
Out[46]: 
array([80,  2,  0,  4,  6,  6,  9,  8,  3,  1,  4,  9,  3,  7,  1,  0,  2,
        4,  3,  0])

In [47]: a
Out[47]: 
array([80,  2,  0,  4,  6,  6,  9,  8,  3,  1,  4,  9,  3,  7,  1,  0,  2,
        4,  3,  0])

In [53]: a = np.arange(0,10)
In [55]: a
Out[55]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
In [54]: a[0:10:2]
Out[54]: array([0, 2, 4, 6, 8])


In [57]: a = np.random.randint(0,100,10)
In [58]: a
Out[58]: array([39, 35, 33, 69, 54,  1, 94,  0,  5, 18])

In [59]: a[[0,5,9]]
Out[59]: array([39,  1, 18])

In [61]: b = np.array([1,2,3,4,5])
In [62]: b
Out[62]: array([1, 2, 3, 4, 5])

In [63]: b[[True, False, False, False, True]]
Out[63]: array([1, 5])

In [64]: b[[0,-1]]
Out[64]: array([1, 5])

Vectorizar funciones

In [69]: b
Out[69]: array([1, 2, 3, 4, 5])

In [65]: def cuadrado(x:int) -> int:
    ...:     return x*x
    ...: 

In [66]: cuadrado(3)
Out[66]: 9

In [67]: haz_cuadrado = np.vectorize(cuadrado)

In [68]: haz_cuadrado(b)
Out[68]: array([ 1,  4,  9, 16, 25])

Vectorizar con lambdas

In [69]: b
Out[69]: array([1, 2, 3, 4, 5])

In [70]: vector = np.vectorize(lambda valor: valor*valor)

In [71]: vector(b)
Out[71]: array([ 1,  4,  9, 16, 25])

Matrices

In [73]: A = np.array([
    ...: [1,2,3,4,5],
    ...: [10,20,30,40,50],
    ...: [100,200,300,400,500]])

In [74]: A
Out[74]: 
array([[  1,   2,   3,   4,   5],
        [ 10,  20,  30,  40,  50],
        [100, 200, 300, 400, 500]])

In [75]: A.ndim
Out[75]: 2

In [76]: A.shape
Out[76]: (3, 5)

In [77]: A[1][1]
Out[77]: 20

In [78]: A[0][0]
Out[78]: 1

In [79]: A[-1][-1]
Out[79]: 500

In [80]: A
Out[80]: 
array([[  1,   2,   3,   4,   5],
    [ 10,  20,  30,  40,  50],
    [100, 200, 300, 400, 500]])

In [81]: A[0,0]
Out[81]: 1

In [82]: A[1,1]
Out[82]: 20

In [83]: A[2,4]
Out[83]: 500

In [87]: A[1,:3]
Out[87]: array([10, 20, 30])

In [90]: A[-1,-3:]
Out[90]: array([300, 400, 500])

A[:,3]
Out[91]: array([  4,  40, 400])

In [92]: A[[0,2],3]
Out[92]: array([  4, 400])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment