Giter Club home page Giter Club logo

numpy-python's Introduction

Numpy-python

NumPy es uno de los paquetes que debes poder usar y saber si quieres hacer ciencia de datos con Python.

Que es numpy?

NumPy es el paquete fundamental para la computación científica en Python. Es una biblioteca de Python que proporciona un objeto de matriz multidimensional, varios objetos derivados (como matrices y matrices enmascaradas). Para trabajar los ejemplos, necesitamos instalar además de NumPy, la libreria matplotlib

El objeto principal de NumPy es la matriz multidimensional homogénea.

  matriz = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

Es multidimensional por que cuenta con varias dimensiones a diferencias de las listas comunes en python que solo cuentan con una dimension, con numpy se pueden crear matrices de una, dos, tres, cuatros hasta N dimensiones. En el ejemplo anterior la variable "matriz", es un array con dos dimensiones:

  print(matriz) 
  ''' Resultado:
  [[1 2 3]
   [4 5 6]
   [7 8 9]]
  '''

Es de dos dimensiones porque cuenta con filas y columnas, en el ejemplo vemos que es un array con tres filas y tres columnas.

Tambien, vemos que la matriz de numpy es homogenea, esto en razon que todos sus elementos necesariamente son del mismo tipo, es decir no puede existir en un array elementos como numeros enteros, con elementos con numeros flotantes, por lo tanto tienen que ser unicamente del mismo tipo, esto ayuda a poder trabajar facilmente con los mismos y de una forma mas eficiente. En numPy las dimensiones se llaman ejes.

La clase de matriz de NumPy se llama ndarray. También es conocido por el alias array. Los atributos más importantes de un ndarrayobjeto son:

          import numpy as np
          
          a = np.arange(15).reshape(3, 5)
          # con np.arange(15) generamos 15 numeros aleatorios, desl 0 al 14 exluyento al 15
          # luego, con esos numeros creamos un array de tres filas y 5 columnas
          print(a)
            '''
                [[ 0,  1,  2,  3,  4],
                 [ 5,  6,  7,  8,  9],
                 [10, 11, 12, 13, 14]]
            '''
          print(a.shape) # Resultado:   (3, 5)  
          '''
            Esta es una tupla de enteros que indica el tamaño de la matriz en cada dimensión. Para una matriz con n filas y m columnas,                   shapeserá (n,m).
          '''
          print(a.ndim) # Resultado: 2
          '''
           El número de ejes (dimensiones) de la matriz, en este caso vemos que tiene dos ejes, por lo tanto dos dimensiones, filas y                   columnas
          '''

          print(a.dtype.name) # Resultado 'int64' > un objeto que describe el tipo de los elementos en la matriz, en este caso vemos que               son numeros enteros.
          
          print(a.itemsize) # Resultado 8 > el tamaño en bytes de cada elemento de la matriz.
          
          print(a.size) # Resultado 15 > el número total de elementos de la matriz.

Creacion de arrays

Puede crear una matriz a partir de una lista [1,2,3,4] o tupla (1,2,3,4) normal de Python.

      import numpy as np

      a = np.array([2, 3, 4])
      
      print(a)
      print(type(a))

      '''
      [1 2 3 4]
      <type 'numpy.ndarray'>
      '''

      b = np.array([(1,2,3,4)])
      print(a)
      print(a.shape)
      '''
        [[1 2 3 4]]
        (1, 4)
      '''

Para crear secuencias de números, NumPy proporciona la función 'arange' que es análogo a range incorporado en Python, pero devuelve un formación.

      c = np.arange(10, 50, 5)
      print(c)
      ''' Resultado
      [10 15 20 25 30 35 40 45]
      '''

Vemos que ha crado un array de una dimension, con 8 elementos, esto en razon que el primer argumento que le hemos pasado, significa el numero desde donde comenzara a generase, el segundo argumento es el numero hasta donde se generara, en este caso 49 ya que 50 se excluye, y por ultimo le hemos indicado que esos numeros generados sean de a 5, es decir si no le hubieramos pasado ese argumento, generaria una lista [10, 11,12,..,49].

Operaciones basicas

Los operadores aritméticos en las matrices se aplican por elementos. Una nueva matriz es creado y llenado con el resultado.

# Suma

    arr_1 = np.array([1,2,3,4])
    print('arr_1',arr_1)
    arr_2 = np.arange(4)
    print('arr_2',arr_2)
    
    suma = arr_1 + arr_2
    print("Restulatado suma de arrays (arr_1 + arr_2): ",suma)
    
    '''
    ('arr_1', array([1, 2, 3, 4]))
    ('arr_2', array([0, 1, 2, 3]))
    ('Restulatado suma de arrays (arr_1 + arr_2): ', array([1, 3, 5, 7]))
    '''

Como se observa, la operacion de suma, ha generado una nueva matriz con la suma de cada uno de sus elementos.

# Resta

Utilizando las mismas variables definidas

      resta = arr_1 - arr_2
      print("Restulatado resta de arrays (arr_1 - arr_2): ",resta)
      
      '''
      ('arr_1', array([1, 2, 3, 4]))
      ('arr_2', array([0, 1, 2, 3]))
      ('Restulatado resta de arrays (arr_1 - arr_2): ', array([1, 1, 1, 1]))
      '''

# Multiplicacion

        multiplicacion = arr_1 * 2
        print("Restulatado de la multiplicacion de un array por 2: ",multiplicacion)

        '''
        ('Restulatado de la multiplicacion de un array por 2: ', array([2, 4, 6, 8]))
        '''

        multiplicacion = arr_1 * arr_2
        print("Restulatado de la multiplicacion de un array por otro array: ",multiplicacion)

        '''
        print anterior
        ('arr_1', array([1, 2, 3, 4]))
        ('arr_2', array([0, 1, 2, 3]))
                  array([ 0,  2,  6, 12]) >>> Se puede observar claramente, como cada elemento de un array multiplica, un elemento del               siguiente array

        Resultado
        ('Restulatado de la multiplicacion de un array por otro array: ', array([ 0,  2,  6, 12]))
        '''

# Comparacion

        comparacion = arr_1 == 4
        print(comparacion)
        
        '''
        ('arr_1', array([1, 2, 3, 4]))
        [False False False  True]
        '''

Estas son algunas de las operaciones basicas, excepcionalmente existen operadores que no generan un nuevo array sino que modifica uno existente, tales como +=y *=.

        arr_ones = np.ones((2, 3), dtype=int)
        print(arr_ones)
        '''
        [[1 1 1]
         [1 1 1]]
        '''
        
        arr_ones *=3
        
        print(arr_ones)
        '''
        [[3 3 3]
         [3 3 3]]
        '''

Rapidamente haremos un descripcion de lo que hicimos, primeramente, crearmos un array, con dos filas y tres columnas, por lo tanto, al tener filas y columnas, seria un array de 2 dimensiones o ejes, luego, le decimos que es de tipo entero, y con la funcion ones lo que hacemos es rellenar ese array con 1 (unos). Luego al array arr_ones con el operador *= lo multiplicamos por 3, lo que multiplica cada elemento del array por 3, y como podemos observar, si imprimimos nuevamente la variable arr_ones vemos que se ha modificado su valor, por lo tanto lo que hace este operador es modificar el array original.

Indexación, segmentación e iteración

numpy-python's People

Contributors

iralak07 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.