"""

NAME
        tarea_7.py

VERSION
        [1.0]

AUTHOR
        Ignacio Emmanuel Ramirez Bernabe

CONTACT
        iramirez@lcg.unam.mx

GITHUB
        https://github.com/eveiramirez/python_class/blob/master/Python2/tareas/tarea_7.py

DESCRIPTION
        Este programa contiene arrays estructurados para los arrays
        creados en el ejercicio 1, los cuales son:
            Produccion
            Costos
            Costos por g/L

CATEGORY
        Numpy

"""
import numpy as np
# Crear array con la produccion de cada gen para cada temperatura
production = np.array([("Gen1", 5, 3), ("Gen2", 11, 7),
                       ("Gen3", 4, 9), ("Gen4", 2, 6)],
                      dtype=[("name", (np.str_, 10)),
                             ("production_cond1", np.int32),
                             ("production_cond2", np.int32)])

# Crear array con los costos de induccion
costs = np.array([("Gen1", 3.5), ("Gen2", 5), ("Gen3", 7),
                  ("Gen4", 4.3)], dtype=[("name", (np.str_, 10)),
                                         ("cost", np.float64)])

# Crear array con los costos por g/L para condicion 1
pc_cond1 = production["production_cond1"]/costs["cost"]

# Crear array con los costos por g/L para temperatura 2
pc_cond2 = production["production_cond2"]/costs["cost"]

# Crear lista con los costos por g/L para cada gene guardados en una
# tupla
gene_list = []
for gene in range(0, 4):
    gene_list.append((f"Gen{gene+1}", pc_cond1[gene], pc_cond2[gene]))

# Crear array con los costos por g/L
prod_costs = np.array(gene_list, dtype=[("name", (np.str_, 10)),
                                        ("pc_cond1", np.float64),
                                        ("pc_cond2", np.float64)])

# Imprimir array de los costos por g/L
print(prod_costs)

[(31, 'numpy.array', 'np.array', True, 'import numpy as np\n'), (38, 'numpy.array', 'np.array', True, 'import numpy as np\n'), (55, 'numpy.array', 'np.array', True, 'import numpy as np\n')]