4.1 Vectores – Arreglos de una dimensión

Al disponer de varios de datos de igual tipo pero que están relacionados, se tiene la necesidad de manejar los datos como un conjunto. Ejemplo: una lista de calificaciones de una lección o las edades de los estudiantes.

estudiante edad[estudiante]
1 17
2 21
3 19

El conjunto de datos se maneja como un “arreglo” que tiene las siguientes características:

  • Todos los datos son de igual tipo (enteros, reales, lógicos, etc.)
  • Se conoce su “tamaño”, es decir la cantidad de elementos en el arreglo.
  • El arreglo se identifica por medio del nombre del conjunto ordenado de datos.
  • Cada elemento se identifica por una variable índice que da su posición.
edad = \begin{pmatrix} 17\\21\\19 \end{pmatrix}

En éste ejemplo se puede observar que:

  • todos los datos de las edades son tipo entero, int
  • el tamaño o cantidad de estudiantes es n=3 en el arreglo
  • los datos corresponden a la “edad”, nombre del arreglo
  • mediante su posición en la lista i, se identifica al estudiante. El estudiante 2, i=2, la edad es edad[2]=21.

Otro ejemplo , temperaturas por día. Los datos son tipo Real, float:

día 1 2 3 4
temperatura[día] 28.6 24.9 26.5 25.1

Tamaño n=2, temperatura[2]=24.9

Para éste caso, el arreglo contiene las mediciones de temperatura en varios días, para éste caso es de 4 días, por lo que el arreglo es de tamaño 4. Todos los datos son números reales, si se quiere conocer la temperatura de un día específico se usa la variable índice día, con lo que se obtiene el valor de 24.9.


Arreglos en algoritmos

 

Los arreglos en algoritmos se manejan como vectores y matrices en álgebra. Python dispone de la libreria Numpy para manejo de arreglos, por lo que en el bloque de inicio se requiere pedir la librería «numpy» con el álias «np».

import numpy as np

En el caso que se usen arreglos, los bloques de ingreso deben reflejar las acciones para llenar los datos.

Bloque de Ingreso

La primera pregunta para llenar una lista de temperaturas es conocer cuántos se encuentran registrados. Por lo que primero se preguntará el tamaño n del arreglo .

El ingreso de datos es de forma ordenada, por lo que se inicia el índice para solicitar el valor del primero de la lista.  Por ejemplo:
día=1,

Luego se solicita el ingreso de la temperatura de cada día: temperatura[día] .

Se continúa el siguiente índice , sumándole uno, para repetir la operación hasta completar el ingreso de todos los datos.

Se repite el procedimiento para cada elemento del arreglo «temperatura«.

Indices en arreglos

Los índices en arreglos se manejan de forma semejante a un vector en álgebra. Sin embargo, la numeración de casillas empieza en cero.

i 0 1 2 3
día 1 2 3 4
temperatura[día] 28.6 24.9 26.5 25.1

Por lo que el día 2, tiene índice 1. El índice está en el arreglo desplazado en una posición.

import numpy as np
temperatura = np.array([28.6, 24.9, 26.5, 25.1])

>>> temperatura[2]
26.5
>>> temperatura[1]
24.9
>>> 
>>> len(temperatura)
4
>>> 

Asunto para recordar cuando se realicen las operaciones en el arreglo.

Bloque de procedimiento

Al manejar el conjunto de datos ordenado se puede realizar los cálculos individualmente sobre cada elemento. O se puede manejar el conjunto con las reglas de vectores o matrices.

Por ejemplo, promediar la temperaturas, requiere sumar todas las temperaturas y dividirlas para la cantidad de datos (tamaño)

# PROCEDIMIENTO
promedio = np.sum(temperatura)/n

Bloque de Salida

Para la presentación de datos, cuando se dicta o se muestra uno por uno,  se procede de forma semejante al bloque de ingreso.

En algunos lenguajes estructurados, existen formas de presentar todo el conjunto mediante una sola instrucción.

# temperaturas promedio
import numpy as np

# INGRESO
n = int(input('cuántos días: '))

temperatura = np.zeros(n,dtype=float)
dia = 0
while not(dia>=n):
    temperatura[dia] = float(input('t: '))
    dia = dia + 1

# PROCEDIMIENTO
promedio = np.sum(temperatura)/n

# SALIDA
print('promedio t: ',promedio)
print(temperatura)

que al ejecutar el algoritmo obtenemos

cuántos días: 4
t: 28.6
t: 24.9
t: 26.5
t: 25.1
promedio t:  26.275
[28.6 24.9 26.5 25.1]
>>>