| | | |

Minicurso de Python para Matemáticas

Ayuda a mantener el sitio libre, gratuito y sin publicidad. ¡Colabora!

4.1 NumPy array

Un numpy.array es una tabla de valores (vector, matriz o multidimensional) y contiene información sobre los datos brutos, indexación y cómo interpretarlos. Los elementos son todos del mismo tipo (diferente de una lista Python), referenciados por la propiedad dtype. La indexación de los elementos puede hacerse por un tuple de enteros no negativos, por booleanos, por otro numpy.array o por números enteros. El ndim de un numpy.array es su número de dimensiones (llamadas axes111axes, del inglés, plural de axis, eje.). El numpy.ndarray.shape es un tuple de enteros que proporciona su tamaño (número de elementos) en cada dimensión. Su inicialización puede hacerse usando listas simples o anidadas. Por ejemplo,

1a = np.array([1, 3, -1, 2])
2print(a)
[ 1 3 -1 2]
1a.dtype
dtype('int64')
1a.shape
(4,)
1a[2]
-1
1a[1:3]
array([ 3, -1])

tenemos un numpy.array de números enteros con cuatro elementos dispuestos en un único axis (eje). Podemos interpretarlo como una representación de un vector fila o columna, es decir

a=(1,3,1,2) (4.1)

vector columna o aT vector fila.

Outro exemplo,

1a = np.array([[1.0,2,3],
2 [-3,-2,-1]])
3a.dtype
dtype('float64')
1a.shape
(2, 3)
1a[1,1]
-2.0

tenemos un numpy.array de números decimales (float) dispuestos en un arreglo con dos axes (ejes). El primer axis tiene tamaño 2 y el segundo tiene tamaño 3. Es decir, podemos interpretarlo como una matriz de dos filas y tres columnas. Podemos hacer su representación algebraica como

a=[123321] (4.2)
Ejercicio 4.1.0.1.

Use numpy.array para asignar:

  1. a)

    el vector

    v=(5,π,sen(π/3)) (4.3)
  2. b)

    la matriz

    A=[11322e13] (4.4)

1import numpy as np
2# a)
3v = np.array([-5., np.pi, np.sin(np.pi/3)])
4print('v = ', v)
5# b)
6A = np.array([[-1., 1./3],
7 [2., np.sqrt(2)],
8 [np.exp(-1.), -3.]])
9print('A = \n', A)

4.1.1 Inicialización de un array

El NumPy cuenta con útiles funciones de inicialización de numpy.array. Vea algunas de las más frecuentes:

  •  

    numpy.zeros: inicializa un numpy.array con todos sus elementos iguales a cero.

    1np.zeros(2)
    array([0., 0.])
  •  

    numpy.ones: inicializa un numpy.array con todos sus elementos iguales a 1.

    1np.ones((3,2), dtype='int')
    array([[1, 1],
    [1, 1],
    [1, 1]])
  •  

    numpy.empty: inicializa un numpy.array sin asignar valores a sus elementos222¡Atención! En el momento de la asignación, los valores de los elementos serán dinámicos según “basura” de la memoria..

    1np.empty(3)
    array([4.9e-324, 1.5e-323, 2.5e-323])
  •  

    numpy.arange: inicializa un numpy.array con una secuencia de elementos333Similar a la función Python range..

    1np.arange(1,6,2)
    array([1, 3, 5])
  •  

    numpy.linspace(a, b[, num=n]): inicializa un numpy.array como una secuencia de elementos que comienza en a, termina en b (incluidos) y contiene n elementos igualmente espaciados.

    1np.linspace(0, 1, num=5)
    array([0. , 0.25, 0.5 , 0.75, 1. ])
Ejercicio 4.1.1.1.

Asigne la matriz escalar

A=[200020002] (4.5)

como un numpy.array.


1import numpy as np
2A = -2*np.ones((3,3))
3print('A = \n', A)
Ejercicio 4.1.1.2.

Construya un numpy.array para asignar una partición uniforme con 11 puntos del intervalo [0,1]. Es decir, un arreglo 𝒙=(x1,x2,,xn), de elementos xi=(i1)h, con paso h=1/(n1).


1import numpy as np
2x = np.linspace(0., 1., 11)
3print('x = ', x)

4.1.2 Manipulación de arrays

