import gradio as gr import numpy as np def entropy(X): n = len(X) counts = np.bincount(X) probs = counts[np.nonzero(counts)] / n en = 0 for i in range(len(probs)): en = en - probs[i] * np.log(probs[i])/np.log(2) return en def string_to_list(string): # Divide la cadena en una lista de subcadenas separadas por comas substrings = string.split(',') # Convierte cada subcadena en un número entero y agrega a una lista response = substrings return response def function(valores): return entropy(string_to_list(valores)) value1 = gr.Textbox(lines=3, label="Valores", placeholder="Ingrese los valores separados por comas...") value2 = gr.Textbox(lines=3, label="Resultado", placeholder="Resultado...") examples = [ ["1,2,3,4,5,6,7,8,9"], ["1,1,1,1,1,1,1,1,2"], ["1,2,1,2,1,2,1,2,1"], ["8,8,8,8,8,8,8,8,8"], ["1,2,3,1,2,3,1,2,3"] ] demo = gr.Interface( fn=function, inputs=value1, outputs=value2, title="Calcular entropía", examples=examples, description="Calcula la entropía de un conjunto de números" ) demo.launch(debug=True)