Autor Tema: Python división de arreglos

0 Usuarios y 1 Visitante están viendo este tema.

17 Febrero, 2016, 06:56 am
Leído 2329 veces

marsi

  • Novato
  • Mensajes: 120
  • Karma: +0/-0
  • Sexo: Femenino
Hola, espero puedan ayudarme con el siguiente problema:
Tengo que dividir entrada por entrada de dos arreglos

Es decir A=[['Aguascalientes', 336710.0], ['Baja California', 1087650.0], ['Baja California Sur', 187528.0], ['Campeche', 194843.0], ['Chiapas', '3'], ['Chihuahua', 869223.0], ['Coahuila', 774391.0], ['Colima', 249623.0], ['Distrito Federal', 1123522.0], ['Durango', 465747.0], ['Estado de Mexico', 3627058.0], ['Guanajuato', 1003941.0], ['Guerrero', 394452.0], ['Hidalgo', 41318.0], ['Jalisco', 1081280.0], ['Michoacan', 220208.0], ['Morelos', 328896.0], ['Nayarit', 209381.0], ['Nuevo Leon', 1360564.0], ['Oaxaca', 550881.0], ['Puebla', 1068598.0], ['Queretaro', 445097.0], ['Quintana Roo', 384157.0], ['San Luis Potos', 590247.0], ['Sinaloa', 435461.0], ['Sonora', 717593.0], ['Tabasco', 442528.0], ['Tamaulipas', 1003868.0], ['Tlaxcala', 246369.0], ['Veracruz', 1614905.0], ['Yucatan', 589075.0], ['Zacatecas', 354608.0]]
y B=[['Aguascalientes', 289575.0], ['Baja California', 858676.0], ['Baja California Sur', 175046.0], ['Campeche', 211632.0], ['Chiapas', 1072560.0], ['Chihuahua', 910647.0], ['Coahuila', 715158.0], ['Colima', 177848.0], ['Distrito Federal', 2388534.0], ['Durango', 398471.0], ['Estado de Mexico', 3689053.0], ['Guanajuato', 1266772.0], ['Guerrero', 805230.0], ['Hidalgo', 662651.0], ['Jalisco', 1802424.0], ['Michoacan', 1066630.0], ['Morelos', 460868.0], ['Nayarit', 288680.0], ['Nuevo Leon', 1191114.0], ['Oaxaca', 934471.0], ['Puebla', 1373772.0], ['Queretaro', 450104.0], ['Quintana Roo', 363066.0], ['San Luis Potos\xa1', 631587.0], ['Sinaloa', 709960.0], ['Sonora', 705668.0], ['Tabasco', 559114.0], ['Tamaulipas', 868244.0], ['Tlaxcala', 272507.0], ['Veracruz', 1983543.0], ['Yucatan', 503106.0], ['Zacatecas', 372662.0]]
yo quiero que me divida por ejemplo:
336710.0/289575.0
me guarde este valor en un arreglo y continué con las demás entradas
Lo que yo creí hacer es en un loop:
for i in A:
for i  in B:
\( valor\left [ i \right ] \)= np.array(A). \( T\left [ 1 \right ]\left [ i \right ] \)/np.array(B).\( T\left [ 1 \right ]\left [ i \right ] \)

Mi pregunta es si puedo agregar en un solo loop para ambos arreglos y como lo hago ya que esta instrucción me marca erro y no logro hacer la división de entrada por entrada  :banghead:
ojalá puedan ayudarme

17 Febrero, 2016, 07:16 am
Respuesta #1

ingmarov

  • Moderador Global
  • Mensajes: 4,702
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
Hola

prueba esto, quizás te sirva, lo probé en python 3.2 y funciona

Código: [Seleccionar]
C=[]
i=0

for i in range(len(A)):
C.append([A[i][0],float(A[i][1])/float(B[i][1])])
i=i+1
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

17 Febrero, 2016, 11:33 pm
Respuesta #2

marsi

  • Novato
  • Mensajes: 120
  • Karma: +0/-0
  • Sexo: Femenino
Hola, si funciono,muchas gracias   ;)

18 Febrero, 2016, 04:25 pm
Respuesta #3

luis

  • Aprendiz
  • Mensajes: 304
  • Karma: +1/-0
  • Sexo: Masculino
un poco más compacto...

Código: [Seleccionar]
A = [['a', 5.0], ['b', 10.0]]
B = [['a', 15.0], ['b', 7.0]]

print (list (map (lambda a, b: [a[0], a[1]/b[1]], A, B)))