Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
N-dimensionales
FUNDAMENTOS DE PROGRAMACIN
Arreglos N-dimensionales (ndarray)
Contenedor multidimensional/Tabla de elementos del mismo tipo y de tamao definido.
import numpy as np
Instalando
Crear arreglos
import numpy as np
arr = np.array([1,2,45,67]) arr = np.array([1.0,2.5,45.6,67.90])
print(arr) print(arr)
arr2 = np.array([[1,2,3],
[4,5,6]]) >>> a = np.array(1,2,3,4) # WRONG
print(arr2) >>> a = np.array([1,2,3,4]) # RIGHT
[[1 2 3]
[4 5 6]]
Manipular elementos en ndarray
Acceder a un elemento
print (arr[0], arr[1], arr[2]) array([1,2,45,67])
1 2 45
arr[0] = 47 arr2[0,1] = 10
[[ 1 10 3]
[47 2 45 67]
[ 4 5 6]]
type, axes, rank
Linspace
Devuelve un arreglo de valores, rank 1, dado el nmero de elementos
que se deseen.
np.linspace( start, end, number of elements )
>>> np.arange( 10, 30, 5 )
array([10, 15, 20, 25])
>>> np.arange( 0, 2, 0.3 ) # it accepts float arguments
array([ 0. , 0.3, 0.6, 0.9, 1.2, 1.5, 1.8])
[0 1 2 3 4 5 6 7 8 9]
secuencia2 = secuencia.reshape(2,5)
[[0 1 2 3 4]
[5 6 7 8 9]]
Operaciones con escalares
Operador Descripcin
+ Suma
- Resta.
* Producto
/ Divisin.
// Divisin entera.
** Potencia.
sqrt Raiz Cuadrada
Funciones con arreglos n-dimensionales
Sum Prod Min Max Argmin Argmax Sort
Devuelve la
Devuelve la Devuelve el Devuelve el
multiplicacin Devuelve el Devuelve el Ordena los
suma de ndice del ndice del
de los mnimo valor mximo valor elementos de
elementos en mnimo valor mximo valor
elementos de en una matriz en una matriz un arreglo.
una matriz en una matriz en una matriz
una matriz
sum(arreglo)
prod(arreglo) min(arreglo) max(arreglo) argmin(arreglo) argmax(arreglo) sort(arreglo)
Aadir/Eliminar elementos
Append Agrega un elemento a una matriz.
Devuelve un arreglo de Rank = 1
[[98,96,56,20],
[11,53,85,93],
[78,46,34,73],
[70,60,43,100]]
import numpy as np
# arreglo original con notas de estudiantes
notas = np.array([[98,96,56,20],[11,53,85,93],[78,46,34,73],[70,60,43,100]])
M = notas.shape[0] # numero de paralelos
N = notas.shape[1] # numero de estudiantes
# se calcula el promedio de las notas por paralelo
promedios = notas.sum(axis=1)/(M)
# se transpone el arreglo de notas
notasTraspuesta = notas.transpose()
# Se combina el arreglo de notas traspuestas con el arreglo de promedios
resultado = np.append(promedios,notasTraspuesta)
resultado = resultado.reshape((5,4))
print(resultado)
Est. 0 100 80 94 75
Est. 1 65 78 76 87
Est. 2 74 96 65 43
Est. 3 98 87 90 95
Est. 4 40 65 59 72
Est. 5 87 49 67 81
Donde las filas representan 6 estudiantes los cuales estn viendo 4 materias. Represente estas calificaciones en
una matriz en numpy.
El profesor de la materia de fsica se equivoc al colocar la calificacin del Est. 3 que en lugar de ser 87 era 97,
corrjala usando lo aprendido.
En Qumica, los 4 primero estudiantes presentaron el mejor proyecto, como recompensa todos recibirn un 100
en la calificacin. Realice este cambio usando una sola lnea de cdigo usando lo aprendido
El Est.4 solicita que se le de las calificaciones de las 3 primeras materias, usando slicing obtener la fila del Est.4
Solucin
c = np.array([[100, 80, 94, 75], [65, 78, 76, 87], [74, 96, 65, 43], [98, 87, 90, 95], [40, 65, 59, 72],
[87, 49, 67, 81]])
1. >>> c[3,1]=97
2. >>> c[:4,3]=100
3. >>> print(c[4, :3])
Indexacin Avanzada
h= h=
[[ 1 2] [[ 1 2 7]
[ 3 4] [ 3 5 9]
[ 4 6]] [ 8 6 4]]
Operadores
Relacionales
a<b
a>b
a == b
a <= b
a >= b
Indexamiento Booleano
Reemplazando Valores
Reemplazar todos los valores iguales a 5 Operadores
Relacionales
z= a<b
[[ 5 7 1]
[ 4 5 9] a>b
[ 8 6 5]] a == b
a <= b
a >= b
for i in range (z.shape[0]):
z[z==5]=1
for j in range (z.shape[1]):
if z[i,j]==5:
z[i,j]=1 Arreglo Condicin Valor
Operador de
Asignacin
Ejercicio
Cree un arreglo de dos dimensiones de tamao 5x5 con valores aleatorios entre cero y seis [0,6).
Ahora reemplace los elementos del arreglo menores o iguales a 3 por 0 y los mayores a 3 con 6.
Esto es, si un elemento tiene como valor 2.53, reemplcelo con el valor de 0. y si tiene un valor
de 4.434 reemplcelo con 6.
z = 6*np.random.rand(10,10)
z[z<=3] = 0
z[z>3] = 6
Validando Arreglos N-Dimensionales
Devuelve True, si todos los valores en el arreglo dan
All verdadero
np.all(condicin)
np.add(a,b) a+b Suma los elementos uno a uno de un arreglo. Dimensiones deben ser iguales.
np.subtract(a,b) a-b Resta los elementos uno a uno de un arreglo. Dimensiones deben ser iguales.
np.multiply(a,b) a*b Multiplica los elementos uno a uno de un arreglo. Dimensiones deben ser iguales.
np.divide(a,b) a/b Divide los elementos uno a uno. Dimensiones deben ser iguales.
Operaciones Aritmticas entre arreglos