viernes, 14 de enero de 2022

Media, mediana y moda en Python

 Podemos hacerlo de diferentes manera pero mostraré dos, la primera usando statistics y la segunda con código similar a bajo nivel. El código lee los valores desde un archivo de texto que tiene los datos a manera de columna, solo consideramos enteros y datos con una sola moda pues mas de una moda no podría ser calculada con el código dos.

Código uno:

import statistics as stats

archi=open('datos_nums.txt','r')

contnum=0

sumanums=0

numeros=[]

auxiliar=[]

for linea in archi:

numeros.append(int(linea))

auxiliar.append(0)

sumanums=sumanums+int(linea)

contnum=contnum+1

archi.close()


#ordenar la lista

numeros.sort()

print('Los números son:')

print(numeros)


#calcular la media

print('La media es: '+str(stats.mean(numeros)))

#calcular la mediana

print('La mediana es: '+str(stats.median(numeros)))

#calcular la moda

print('La moda es: '+str(stats.mode(numeros)))







Código dos:

archi=open('datos_nums.txt','r')

contnum=0

sumanums=0

numeros=[]

auxiliar=[]

for linea in archi:

numeros.append(int(linea))

auxiliar.append(0)

sumanums=sumanums+int(linea)

contnum=contnum+1

archi.close()


#ordenar la lista

numeros.sort()

print('Los números son:')

print(numeros)

#calcular la media

v_media=sumanums/contnum

print('La media es:' +str(v_media))

#calcular la mediana

if contnum % 2==0:

v_mediana=(numeros[int((contnum/2)-1)]+numeros[int((contnum/2))])/2

else:

v_mediana=numeros[((contnum-1)/2)]

print('La mediana es:' +str(v_mediana))


#Calcular la moda

for i in range(contnum):

numero=numeros[i]

posicion=i

for j in range(contnum):

if numero==numeros[j]:

auxiliar[j]=auxiliar[j]+1

print(auxiliar)


No hay comentarios:

Publicar un comentario