Proyectos de análisis de datos con Python - Calculadora de varianza, desviación media, y estándar

Cuéntanos qué está pasando:
Describe tu problema en detalle aquí.

Hice una corrida del codigo de la calculadora sin error, pero la prueba me arruja dos mensajes de fallas que coloco a continuacio:

" "

ERROR: test_calculate (test_module.UnitTests)

Traceback (most recent call last):
File “/home/runner/boilerplate-mean-variance-standard-deviation-calculator/test_module.py”, line 10, in test_calculate
self.assertAlmostEqual(actual, expected, “Expected different output when calling ‘calculate()’ with ‘[2,6,2,8,4,0,1,5,7]’”)
File “/nix/store/2vm88xw7513h9pyjyafw32cps51b0ia1-python3-3.8.12/lib/python3.8/unittest/case.py”, line 937, in assertAlmostEqual
if first == second:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

======================================================================
ERROR: test_calculate2 (test_module.UnitTests)

Traceback (most recent call last):
File “/home/runner/boilerplate-mean-variance-standard-deviation-calculator/test_module.py”, line 15, in test_calculate2
self.assertAlmostEqual(actual, expected, “Expected different output when calling ‘calculate()’ with ‘[9,1,5,3,3,3,2,9,0]’”)
File “/nix/store/2vm88xw7513h9pyjyafw32cps51b0ia1-python3-3.8.12/lib/python3.8/unittest/case.py”, line 937, in assertAlmostEqual
if first == second:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

======================================================================
FAIL: test_calculate_with_few_digits (test_module.UnitTests)

Traceback (most recent call last):
File “/home/runner/boilerplate-mean-variance-standard-deviation-calculator/test_module.py”, line 18, in test_calculate_with_few_digits
self.assertRaisesRegex(ValueError, “List must contain nine numbers.”, mean_var_std.calculate, [2,6,2,8,4,0,1,])
AssertionError: ValueError not raised by calculate


Ran 3 tests in 0.004s

FAILED (failures=1, errors=2)
 " "
Entonces, aumento la precision del calculo agregando dtype = np.(float…) pero siguen apareciendo la misma cantidad de decimales.

Se me ocurre declarar el diccionario con la presicion y los digitos decimales y luego asignar cada calculo.

Ademas, no comprendo bien el mensaje de si es un elemento ambiguo.

Otra opcion es definir una clase, pero no domino bien esa parte y como no lo vi en las clases no lo aborde de esa manera.

Tu código hasta el momento

def calculate(list):
if np.size(list) == 9:
m = np.reshape(list,(3,3))
calculations = dict({
‘mean’:[np.mean(m,axis=0,dtype=np.double),np.mean(m,axis=1,dtype=np.double),np.mean(m,dtype=np.double)],
‘variance’:[np.var(m,axis=0,dtype=np.double),np.var(m,axis=1,dtype=np.double),np.var(m,dtype=np.double)],
‘standard deviation’:[np.std(m,axis=0,dtype=np.double),np.std(m,axis=1,dtype=np.double),np.std(m,dtype=np.double)],
‘max’:[np.max(m,axis=0),np.max(m,axis=1),np.max(m)],
‘min’:[np.min(m,axis=0),np.min(m,axis=1),np.min(m)],
‘sum’:[np.sum(m,axis=0),np.sum(m,axis=1),np.sum(m)]
})
return calculations

else:
print(‘ValueError’)

Información de tu navegador:

El agente de usuario es: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:104.0) Gecko/20100101 Firefox/104.0

Desafío: Proyectos de análisis de datos con Python - Calculadora de varianza, desviación media, y estándar

Enlaza al desafío:

Tienes el link de tu proyecto para poder ejecutar las pruebas?

El link es este:

El problema es que test_module.py me muestra 1 falla y 2 errores.

Traceback (most recent call last):
File “/home/runner/boilerplate-mean-variance-standard-deviation-calculator/test_module.py”, line 15, in test_calculate2
self.assertAlmostEqual(actual, expected, “Expected different output when calling ‘calculate()’ with ‘[9,1,5,3,3,3,2,9,0]’”)
File “/nix/store/2vm88xw7513h9pyjyafw32cps51b0ia1-python3-3.8.12/lib/python3.8/unittest/case.py”, line 937, in assertAlmostEqual
if first == second:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Este error no se como resolverlo
FAIL: test_calculate_with_few_digits (test_module.UnitTests)

Traceback (most recent call last):
File “/home/runner/boilerplate-mean-variance-standard-deviation-calculator/test_module.py”, line 18, in test_calculate_with_few_digits
self.assertRaisesRegex(ValueError, “List must contain nine numbers.”, mean_var_std.calculate, [2,6,2,8,4,0,1,])
AssertionError: ValueError not raised by calculate

Este error, es con los decimales que arroja el link que

listo, tenia que convertir de array numpy a listas. supongo que se puede hacer mejor, pero me corrio. Muchas gracias.

1 Like