Otras dos funciones importantes en el tratamiento de arrays son:

  •  

    numpy.reshape: permite la alteración de la forma de un numpy.array.

    1a = np.array([-2,-1])
    2print(a)
    [-2 -1]
    1b = a.reshape(2,1)
    2print(b)
    [[-2]
    [-1]]

    El numpy.reshape también permite el uso de un carácter comodín -1 que será determinado dinámicamente para obtener una estructura adecuada. Por ejemplo,

    1a = np.array([[1,2],[3,4]])
    2print(a)
    [[1 2]
    [3 4]]
    1b = a.reshape((-1,1))
    2print(b)
    [[1]
    [2]
    [3]
    [4]]
  •  

    numpy.transpose: computa la transpuesta de una matriz.

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

    numpy.concatenate: concatena arrays.

    1a = np.array([1,2])
    2b = np.array([2,3])
    3c = np.concatenate((a,b))
    4print(c)
    [1 2 2 3]
    1a = a.reshape((1,-1))
    2b = b.reshape((1,-1))
    3d = np.concatenate((a,b), axis=0)
    4print(d)
    [[1 2]
    [2 3]]
Ejercicio 4.1.2.1.

Asigne el siguiente vector como un numpy.array

𝒂=(2,3,1,1,4,5). (4.6)

Luego, use el método numpy.reshape para, a partir de b, asignar la matriz

A=[1145] (4.7)

como un numpy.array.


1import numpy as np
2a = np.array([2, 3, -1, 1, 4, 5])
3A = a.reshape((3,-1))
Ejercicio 4.1.2.2.

Teniendo en cuenta que

A=[32121232] (4.8)

es una matriz ortogonal444A se dice matriz ortogonal, cuando A1=AT., calcule A1.


1import numpy as np
2A = np.array([[np.sqrt(3)/2, -1./2],
3 [1./2, np.sqrt(3)/2]])
4Ainv = A.transpose()
Ejercicio 4.1.2.3.

Considere el siguiente sistema de ecuaciones

2x1x2=3 (4.9)
x1+3x2=2 (4.10)

Use numpy.array para asignar:

  1. 1.

    la matriz de coeficientes de este sistema.

  2. 2.

    el vector de los términos constantes de este sistema.

  3. 3.

    la matriz ampliada de este sistema.


1import numpy as np
2# a)
3A = np.array([[2, -1],
4 [1, 3]])
5# b)
6b = np.array([3, -2])
7# c)
8E = np.concatenate((A, b.reshape(-1,1)), axis=1)

4.1.3 Operadores elemento-a-elemento

Los operadores aritméticos disponibles en Python actúan elemento-a-elemento en los numpy.arrays. Por ejemplo,

1a = np.array([1,2])
2b = np.array([2,3])
3a+b
array([3, 5])
1a-b
array([-1, -1])
1b*a
array([2, 6])
1a**b
array([1, 8])
12*b
array([4, 6])

El NumPy también cuenta con varias funciones matemáticas elementales que operan elemento-a-elemento en arrays. Por ejemplo,

1a = np.array([np.pi, np.sqrt(2)])
2a
array([3.14159265, 1.41421356])
1np.sin(a)
array([1.22464680e-16, 9.87765946e-01])
1np.exp(a)
array([23.14069263, 4.11325038])
Ejercicio 4.1.3.1.

Calcule los valores de la función coseno para los elementos del vector

𝜽=(0.,30,45,60,90). (4.11)

1import numpy as np
2thta = np.array([0., np.pi/6, np.pi/4,
3 np.pi/3, np.pi/2])
4y = np.cos(thta)

Envía tu comentario

Aprovecho para agradecer a todas/os que de forma asidua o esporádica contribuyen enviando correcciones, sugerencias y críticas.

Opcional. Ingresa tu nombre para que pueda contactarte.
Opcional. Ingresa tu correo electrónico para que pueda contactarte.
La información ingresada se envía por correo electrónico al desarrollador del sitio y se trata de forma privada. Consulta la política de uso de datos para más información.

Licencia Creative Commons
Este texto se publica bajo los términos de la Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional. Los íconos y elementos gráficos pueden estar sujetos a condiciones adicionales.

Pedro H A Konzen
Sitio derivado de notaspedrok.com.br. Contiene traducciones al español realizadas con GitHub Copilot.
| | | |