EUGENIA BAHIT CIENCIA DE DATOS CON PYTHON MATERIAL DE ESTUDIO Curso : Informes e inscripción: http://escuela.eugeniabahit.com | Certificaciones : http://python.laeci.org I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t SUMARIO Mét odosdemani pul aci óndev ar i abl es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Mani pul aci óndecadenasdet ex t o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Mét odosdef or mat o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Conv er t i ramay ús cul al apr i mer al et r a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Conv er t i runacadenaami nús cul as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Conv er t i runacadenaamay ús cul as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Conv er t i rmay ús cul asami nús cul asyv i cev er s a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Conv er t i runacadenaenF or mat oT í t ul o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Cent r arunt ex t o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Al i neart ex t oal ai z qui er da. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Al i neart ex t oal ader echa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Rel l enarunt ex t oant eponi endocer os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Mét odosdeBús queda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Cont arcant i daddeapar i ci onesdeunas ubcadena. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Bus carunas ubcadenadent r odeunacadena. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Mét odosdeVal i daci ón. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Sabers iunacadenacomi enz aconunas ubcadenadet er mi nada. . . . . . . . . . . . . . . 8 Sabers iunacadenaf i nal i z aconunas ubcadenadet er mi nada. . . . . . . . . . . . . . . . . . . 8 Sabers iunacadenaesal f anumér i ca. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Sabers iunacadenaesal f abét i ca. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Sabers iunacadenaesnumér i ca. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Sabers iunacadenacont i enes ol omi nús cul as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Sabers iunacadenacont i enes ol omay ús cul as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Sabers iunacadenacont i enes ol oes paci osenbl anco. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 Sabers iunacadenat i eneF or mat oDeT í t ul o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 Mét odosdeSus t i t uci ón. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 Darf or mat oaunacadena,s us t i t uy endot ex t odi námi cament e. . . . . . . . . . . . . . . . . . 1 0 Reempl az art ex t oenunacadena. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 El i mi narcar act er esal ai z qui er dayder echadeunacadena. . . . . . . . . . . . . . . . . . . . . . 1 1 El i mi narcar act er esal ai z qui er dadeunacadena. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 El i mi narcar act er esal ader echadeunacadena. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 Mét odosdeuni ónydi v i s i ón. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 Uni runacadenadef or mai t er at i v a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 Par t i runacadenaent r espar t es , ut i l i z andouns epar ador . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 -2- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t Par t i runacadenaenv ar i aspar t es , ut i l i z andouns epar ador . . . . . . . . . . . . . . . . . . . . . . 1 2 Par t i runacadenaenenl í neas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Mani pul aci óndel i s t asyt upl as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 Mét odosdeagr egado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 Agr egarunel ement oal f i nal del al i s t a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 Agr egarv ar i osel ement osal f i nal del al i s t a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 Agr egarunel ement oenunapos i ci óndet er mi nada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 Mét odosdeel i mi naci ón. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 El i mi narel úl t i moel ement odel al i s t a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 El i mi narunel ement opors uí ndi ce. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 5 El i mi narunel ement opors uv al or . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 5 Mét odosdeor den. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 5 Or denarunal i s t aenr ev er s a( i nv er t i ror den) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 5 Or denarunal i s t aenf or maas cendent e. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 5 Or denarunal i s t aenf or mades cendent e. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 5 Mét odosdebús queda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 5 Cont arcant i daddeapar i ci onesel ement os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 5 Obt enernúmer odeí ndi ce. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 6 Anex os obr el i s t asyt upl as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 6 Conv er s i óndet i pos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 6 Concat enaci óndecol ecci ones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 Val ormáx i moymí ni mo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 Cont arel ement os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 Mani pul aci óndedi cci onar i os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 Mét odosdeel i mi naci ón. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 Vaci arundi cci onar i o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 Mét odosdeagr egadoycr eaci ón. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 Copi arundi cci onar i o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 Cr earunnuev odi cci onar i odes del ascl av esdeunas ecuenci a. . . . . . . . . . . . . . . . 20 Concat enardi cci onar i os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Es t abl ecerunacl av eyv al orpordef ect o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Mét odosder et or no. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Obt enerel v al ordeunacl av e. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Sabers iunacl av eex i s t eenel di cci onar i o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Obt enerl ascl av esyv al or esdeundi cci onar i o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Obt enerl ascl av esdeundi cci onar i o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Obt enerl osv al or esdeundi cci onar i o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Obt enerl acant i daddeel ement osdeundi cci onar i o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Manej oymani pul aci óndear chi v os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 -3- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t ModosdeAper t ur adeunar chi v o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Al gunosmét odosdel Obj et oF i l e. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Acces oaar chi v osmedi ant el aes t r uct ur awi t h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Manej odear chi v osCSV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Al gunosej empl osdear chi v osCSV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 T r abaj arconar chi v osCSVdes dePy t hon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 L ect ur adear chi v osCSV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Es cr i t ur adear chi v osCSV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Pr obabi l i dadyes t adí s t i caconPy t hon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Pr obabi l i daddes uces oss i mpl esycompues t osmut uament eex cl uy ent esen Py t hon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Es paci omues t r al . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Suces oss i mpl esycompues t os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 As i gnaci óndepr obabi l i dades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Suces oss i mpl esmut uament eex cl uy ent es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Suces oscompues t ospors uces oss i mpl esmut uament eex cl uy ent es . . . . . . . . . . 36 F unci ones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Pr obabi l i dadcondi ci onal enPy t hon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 F unci ones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Suces osdependi ent es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 T eor í adeconj unt osenPy t hon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Suces osi ndependi ent es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 T eor emadeBay esenPy t hon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 T eor emadeBay esypr obabi l i daddecaus as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Dat os :cas opr áct i co. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Anál i s i s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Pr ocedi mi ent o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 F unci ones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Bi bl i ogr af í acompl ement ar i a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Anex oI :Cál cul oscompl ej os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Es t adí s t i capobl aci onal ymues t r al :Cál cul odev ar i anz aydes v í oes t ándar . . 54 Pr oduct oes cal ardedosv ect or es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Cál cul osdef r ecuenci ar el at i v a, abs ol ut ayacumul ada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Anex oI I :Cr eaci óndeunmenúdeopci ones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 -4- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t MÉTODOS DE MANIPULACIÓN DE VARIABLES EnPy t hon, t odav ar i abl es econs i der aunobj et o.Sobr ecadaobj et o, pueden r eal i z ar s edi f er ent est i posdeacci onesdenomi nadasmét odos .L osmét odoss on f unci onesper oques edes pr endendeunav ar i abl e.Porel l o, s eaccedeaes t as f unci onesmedi ant el as i nt ax i s : variable.funcion() Enal gunoscas os , es t osmét odos( f unci onesdeunobj et o) , acept ar án par ámet r oscomocual qui erot r af unci ón. variable.funcion(parametro) MANIPULACIÓN DE CADENAS DE TEXTO Acont i nuaci ón,s ev er ánl ospr i nci pal esmét odosquepuedenapl i car s es obr e unacadenadet ex t o, or gani z adosporcat egor í as . MÉTODOS DE FORMATO CONVERTIR A MAYÚSCULA LA PRIMERA LETRA Mét odo:capi t al i z e( ) Ret or na:unacopi adel acadenaconl apr i mer al et r aenmay ús cul as >>> cadena = "bienvenido a mi aplicación" >>> resultado = cadena.capitalize() >>> resultado Bienvenido a mi aplicación CONVERTIR UNA CADENA A MINÚSCULAS Mét odo:l ower ( ) Ret or na:unacopi adel acadenaenmi nús cul as >>> cadena = "Hola Mundo" >>> cadena.lower() -5- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t hola mundo CONVERTIR UNA CADENA A MAYÚSCULAS Mét odo:upper ( ) Ret or na:unacopi adel acadenaenmay ús cul as >>> cadena = "Hola Mundo" >>> cadena.upper() HOLA MUNDO CONVERTIR MAYÚSCULAS A MINÚSCULAS Y VICEVERSA Mét odo:s wapcas e( ) Ret or na:unacopi adel acadenacon v er t i dasl asmay ús cul asenmi nús cul asy v i cev er s a >>> cadena = "Hola Mundo" >>> cadena.swapcase() hOLA mUNDO CONVERTIR UNA CADENA EN FORMATO TÍTULO Mét odo:t i t l e( ) Ret or na:unacopi adel acadenacon v er t i da >>> cadena = "hola mundo" >>> cadena.title() Hola Mundo CENTRAR UN TEXTO Mét odo:cent er ( l ongi t ud[ , “ car act erder el l eno” ] ) Ret or na:unacopi adel acadenacent r ada >>> cadena = "bienvenido a mi aplicación".capitalize() >>> cadena.center(50, "=") ===========Bienvenido a mi aplicación============ >>> cadena.center(50, " ") Bienvenido a mi aplicación ALINEAR TEXTO A LA IZQUIERDA Mét odo:l j us t ( l ongi t ud[ , “ car act erder el l eno” ] ) Ret or na:unacopi adel acadenaal i neadaal ai z qui er da >>> cadena = "bienvenido a mi aplicación".capitalize() >>> cadena.ljust(50, "=") Bienvenido a mi aplicación======================= -6- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t ALINEAR TEXTO A LA DERECHA Mét odo:r j us t ( l ongi t ud[ , “ car act erder el l eno” ] ) Ret or na:unacopi adel acadenaal i neadaal ader echa >>> cadena = "bienvenido a mi aplicación".capitalize() >>> cadena.rjust(50, "=") =======================Bienvenido a mi aplicación >>> cadena.rjust(50, " ") Bienvenido a mi aplicación RELLENAR UN TEXTO ANTEPONIENDO CEROS Mét odo:z f i l l ( l ongi t ud) Ret or na:unacopi adel acadenar el l enaconcer osal ai z qui er dahas t a al canz arl al ongi t udf i nal i ndi cada >>> numero_factura = 1575 >>> str(numero_factura).zfill(12) 000000001575 MÉTODOS DE BÚSQUEDA CONTAR CANTIDAD DE APARICIONES DE UNA SUBCADENA Mét odo:count ( “ s ubcadena” [ ,pos i ci on_i ni ci o,pos i ci on_f i n] ) Ret or na:unent er or epr es ent andol acant i daddeapar i ci onesdes ubcadena dent r odecadena >>> cadena = "bienvenido a mi aplicación".capitalize() >>> cadena.count("a") 3 BUSCAR UNA SUBCADENA DENTRO DE UNA CADENA Mét odo:f i nd( “ s ubcadena” [ , pos i ci on_i ni ci o, pos i ci on_f i n] ) Ret or na:unent er or epr es ent andol apos i ci óndondei ni ci al as ubcadenadent r o decadena.Si nol aencuent r a, r et or na1 >>> cadena = "bienvenido a mi aplicación".capitalize() >>> cadena.find("mi") 13 >>> cadena.find("mi", 0, 10) -1 -7- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t MÉTODOS DE VALIDACIÓN SABER SI UNA CADENA COMIENZA CON UNA SUBCADENA DETERMINADA Mét odo:s t ar t s wi t h( “ s ubcadena” [ , pos i ci on_i ni ci o, pos i ci on_f i n] ) Ret or na:T r ueoF al s e >>> cadena = "bienvenido a mi aplicación".capitalize() >>> cadena.startswith("Bienvenido") True >>> cadena.startswith("aplicación") False >>> cadena.startswith("aplicación", 16) True SABER SI UNA CADENA FINALIZA CON UNA SUBCADENA DETERMINADA Mét odo:ends wi t h( “ s ubcadena” [ ,pos i ci on_i ni ci o,pos i ci on_f i n] ) Ret or na:T r ueoF al s e >>> cadena = "bienvenido a mi aplicación".capitalize() >>> cadena.endswith("aplicación") True >>> cadena.endswith("Bienvenido") False >>> cadena.endswith("Bienvenido", 0, 10) True SABER SI UNA CADENA ES ALFANUMÉRICA Mét odo:i s al num( ) Ret or na:T r ueoF al s e >>> cadena = "pepegrillo 75" >>> cadena.isalnum() False >>> cadena = "pepegrillo" >>> cadena.isalnum() True >>> cadena = "pepegrillo75" >>> cadena.isalnum() True SABER SI UNA CADENA ES ALFABÉTICA Mét odo:i s al pha( ) Ret or na:T r ueoF al s e >>> cadena = "pepegrillo 75" >>> cadena.isalpha() False -8- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t >>> cadena = "pepegrillo" >>> cadena.isalpha() True >>> cadena = "pepegrillo75" >>> cadena.isalpha() False SABER SI UNA CADENA ES NUMÉRICA Mét odo:i s di gi t ( ) Ret or na:T r ueoF al s e >>> cadena = "pepegrillo 75" >>> cadena.isdigit() False >>> cadena = "7584" >>> cadena.isdigit() True >>> cadena = "75 84" >>> cadena.isdigit() False >>> cadena = "75.84" >>> cadena.isdigit() False SABER SI UNA CADENA CONTIENE SOLO MINÚSCULAS Mét odo:i s l ower ( ) Ret or na:T r ueoF al s e >>> cadena = "pepe grillo" >>> cadena.islower() True >>> cadena = "Pepe Grillo" >>> cadena.islower() False >>> cadena = "Pepegrillo" >>> cadena.islower() False >>> cadena = "pepegrillo75" >>> cadena.islower() True SABER SI UNA CADENA CONTIENE SOLO MAYÚSCULAS Mét odo:i s upper ( ) Ret or na:T r ueoF al s e >>> cadena = "PEPE GRILLO" >>> cadena.isupper() True >>> cadena = "Pepe Grillo" >>> cadena.isupper() False -9- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t >>> cadena = "Pepegrillo" >>> cadena.isupper() False >>> cadena = "PEPEGRILLO" >>> cadena.isupper() True SABER SI UNA CADENA CONTIENE SOLO ESPACIOS EN BLANCO Mét odo:i s s pace( ) Ret or na:T r ueoF al s e >>> cadena = "pepe grillo" >>> cadena.isspace() False >>> cadena = " " >>> cadena.isspace() True SABER SI UNA CADENA TIENE FORMATO DE TÍTULO Mét odo:i s t i t l e( ) Ret or na:T r ueoF al s e >>> cadena = "Pepe Grillo" >>> cadena.istitle() True >>> cadena = "Pepe grillo" >>> cadena.istitle() False MÉTODOS DE SUSTITUCIÓN DAR FORMATO A UNA CADENA, SUSTITUYENDO TEXTO DINÁMICAMENTE Mét odo:f or mat ( *ar gs , **k war gs ) Ret or na:l acadenaf or mat eada >>> cadena = "bienvenido a mi aplicación {0}" >>> cadena.format("en Python") bienvenido a mi aplicación en Python >>> cadena = "Importe bruto: ${0} + IVA: ${1} = Importe neto: {2}" >>> cadena.format(100, 21, 121) Importe bruto: $100 + IVA: $21 = Importe neto: 121 >>> cadena = "Importe bruto: ${bruto} + IVA: ${iva} = Importe neto: {neto}" >>> cadena.format(bruto=100, iva=21, neto=121) Importe bruto: $100 + IVA: $21 = Importe neto: 121 >>> cadena.format(bruto=100, iva=100 * 21 / 100, neto=100 * 21 / 100 + 100) Importe bruto: $100 + IVA: $21 = Importe neto: 121 -1 0- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t REEMPLAZAR TEXTO EN UNA CADENA Mét odo:r epl ace( “ s ubcadenaabus car ” ,“ s ubcadenaporl acual r eempl az ar ” ) Ret or na:l acadenar eempl az ada >>> buscar = "nombre apellido" >>> reemplazar_por = "Juan Pérez" >>> "Estimado Sr. nombre apellido:".replace(buscar, reemplazar_por) Estimado Sr. Juan Pérez: ELIMINAR CARACTERES A LA IZQUIERDA Y DERECHA DE UNA CADENA Mét odo:s t r i p( [ “ car act er ” ] ) Ret or na:l acadenas us t i t ui da >>> cadena = " www.eugeniabahit.com >>> cadena.strip() www.eugeniabahit.com >>> cadena.strip(' ') www.eugeniabahit.com " ELIMINAR CARACTERES A LA IZQUIERDA DE UNA CADENA Mét odo:l s t r i p( [ “ car act er ” ] ) Ret or na:l acadenas us t i t ui da >>> cadena = "www.eugeniabahit.com" >>> cadena.lstrip("w." ) eugeniabahit.com >>> cadena = " www.eugeniabahit.com" >>> cadena.lstrip() www.eugeniabahit.com ELIMINAR CARACTERES A LA DERECHA DE UNA CADENA Mét odo:r s t r i p( [ “ car act er ” ] ) Ret or na:l acadenas us t i t ui da >>> cadena = "www.eugeniabahit.com >>> cadena.rstrip( ) www.eugeniabahit.com " MÉTODOS DE UNIÓN Y DIVISIÓN UNIR UNA CADENA DE FORMA ITERATIVA Mét odo:j oi n( i t er abl e) Ret or na:l acadenauni daconel i t er abl e( l acadenaess epar adaporcadauno del osel ement osdel i t er abl e) >>> formato_numero_factura = ("Nº 0000-0", "-0000 (ID: ", ")") -1 1- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t >>> numero = "275" >>> numero_factura = numero.join(formato_numero_factura) >>> numero_factura Nº 0000-0275-0000 (ID: 275) PARTIR UNA CADENA EN TRES PARTES, UTILIZANDO UN SEPARADOR Mét odo:par t i t i on( “ s epar ador ” ) Ret or na:unat upl adet r esel ement osdondeel pr i mer oesel cont eni dodel a cadenapr ev i oal s epar ador , el s egundo, el s epar adormi s moyel t er cer o,el cont eni dodel acadenapos t er i oral s epar ador >>> tupla = "http://www.eugeniabahit.com".partition("www.") >>> tupla ('http://', 'www.', 'eugeniabahit.com') >>> protocolo, separador, dominio = tupla >>>> "Protocolo: {0}\nDominio: {1}".format(protocolo, dominio) Protocolo: http:// Dominio: eugeniabahit.com PARTIR UNA CADENA EN VARIAS PARTES, UTILIZANDO UN SEPARADOR Mét odo:s pl i t ( “ s epar ador ” ) Ret or na:unal i s t acont odosel ement osencont r adosal di v i di rl acadenaporun s epar ador >>> keywords = "python, guia, curso, tutorial".split(", ") >>> keywords ['python', 'guia', 'curso', 'tutorial'] PARTIR UNA CADENA EN EN LÍNEAS Mét odo:s pl i t l i nes ( ) Ret or na:unal i s t adondecadael ement oesunaf r acci óndel acadenadi v i da enl í neas >>> texto = """Linea 1 Linea 2 Linea 3 Linea 4 """ >>> texto.splitlines() ['Linea 1', 'Linea 2', 'Linea 3', 'Linea 4'] >>> texto = "Linea 1\nLinea 2\nLinea 3" >>> texto.splitlines() ['Linea 1', 'Linea 2', 'Linea 3'] -1 2- MANIPULACIÓN DE LISTAS Y TUPLAS Enes t ecapí t ul o, s ev er ánl osmét odosquepos eeel obj et ol i s t a.Al gunosde el l os , t ambi éns eencuent r andi s poni bl espar al ast upl as . MÉTODOS DE AGREGADO AGREGAR UN ELEMENTO AL FINAL DE LA LISTA Mét odo:append( “ nuev oel ement o” ) >>> nombres_masculinos = ["Alvaro", "Jacinto", "Miguel", "Edgardo", "David"] >>> nombres_masculinos.append("Jose") >>> nombres_masculinos ['Alvaro', 'David', 'Edgardo', 'Jacinto', 'Jose', 'Ricky', 'Jose'] AGREGAR VARIOS ELEMENTOS AL FINAL DE LA LISTA Mét odo:ex t end( ot r a_l i s t a) >>> nombres_masculinos.extend(["Jose", "Gerardo"]) >>> nombres_masculinos ['Alvaro', 'David', 'Edgardo', 'Jacinto', 'Jose', 'Ricky', 'Jose', 'Jose', 'Gerardo'] AGREGAR UN ELEMENTO EN UNA POSICIÓN DETERMINADA Mét odo:i ns er t ( pos i ci ón,“ nuev oel ement o” ) >>> nombres_masculinos.insert(0, "Ricky") >>> nombres_masculinos ['Ricky', 'Alvaro', 'David', 'Edgardo', 'Jacinto', 'Jose', 'Ricky', 'Jose', 'Jose', 'Gerardo'] MÉTODOS DE ELIMINACIÓN ELIMINAR EL ÚLTIMO ELEMENTO DE LA LISTA Mét odo:pop( ) Ret or na:el el ement oel i mi nado >>> nombres_masculinos.pop() 'Gerardo' >>> nombres_masculinos ['Ricky', 'Alvaro', 'David', 'Edgardo', 'Jacinto', 'Jose', 'Ricky', 'Jose', 'Jose'] I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t ELIMINAR UN ELEMENTO POR SU ÍNDICE Mét odo:pop( í ndi ce) Ret or na:el el ement oel i mi nado >>> nombres_masculinos.pop(3) 'Edgardo' >>> nombres_masculinos ['Ricky', 'Alvaro', 'David', 'Jacinto', 'Jose', 'Ricky', 'Jose', 'Jose'] ELIMINAR UN ELEMENTO POR SU VALOR Mét odo:r emov e( “ v al or ” ) >>> nombres_masculinos.remove("Jose") >>> nombres_masculinos ['Ricky', 'Alvaro', 'David', 'Jacinto', 'Ricky', 'Jose', 'Jose'] MÉTODOS DE ORDEN ORDENAR UNA LISTA EN REVERSA (INVERTIR ORDEN) Mét odo:r ev er s e( ) >>> nombres_masculinos.reverse() >>> nombres_masculinos ['Jose', 'Jose', 'Ricky', 'Jacinto', 'David', 'Alvaro', 'Ricky'] ORDENAR UNA LISTA EN FORMA ASCENDENTE Mét odo:s or t ( ) >>> nombres_masculinos.sort() >>> nombres_masculinos ['Alvaro', 'David', 'Jacinto', 'Jose', 'Jose', 'Ricky', 'Ricky'] ORDENAR UNA LISTA EN FORMA DESCENDENTE Mét odo:s or t ( r ev er s e= T r ue) >>> nombres_masculinos.sort(reverse=True) >>> nombres_masculinos ['Ricky', 'Ricky', 'Jose', 'Jose', 'Jacinto', 'David', 'Alvaro'] MÉTODOS DE BÚSQUEDA CONTAR CANTIDAD DE APARICIONES ELEMENTOS Mét odo:count ( el ement o) >>> nombres_masculinos = ["Alvaro", "Miguel", "Edgardo", "David", "Miguel"] -1 5- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t >>> nombres_masculinos.count("Miguel") 2 >>> nombres_masculinos = ("Alvaro", "Miguel", "Edgardo", "David", "Miguel") >>> nombres_masculinos.count("Miguel") 2 OBTENER NÚMERO DE ÍNDICE Mét odo:i ndex ( el ement o[ , i ndi ce_i ni ci o,i ndi ce_f i n] ) >>> nombres_masculinos.index("Miguel") 1 >>> nombres_masculinos.index("Miguel", 2, 5) 4 ANEXO SOBRE LISTAS Y TUPLAS CONVERSIÓN DE TIPOS Enel conj unt odel asf unci onesi nt egr adasdePy t hon, espos i bl eencont r ardos f unci onesqueper mi t enconv er t i rl i s t asent upl as ,yv i cev er s a.Es t asf unci ones s onl i s tyt upl e, par aconv er t i rt upl asal i s t asyl i s t asat upl as , r es pect i v ament e. Unodel osus osmásf r ecuent esesel decon v er s i óndet upl asal i s t as ,que r equi er ans ermodi f i cadas .Es t os ucedeamenudoconl osr es ul t adosobt eni dos apar t i rdeunacons ul t aabas ededat os . >>> tupla = (1, 2, 3, 4) >>> tupla (1, 2, 3, 4) >>> list(tupla) [1, 2, 3, 4] >>> lista = [1, 2, 3, 4] >>> lista [1, 2, 3, 4] >>> tuple(lista) (1, 2, 3, 4) -1 6- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t CONCATENACIÓN DE COLECCIONES Sepuedenconcat enar( ouni r )dosomásl i s t asodosomást upl as ,medi ant eel s i gnodeadi ci ón+ . Nopuedeuni r s eunal i s t aaunat upl a.L ascol ecci onesauni rdebens erdel mi s mot i po. >>> >>> >>> >>> [1, lista1 = lista2 = lista3 = lista3 2, 3, 4, [1, 2, 3, 4] [3, 4, 5, 6, 7, 8] lista1 + lista2 >>> >>> >>> >>> >>> (1, tupla1 = tupla2 = tupla3 = tupla4 = tupla4 2, 3, 4, (1, 2, (4, 6, (3, 5, tupla1 3, 4, 5, 6, 7, 8] 3, 4, 5) 8, 10) 7, 9) + tupla2 + tupla3 5, 4, 6, 8, 10, 3, 5, 7, 9) VALOR MÁXIMO Y MÍNIMO Sepuedeobt enerel v al ormáx i moymí ni mot ant odel i s t ascomodet upl as : >>> 10 >>> 5 >>> 1 >>> 8 >>> 1 max(tupla4) max(tupla1) min(tupla1) max(lista3) min(lista1) CONTAR ELEMENTOS L af unci ón len() s i r v et ant opar acont arel ement osdeunal i s t aot upl a, como car act er esdeunacadenadet ex t o: >>> len(lista3) 10 >>> len(lista1) 4 -1 7- MANIPULACIÓN DE DICCIONARIOS MÉTODOS DE ELIMINACIÓN VACIAR UN DICCIONARIO Mét odo:cl ear ( ) >>> diccionario = {"color": "violeta", "talle": "XS", "precio": 174.25} >>> diccionario {'color': 'violeta', 'precio': 174.25, 'talle': 'XS'} >>> diccionario.clear() >>> diccionario {} MÉTODOS DE AGREGADO Y CREACIÓN COPIAR UN DICCIONARIO Mét odo:copy ( ) >>> diccionario = {"color": "violeta", "talle": "XS", "precio": 174.25} >>> remera = diccionario.copy() >>> diccionario {'color': 'violeta', 'precio': 174.25, 'talle': 'XS'} >>> remera {'color': 'violeta', 'precio': 174.25, 'talle': 'XS'} >>> diccionario.clear() >>> diccionario {} >>> remera {'color': 'violeta', 'precio': 174.25, 'talle': 'XS'} >>> musculosa = remera >>> remera {'color': 'violeta', 'precio': 174.25, 'talle': 'XS'} >>> musculosa {'color': 'violeta', 'precio': 174.25, 'talle': 'XS'} >>> remera.clear() >>> remera {} >>> musculosa {} I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t CREAR UN NUEVO DICCIONARIO DESDE LAS CLAVES DE UNA SECUENCIA Mét odo:di ct . f r omk ey s ( s ecuenci a[ ,v al orpordef ect o] ) >>> secuencia = ["color", "talle", "marca"] >>> diccionario1 = dict.fromkeys(secuencia) >>> diccionario1 {'color': None, 'marca': None, 'talle': None} >>> diccionario2 = dict.fromkeys(secuencia, 'valor x defecto') >>> diccionario2 {'color': 'valor x defecto', 'marca': 'valor x defecto', 'talle': 'valor x defecto'} CONCATENAR DICCIONARIOS Mét odo:updat e( di cci onar i o) >>> diccionario1 = {"color": "verde", "precio": 45} >>> diccionario2 = {"talle": "M", "marca": "Lacoste"} >>> diccionario1.update(diccionario2) >>> diccionario1 {'color': 'verde', 'precio': 45, 'marca': 'Lacoste', 'talle': 'M'} ESTABLECER UNA CLAVE Y VALOR POR DEFECTO Mét odo:s et def aul t ( “ cl av e” [ , None| v al or _por _def ect o] ) Si l acl av enoex i s t e, l acr eaconel v al orpordef ect o.Si empr er et or na el v al orpar al acl av epas adacomopar ámet r o. >>> remera = {"color": "rosa", "marca": "Zara"} >>> clave = remera.setdefault("talle", "U") >>> clave 'U' >>> remera {'color': 'rosa', 'marca': 'Zara', 'talle': 'U'} >>> remera2 = remera.copy() >>> remera2 {'color': 'rosa', 'marca': 'Zara', 'talle': 'U'} >>> clave = remera2.setdefault("estampado") >>> clave >>> remera2 {'color': 'rosa', 'estampado': None, 'marca': 'Zara', 'talle': 'U'} >>> clave = remera2.setdefault("marca", "Lacoste") >>> clave 'Zara' -20- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t >>> remera2 {'color': 'rosa', 'estampado': None, 'marca': 'Zara', 'talle': 'U'} MÉTODOS DE RETORNO OBTENER EL VALOR DE UNA CLAVE Mét odo:get ( cl av e[ , “ v al orxdef ect os i l acl av enoex i s t e” ] ) >>> remera.get("color") 'rosa' >>> remera.get("stock") >>> remera.get("stock", "sin stock") 'sin stock' SABER SI UNA CLAVE EXISTE EN EL DICCIONARIO Mét odo:‘ cl av e’ i ndi cci onar i o >>> existe = 'precio' in remera >>> existe False >>> existe = 'color' in remera >>> existe True OBTENER LAS CLAVES Y VALORES DE UN DICCIONARIO Mét odo:i t ems ( ) diccionario = {'color': 'rosa', 'marca': 'Zara', 'talle': 'U'} for clave, valor in diccionario.items(): clave, valor Sal i da: ('color', 'rosa') ('marca', 'Zara') ('talle', 'U') OBTENER LAS CLAVES DE UN DICCIONARIO Mét odo:k ey s ( ) diccionario = {'color': 'rosa', 'marca': 'Zara', 'talle': 'U'} for clave in diccionario.keys(): clave 'marca' 'talle' 'color' Obt enercl av esenunal i s t a -21- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t >>> diccionario = {'color': 'rosa', 'marca': 'Zara', 'talle': 'U'} >>> claves = list(diccionario.keys()) >>> claves ['color', 'marca', 'talle'] OBTENER LOS VALORES DE UN DICCIONARIO Mét odo:v al ues ( ) diccionario = {'color': 'rosa', 'marca': 'Zara', 'talle': 'U'} for clave in diccionario.values(): clave 'rosa' 'Zara' 'U' Obt enerv al or esenunal i s t a >>> diccionario = {'color': 'rosa', 'marca': 'Zara', 'talle': 'U'} >>> claves = list(diccionario.values()) OBTENER LA CANTIDAD DE ELEMENTOS DE UN DICCIONARIO Par acont arl osel ement osdeundi cci onar i o, al i gual queconl asl i s t asyt upl as , s eut i l i z al af unci óni nt egr adalen() >>> diccionario = {'color': 'rosa', 'marca': 'Zara', 'talle': 'U'} >>> len(diccionario) 3 -22- MANEJO Y MANIPULACIÓN DE ARCHIVOS Py t honper mi t et r abaj arendosni v el esdi f er ent esconr es pect oal s i s t emade ar chi v osydi r ect or i os . Unodeel l os ,esat r av ésdel módul oos , quef aci l i t ael t r abaj ocont odoel s i s t emadear chi v osydi r ect or i os , ani v el del pr opi osSi s t emaOper at i v o. El s egundoni v el , esel queper mi t et r abaj arconar chi v osmani pul andos u l ect ur ayes cr i t ur ades del apr opi aapl i caci ónos cr i pt ,t r at andoacadaar chi v o comounobj et o. MODOS DE APERTURA DE UN ARCHIVO El mododeaper t ur adeunar chi v o, es t ár el aci onadoconel obj et i v of i nal que r es pondeal apr egunt a“p ¿ ar aquéseest áabr i endoest ear chi vo?”.L as r es pues t aspuedens erv ar i as :par al eer , par aes cr i bi r ,opar al eeryes cr i bi r . Cadav ezques e“ abr e”unar chi v os ees t ácr eandounpunt er oenmemor i a. Es t epunt er opos i ci onar áuncur sor( opunt odeacces o)enunl ugares pecí f i co del amemor i a( di chodemodomáss i mpl e,pos i ci onar áel cur s orenunby t e det er mi nadodel cont eni dodel ar chi v o) . Es t ecur s ors emov er ádent r odel ar chi v o, amedi daques el eaoes cr i baen di choar chi v o. Cuandounar chi v os eabr eenmodol ect ur a, el cur s ors epos i ci onaenelby t e0 del ar chi v o( esdeci r ,al comi enz odel ar chi v o) .Unav ezl eí doel ar chi v o,el cur s orpas aalby t ef i nal del ar chi v o( equi v al ent eacant i dadt ot al deby t esdel ar chi v o) .L omi s mos ucedecuandos eabr eenmodoes cr i t ur a.El cur s ors e mov er áamedi daques ev aes cr i bi endo. I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t Cuandos edes eaes cr i bi ral f i nal deunar chi v ononul o,s eut i l i z ael modo append( agr egar ) .Dees t af or ma, el ar chi v os eabr econel cur s oral f i nal del ar chi v o. El s í mbol o+comos uf i j odeunmodo, agr egael modocont r ar i oal deaper t u r a unav ezs eej ecut el aacci óndeaper t ur a.Porej empl o,el modor( r ead)conel s uf i j o+( r + ) , abr eel ar chi v opar al ect ur a, yt r asl al ect ur a,v uel v eel cur s oral by t e0. L as i gui ent et abl amues t r al osdi f er ent esmodosdeaper t ur adeunar chi v o: I ndi cador r Mododeaper t ur a Ubi caci óndelpunt er o Sol ol ect ur a Al i ni ci odel ar chi v o rb Sol ol ect ur aenmodobi nar i o Al i ni ci odel ar chi v o r+ L ect ur ayes cr i t ur a Al i ni ci odel ar chi v o L ect ur ayes cr i t ur aenmodobi nar i o Al i ni ci odel ar chi v o w Sol oes cr i t ur a. Sobr ees cr i beel ar chi v os i ex i s t e. Cr eael ar chi v os i noex i s t e. Al i ni ci odel ar chi v o wb Sol oes cr i t ur aenmodobi nar i o. Sobr ees cr i beel ar chi v os i ex i s t e. Cr eael ar chi v os i noex i s t e. Al i ni ci odel ar chi v o w+ Es cr i t ur ayl ect ur a. Sobr ees cr i beel ar chi v os i ex i s t e. Cr eael ar chi v os i noex i s t e. Al i ni ci odel ar chi v o wb+ Es cr i t ur ayl ect ur aenmodobi nar i o. Sobr ees cr i beel ar chi v os i ex i s t e. Cr eael ar chi v os i noex i s t e. Al i ni ci odel ar chi v o Añadi do( agr egarcont eni do) . Cr eael ar chi v os i és t enoex i s t e. Si el ar chi v oex i s t e,al f i nal de és t e. Si el ar chi v onoex i s t e,al comi enz o. ab Añadi doenmodobi nar i o( agr egar cont eni do) . Cr eael ar chi v os i és t enoex i s t e. Si el ar chi v oex i s t e,al f i nal de és t e. Si el ar chi v onoex i s t e,al comi enz o. a+ Añadi do( agr egarcont eni do)yl ect ur a. Si el ar chi v oex i s t e,al f i nal de rb+ a -25- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t ab+ Cr eael ar chi v os i és t enoex i s t e. és t e. Si el ar chi v onoex i s t e,al comi enz o. Añadi do( agr egarcont eni do)yl ect ur aen modobi nar i o. Cr eael ar chi v os i és t enoex i s t e. Si el ar chi v oex i s t e,al f i nal de és t e. Si el ar chi v onoex i s t e,al comi enz o. ALGUNOS MÉTODOS DEL OBJETO FILE El obj et of i l e, ent r es usmét odosdi s ponedel oss i gui ent es : Mét odo Descr i pci ón read([bytes]) L eet odoel cont eni dodeunar chi v o. Si s el epas al al ongi t uddeby t es ,l eer ás ol oel cont eni do has t al al ongi t udi ndi cada. readlines() L eet odasl asl í neasdeunar chi v o write(cadena) Es cr i becadenadent r odel ar chi v o writelines(secuencia) Secuenci as er ácual qui eri t er abl ecuy osel ement oss er án es cr i t osunoporl í nea ACCESO A ARCHIVOS MEDIANTE LA ESTRUCTURA WITH Conl aes t r uct ur awi t hyl af unci ónopen( ) , puedeabr i r s eunar chi v oen cual qui ermodoyt r abaj arconél , s i nneces i daddecer r ar l oodes t r ui rel punt er o, y aquedees t os eencar gal aes t r uct ur awi t h. L eerunar chi v o: with open("archivo.txt", "r") as archivo: contenido = archivo.read() Es cr i bi renunar chi v o: contenido = """ Este será el contenido del nuevo archivo. El archivo tendrá varias líneas. -26- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t """ with open("archivo.txt", "r") as archivo: archivo.write(contenido) MANEJO DE ARCHIVOS CSV El f or mat oCSVder i v as unombr edel i ngl és«commas epar at edv al ues » ( v al or ess epar adosporcoma) , def i ni doenl asRF C41 80.Set r at adear chi v os det ex t opl ano, des t i nadosal al macenami ent omas i v odedat os .Esunodel os f or mat osmáss i mpl espar aef ect uaranál i s i sdedat os .Dehecho,muchos f or mat osdear chi v onol i br es( ol i br esper omáscompl ej os ) , s uel enpas ar s ea f or mat oCSVpar aapl i carci enci adedat oscompl ej acondi v er s osl enguaj es . Unar chi v oCSVs eencuent r af or madoporunacabecer aquedef i nenombr es decol umnas ,yl asf i l ass i gui ent es , t i enenl osdat oscor r es pondi ent esacada col umna,s epar adosporunacoma.Si nembar go, muchosot r oss í mbol os puedenut i l i z ar s ecomos epar ador esdecel das .Ent r eel l os , el t abul adoyel punt oycomas oni gual def r ecuent esquel acoma. ALGUNOS EJEMPLOS DE ARCHIVOS CSV Dat osmet eor ol ógi cos( s epar adospor; ) ID;DATA;VV;DV;T;HR;PPT;RS;P 0;2016-03-01 00:00:00;;;9.9;73;;; 1;2016-03-01 00:30:00;;;9.0;67;;; 2;2016-03-01 01:00:00;;;8.3;64;;; 3;2016-03-01 01:30:00;;;8.0;61;;; 4;2016-03-01 02:00:00;;;7.4;62;;; 5;2016-03-01 02:30:00;;;8.3;47;;; 6;2016-03-01 03:00:00;;;7.7;50;;; 7;2016-03-01 03:30:00;;;9.0;39;;; Punt aj esobt eni dosporj ugador esdeunt or neo( s epar adospor, ) nombre,cantidad,anio -27- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t Maria,858,1930 Jose,665,1930 Rosa,591,1930 Juan Carlos,522,1930 Antonio,509,1930 Maria Esther,495,1930 Maria Luisa,470,1930 Juana,453,1930 Juan,436,1930 Empr es asr egi s t r adasenl aI ns pecci ónGener al deJ us t i ci adeAr gent i na ( s epar adospor, ydat osent r ecomi l l ados ) "numero_correlativo","tipo_societario","descripcion_tipo_societario","razon_soci al","dada_de_baja","codigo_baja","detalle_baja" "10","10","SOCIEDAD COLECTIVA","A A VALLE Y COMPA¥IA","S","42014","PERTENECE A REGISTRO ENTIDADES INACTIVAS" "11","10","SOCIEDAD COLECTIVA","A LUCERO Y H CARATOLI","S","42014","PERTENECE A REGISTRO ENTIDADES INACTIVAS" "12","10","SOCIEDAD COLECTIVA","A PUIG E HIJOS","S","42014","PERTENECE A REGISTRO ENTIDADES INACTIVAS" "13","10","SOCIEDAD COLECTIVA","A C I C A","S","42014","PERTENECE A REGISTRO ENTIDADES INACTIVAS" "14","10","SOCIEDAD COLECTIVA","A¥ON BEATRIZ S Y CIA","S","42014","PERTENECE A REGISTRO ENTIDADES INACTIVAS" "15","10","SOCIEDAD COLECTIVA","ABA DIESEL","S","42014","PERTENECE A REGISTRO ENTIDADES INACTIVAS" "16","10","SOCIEDAD COLECTIVA","ABADA L JOSE Y JORGE JOSE ABADAL","S","42014","PERTENECE A REGISTRO ENTIDADES INACTIVAS" "17","10","SOCIEDAD COLECTIVA","ABADAL JOSE E HIJO","S","42014","PERTENECE A REGISTRO ENTIDADES INACTIVAS" "18","10","SOCIEDAD COLECTIVA","ABATE Y MACIAS","S","42014","PERTENECE A REGISTRO ENTIDADES INACTIVAS" Espos i bl et ambi én, encont r ardat osal macenadosenar chi v osdet ex t o( T XT ) conf or mat osmuys i mi l ar esal ques ees per aencont r arenunCSV.Av eceses pos i bl edes ar r ol l aruns cr i ptdef or mat opar acor r egi res t osar chi v osyas í poder t r abaj arconunCSV. Obs er v aci onesmet eor ol ógi casenT XT FECHA TMAX TMIN -------- ----- ----07122017 28.0 19.0 07122017 26.8 12.4 NOMBRE ---------------------------------------AEROPARQUE AERO AZUL AERO -28- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t 07122017 07122017 07122017 07122017 07122017 07122017 29.6 22.7 3.0 2.4 3.9 0.7 7.8 6.7 -8.5 -0.2 -0.6 -3.6 BAHIA BLANCA AERO BARILOCHE AERO BASE BELGRANO II BASE CARLINI (EX JUBANY) BASE ESPERANZA BASE MARAMBIO TRABAJAR CON ARCHIVOS CSV DESDE PYTHON Py t honpr ov eedeunmódul opr opi ol l amadocs v , quef aci l i t ael par s eodel os dat osdear chi v osCSV, t ant opar al ect ur acomoes cr i t ur a. Es t emódul o, s eut i l i z aencombi naci ónconl aes t r uct ur awi t hyl af unci ónopen, par al eerogener arel ar chi v o, yel módul oCSVpar as uanál i s i s( par s i ng) . LECTURA DE ARCHIVOS CSV Cont eni dodear chi v o. cs v 0;2016-03-01 1;2016-03-01 2;2016-03-01 3;2016-03-01 4;2016-03-01 5;2016-03-01 6;2016-03-01 7;2016-03-01 8;2016-03-01 00:00:00;;;9.9;73;;; 00:30:00;;;9.0;67;;; 01:00:00;;;8.3;64;;; 01:30:00;;;8.0;61;;; 02:00:00;;;7.4;62;;; 02:30:00;;;8.3;47;;; 03:00:00;;;7.7;50;;; 03:30:00;;;9.0;39;;; 04:00:00;;;8.7;39;;; from csv import reader with open("archivo.csv", "r") as archivo: documento = reader(archivo, delimiter=';', quotechar='"') for fila in documento: ' '.join(fila) Sal i da: '0 '1 '2 '3 '4 '5 '6 '7 '8 2016-03-01 2016-03-01 2016-03-01 2016-03-01 2016-03-01 2016-03-01 2016-03-01 2016-03-01 2016-03-01 00:00:00 00:30:00 01:00:00 01:30:00 02:00:00 02:30:00 03:00:00 03:30:00 04:00:00 9.9 9.0 8.3 8.0 7.4 8.3 7.7 9.0 8.7 73 67 64 61 62 47 50 39 39 ' ' ' ' ' ' ' ' ' -29- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t Cuandoel ar chi v oCSVt i eneunacabecer a,esneces ar i os al t ardi cho encabez ado: Cont eni dodear chi v o. cs v ID;DATA;VV;DV;T;HR;PPT;RS;P 0;2016-03-01 00:00:00;;;9.9;73;;; 1;2016-03-01 00:30:00;;;9.0;67;;; 2;2016-03-01 01:00:00;;;8.3;64;;; 3;2016-03-01 01:30:00;;;8.0;61;;; 4;2016-03-01 02:00:00;;;7.4;62;;; 5;2016-03-01 02:30:00;;;8.3;47;;; 6;2016-03-01 03:00:00;;;7.7;50;;; 7;2016-03-01 03:30:00;;;9.0;39;;; 8;2016-03-01 04:00:00;;;8.7;39;;; from csv import reader with open("archivo.csv", "r") as archivo: documento = reader(archivo, delimiter=';', quotechar='"') cabeceras = next(documento) for fila in documento: ' '.join(fila) Sal i da: '0 '1 '2 '3 '4 '5 '6 '7 '8 2016-03-01 2016-03-01 2016-03-01 2016-03-01 2016-03-01 2016-03-01 2016-03-01 2016-03-01 2016-03-01 00:00:00 00:30:00 01:00:00 01:30:00 02:00:00 02:30:00 03:00:00 03:30:00 04:00:00 9.9 9.0 8.3 8.0 7.4 8.3 7.7 9.0 8.7 73 67 64 61 62 47 50 39 39 ' ' ' ' ' ' ' ' ' Ot r af or madel eerar chi v osCSVconcabecer as , esut i l i z arel obj et o Di ct Readerenv ezder eader ,yas í acceders ol oal v al ordel ascol umnas des eadas , pors unombr e: from csv import DictReader with open("archivo.csv", "r") as archivo: documento = DictReader(archivo, delimiter=';', quotechar='"') for fila in documento: fila['DATA'] -30- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t Sal i da: '2016-03-01 '2016-03-01 '2016-03-01 '2016-03-01 '2016-03-01 '2016-03-01 '2016-03-01 '2016-03-01 '2016-03-01 00:00:00' 00:30:00' 01:00:00' 01:30:00' 02:00:00' 02:30:00' 03:00:00' 03:30:00' 04:00:00' ESCRITURA DE ARCHIVOS CSV Es cr i t ur adeunCSVs i ncabecer a: from csv import writer with open("datos.csv", "w") as archivo: documento = writer(archivo, delimiter=';', quotechar='"') documento.writerows(matriz) Enel ej empl oant er i or ,unamat r i zpodr í as erunal i s t adel i s t asconi gual cant i daddeel ement os .Porej empl o: matriz = [ ['Juan', 373, 1970], ['Ana', 124, 1983], ['Pedro', 901, 1650], ['Rosa', 300, 2000], ['Juana', 75, 1975], ] L oant er i or , gener ar í aunar chi v ol l amadodat os . cs vconel s i gui ent econt eni do: eugenia@bella:~$ cat datos.csv Juan;373;1970 Ana;124;1983 Pedro;901;1650 Rosa;300;2000 Juana;75;1975 -31- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t Es cr i t ur adeunCSVconcabecer a: Enes t ecas o, l amat r i zas eres cr i t ar equer i r ás erunal i s t adedi cci onar i oscuy as cl av escoi nci danconl ascabecer asi ndi cadas . matriz = [ dict(jugador='Juan', puntos=373, anio=1970), dict(jugador='Ana', puntos=124, anio=1983), dict(jugador='Pedro', puntos=901, anio=1650), dict(jugador='Rosa', puntos=300, anio=2000), dict(jugador='Juana', puntos=75, anio=1975), ] from csv import DictWriter cabeceras = ['jugador', 'puntos', 'anio'] with open("datos.csv", "w") as archivo: documento = DictWriter(archivo, delimiter=';', quotechar='"', fieldnames=cabeceras) documento.writeheader() documento.writerows(matriz) Funci onesest adí st i cassi mpl es Sobr el i s t asyt upl asobt eni dasonoapar t i rdeunCSV, puedenef ect uar s e f unci oneses t adí s t i cass i mpl escomol ass i gui ent es : Contar elementos Sumar elementos Obtener número mayor Obtener numero menor len(coleccion) sum(coleccion) max(coleccion) min(coleccion) -32- PROBABILIDAD Y ESTADÍSTICA CON PYTHON PROBABILIDAD DE SUCESOS SIMPLES Y COMPUESTOS MUTUAMENTE EXCLUYENTES EN PYTHON ESPACIO MUESTRAL Unespaci omuest r alesunconj unt odes uces ospos i bl es ,comol osque podr í anr es ul t aral l anz arundado: espacio_muestral = [1, 2, 3, 4, 5, 6] Ser ef i er ecomopunt omuest r alacadael ement oenunes paci omues t r al .L a cant i daddepunt osmues t r al ess edenot apor t al quepar ael es paci o mues t r al , . n = len(espacio_muestral) SUCESOS SIMPLES Y COMPUESTOS Unsuceso, esunconj unt oder es ul t adosdent r odeunes paci omues t r al .Por ej empl o: • el l anz ami ent odeundadoesuns uces o • l apr obabi l i daddequeendi chol anz ami ent os al gael númer o5, esun sucesosi mpl e yesexcl uy ent e:s i s al e5,nopuede s i mul t áneament es al i rni ngúnot r onúmer o. • l apr obabi l i daddequeenel l anz ami ent os al gaunnúmer oi mpar , esel sucesocompuest o s i mpl esex cl uy ent es quedepender áas uv ezdel oss uces os , y I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t ASIGNACIÓN DE PROBABILIDADES L aas i gnaci óndepr obabi l i dadesesaquel l aquepr ov eemodel osmat emát i cos par acal cul arl aspos i bi l i dadesdeques uces oses pecí f i cosocur r anono. L apr obabi l i daddeuns uces os edenot apor . L oss uces ospuedens er : • s i mpl esocompues t os • mut uament eex cl u y ent esoi ndependi ent es SUCESOS SIMPLES MUTUAMENTE EXCLUYENTES Sis econs i der aunes paci omues t r al , cadaunodel ospunt osmues t r al es , quedar ádenot adopor yl apr obabi l i daddeés t os ,des i gnadacomo , quedar ádet er mi nadapor : probabilidad = 1.0 / n EnPy t hon,s er equi er equeal menosunel ement odel aecuaci óns ea unnúmer or eal s il oques er equi er ecomor es ul t adoesunnúmer or eal . L apr obabi l i daddecadapunt omues t r al , comos uces osex cl uy ent esent r es í , es l ami s mapar acadas uces o. -35- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t SUCESOS COMPUESTOS POR SUCESOS SIMPLES MUTUAMENTE EXCLUYENTES Cuandol oss uces oss i mpl esqueconf or maal s uces ocompues t o s on mut uament eex cl uy ent e, l apr obabi l i daddel s uces ocompues t oes t ar ádadapor l as umadel aspr obabi l i dadesdecadas uces os i mpl e , t al que: Porej empl o, par aes t i marl apr obabi l i daddequeenunúni col anz ami ent ode dado, s al gaunnúmer opar , s eobt i eneel s uces o del aspr obabi l i dadesdecadaunodes uces oss i mpl es es paci omues t r al , dadopors uma del t al que: Enel pr i merr es ul t ado ( enel s egundopas o, ant esdehal l arel máx i mocomún di v i s or[ MCD]yr educi rl af r acci óna ) ,el denomi nadoresequi v al ent eal a cant i daddes uces oss i mpl esdent r odel s uces ocompues t o«númer ospar es »y s edenot apor .El denomi nador ,, es , el t ot al det odosl oss uces osdel es paci omues t r al .Dees t af or ma, l apr obabi l i daddeuns uces ocompues t o pors uces osmut uament eex cl uy ent esquedadadaporel coci ent ede y t al que: numeros_pares = [i for i in espacio_muestral if i % 2 is 0] h = len(numeros_pares) probabilidad = float(h) / n -36- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t Uns uces ocompues t os epuededenot arporl auni óndes uss uces oss i mpl es ( s í mbol o , l eí docomo" o" ) , t al que: Porej empl o, par ael cas odel s uces o«númer ospar es, » s eobt i eneque: T al que esuns uces oy , y s onl aspr obabi l i dadesde l ost r ess uces osquel ocomponen.Enunnuev ocont ex t o, t r at adocomouns uces o . FUNCIONES # Probabilidad de sucesos simples mutuamente excluyentes pssme = lambda e: 1.0 / len(e) # Probabilidad de sucesos compuestos mutuamente excluyentes def pscme(e, sc): n = len(e) return len(sc) / float(n) PROBABILIDAD CONDICIONAL EN PYTHON c.Pr obabi l i daddeB: d.Pr obabi l i daddel ai nt er s ecci ón: e = espacio_muestral = [1, 2, 3, 4, 5, 6] n = len(e) # total de la muestra # probabilidad de A a = [i for i in e if i % 2 is not 0] pa = len(a) / float(n) -37- puedes er I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t # probabilidad de B b = [i for i in e if i % 2 is 0] pb = len(b) / float(n) # probabilidad de la intersección de sucesos pi = pa * pb FUNCIONES # Probabilidad condicional: sucesos dependientes def pscd(e, a, b): i = list(set(a).intersection(b)) pi = pscme(e, i) pa = pscme(e, a) return pi / pa # Probabilidad condicional: sucesos independientes def psci(e, a, b): pa = pscme(e, a) pb = pscme(e, b) return pa * pb SUCESOS DEPENDIENTES Ser ef i er eal apr obabi l i daddequedoss uces osocur r ans i mul t áneament e s i endoqueel s egundos uces odependedel aocur r enci adel pr i mer o. i ocur r e , s edenot apor L apr obabi l i daddequeocur r a s ys el ee como“ l apr obabi l i daddeBdadoA” , t al que: Donde esl apr obabi l i daddel ai nt er s ecci óndel oss uces osde y —def i ni dacomo: —, t al quel ai nt er s ecci ónesun nuev os uces ocompues t opors uces oss i mpl es .Enel s i gui ent eej empl o, equi v al dr í aa ( por que1y3es t ánt ant oen comoen ) . Ej empl o:¿quépr obabi l i dadex i s t edequeal l anz arundador es ul t eunnúmer o i mparmenorque4? -38- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t El l anz ami ent odel dadoesuns uces oens í mi s mo.Sedes eaav er i guarl a pr obabi l i dadde ( númer omenorque4)dadoque ( númer oi mpar )ocur r i es eenel es paci omues t r al . espacio_muestral = [1, 2, 3, 4, 5, 6] a = [i for i in espacio_muestral if i % 2 is not 0] b = [i for i in espacio_muestral if i < 4] Par acal cul arl apr obabi l i daddeunai nt er s ecci ón, pr i mer os eobt i enel a i nt er s ecci ón: intersec = [i for i in a if i in b] Yl uego, s ecal cul al apr obabi l i daddel nuev os uces ocompues t o : o,l oqueesi gual : Esneces ar i oademás ,obt enerl apr obabi l i dadde , t eni endoencuent aque est ambi énuns uces ocompues t o: F i nal ment e, s eobt i eneque: e = espacio_muestral = [1, 2, 3, 4, 5, 6] a = [i for i in e if i % 2 is not 0] b = [i for i in e if i < 4] # números impares # números menores que 4 -39- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t intersec = [i for i in a if i in b] n = len(e) ha = len(a) hintersec = len(intersec) # intersección de A y B # total de la muestra # total de sucesos simples en A # total de sucesos simples en la intersección # probabilidad de la intersección probabilidad_intersec = float(hintersec) / n # probabilidad de 'a' probabilidad_a = float(ha) / n # probabilidad condicional probabilidad_b_dado_a = probabilidad_intersec / probabilidad_a TEORÍA DE CONJUNTOS EN PYTHON Al obt enerl ai nt er s ecci óndedoss uces oscompues t oss ehaempl eadoun mét odomanual al deci r :dev ol v er' i ' porcada' i ' enl al i s t a' a' s i es t áenl al i s t a ' b' . Noobs t ant e, dadoquecadas uces ocompues t oesunconj unt oyquePy t hon pr ov eeunt i podedat osl l amadoset ( conj unt o) , espos i bl eobt enerl a i nt er s ecci ónmani pul andol oss uces oscompues t oscomoconj unt osdePy t hon. Conset s epuedeconv er t i rcual qui eri t er abl eaconj unt oyr eal i z ar oper aci onesdeconj unt oscomouni ónei nt er s ecci óncuandos eaneces ar i o. intersec = list(set(a).intersection(b)) Aquíel conj unt oobt eni dos econv i er t eenl i s t aaf i naf i ndeguar darcoher enci a conel r es t odel códi goyqueel el ement or es ul t ant es opor t el asoper aci onesy t r at ami ent ohabi t ual esdeunal i s t a.Ant el adudades i cor r es pondeus arl i s t aso conj unt os ,s edebeapl i carel pr i nci pi odes i mpl i ci dadei mpl ement arl as ol uci ón máss i mpl e. SUCESOS INDEPENDIENTES Adi f er enci adel cas oant er i or , aquí l apr obabi l i daddequeocu r r a noes t á af ect aporl aocur r enci ade .Porej empl o, l apr obabi l i daddel an z arundado -40- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t yobt enerunnúmer opar( s uces oB)noes t áaf ect adaporel hechodequeenun l anz ami ent opr ev i os eobt uv i es eunnúmer oi mpar( s uces oA) .L apr obabi l i dad deBesi ndependi ent edeAyes t ádadaporel pr oduct odel apr obabi l i dadde amboss uces os : Aquíl ai nt er s ecci ónesl apr obabi l i daddequeconf l uy anamboss uces os . Cal cul adal apr obabi l i daddeamboss uces osi ndependi ent es , s emul t i pl i can obt eni endo: a.Es paci omues t r al ( par aamboss uces os ) : b.Pr obabi l i daddeA: TEOREMA DE BAYES EN PYTHON TEOREMA DE BAYES Y PROBABILIDAD DE CAUSAS Dadaunas er i edes uces os cu y as umat ot al esunes paci omues t r al yun s uces o cual qui er a, el T eor emadeBay esper mi t econocerl apr obabi l i dadde quecadas uces o de , s eal acaus ade .Pores t emot i v o, t ambi éns el o conocecomopr obabi l i daddecausas. DATOS: CASO PRÁCTICO Dadaunaci udadde50000habi t ant es,conl as i gui ent edi s t r i buci ón: -41- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t Ni ñas Ni ños 1 1 000 9000 Muj er es 1 6000 Hombr es 1 4000 Y, unr epor t ede9000casosdegr i pe,di s t r i bui dosdel as i gui ent ef or ma: Ni ñas Ni ños 2000 1 500 Muj er es 3000 Hombr es 2500 Sepr et endeobt enerl apr obabi l i daddequel acaus adecont r aergr i pes eael hechodeper t encesaundet er mi nados ect ordemogr áf i co( porej empl o, al s ect ordemogr áf i coconf or madoporni ñosoni ñas ) . ANÁLISIS Del oex pues t outs upr as eobt i eneque: • L aci udad( t ot al abs ol ut odehabi t ant es )esel es paci omues t r al . • L acant i daddeni ñas , ni ños , muj er esyhombr esescadaunodel os s uces os del es paci omues t r al • Comov al orde s et omal as umadel es paci omues t r al • El v al orde par al oss uces os , t al que escadaunodel osv al or esdadosenl a t abl adedi s t r i buci óndehabi t ant es . • T energr i peesel s uces o . • L at abl adedi s t r i buci óndecas osdegr i pe,s ecor r es pondeal as i nt er s ecci onesdel s uces o concadas uces o , esdeci racada Segúnel cál cul odepr obabi l i dadques eapl i que,s epodr áobt ener : -42- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t • L apr obabi l i daddes erni ña, ni ño, muj eruhombr eenl aci udad,pormedi o de .Secons i der aunapr obabi l i dadapr i or i . • L apr obabi l i daddes erni ña, ni ño, muj eruhombr eyt energr i pe, ques e obt i enecon ys econs i der aunapr obabi l i dadcondi ci onal . • L apr obabi l i daddequecual qui erhabi t ant e,i ndependi ent ement edel s ect oral queper t enez cat engagr i pe, s eobt i enecon ys el acons i der aunapr obabi l i dadt ot al . • L apr obabi l i daddequeal gui encongr i pes eani ña, ni ño, muj eruhombr e s eobt i eneconel T eor emadeBay es.Aes t apr obabi l i dads el acons i der a unapr obabi l i dadapost er i or i ,per mi t i endodarr es pues t aapr egunt as cómo¿cuál esl apr obabi l i daddequeunnuev ocas odegr i pes eadeen unni ñooni ña? Unaf or maef i cazyor denadadeobt enerunapr obabi l i dadapos t er i or iconel T eor emadeBay es ,esobt enerpr i mer ol ast r espr obabi l i dadespr ev i as :apr i or i , condi ci onal yt ot al . AVI SO: enl os uces i v o,s eut i l i z ar ámap(float, <lista>) enel códi go f uent e, par aconv er t i rl osel ement osdeunal i s t aennúmer osr eal es , t odav ezquehacer l onos obr ecar gueel códi go. PROCEDIMIENTO 1 .Cál cul odepr obabi l i dadapr i or i Ret or na:pr obabi l i daddequeunhabi t ant eper t enez caauns ect or demogr áf i coes pecí f i co. -43- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t Fór mul a: Dat osnecesar i os: =dat osdel at abl adedi s t r i buci óndehabi t ant es =s i empr eesl acant i dadt ot al del es paci omues t r al ( 50000) Resul t ados: pr obabi l i daddes erni ña pr obabi l i daddes erni ño pr obabi l i daddes ermuj er pr obabi l i daddes erhombr e Códi goPy t hon: habitantes = map(float, [11000, 9000, 16000, 14000]) n = sum(habitantes) pa = [h / n for h in habitantes] 2.Pr obabi l i dadcondi ci onal Ret or na:pr obabi l i daddet energr i peper t eneci endoauns ect ordemogr áf i co es pecí f i co. Cer t ez a: ( el s ect ordemogr áf i co) Obj et i v o: ( l apr obabi l i daddet energr i pe) -44- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t Fór mul a: Dat osnecesar i os: = =i nt er s ecci ones( dat osdel at abl adedi s t r i buci óndecas osdegr i pe) Resul t ados: pr obabi l i daddet energr i pes i endoni ña pr obabi l i daddet energr i pes i endoni ño pr obabi l i daddet energr i pes i endomuj er pr obabi l i daddet energr i pes i endohombr e Códi goPy t hon: afectados = map(float, [2000, 1500, 3000, 2500]) pi = [k / n for k in afectados] pba = [pi[i] / pa[i] for i in range(len(pi))] 3.Pr obabi l i dadt ot al Ret or na:pr obabi l i daddequecual qui er adel oshabi t ant es , i ndependi ent ement edel s ect ordemogr áf i coal queper t enez can,puedat ener gr i pe. -45- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t Fór mul a: Dat osnecesar i os: pr obabi l i dadapr i or i pr obabi l i dadcondi ci onal Resul t ados: Códi goPy t hon: productos = [pa[i] * pba[i] for i in range(len(pa))] pb = sum(productos) Obs er v aci ones : ( a)not arqueenl as al i daant er i orex i s t i r áunadi f er enci ade. 01conr es pect oa l as ol uci ónmanual .Es t oesdebi doal r edondeoef ect uadoenl as ol uci ón manual .Di chadi f er enci apuedes erer r adi cadaempl eando3deci mal esenl os v al or esdel apr obabi l i dadcondi ci onal ( enl ugardedos )enl as ol uci ónmanual . -46- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t ( b)l apr obabi l i daddeNO t energr i pees t ar ádadapor t al que per onos er áneces ar i out i l i z ar l apar aes t eej empl oconel T eor emadeBay es . 4.Pr obabi l i dadapost er i or i Ret or na:pr obabi l i daddeper t enecerauns ect ordemogr áf i coes pecí f i coy t energr i pe. Cer t ez a: ( t energr i pe) Obj et i v o: ( l apr obabi l i daddeper t enecerauns ect ordemogr áf i coconcr et o) Fór mul a: Dat osnecesar i os: =el pr oduct oobt eni doencadaunodel ost ér mi nosdel a pr obabi l i dadt ot al =l apr obabi l i dadt ot al Resul t ados: pr obabi l i daddes erni ñat eni endogr i pe pr obabi l i daddes erni ñot eni endogr i pe -47- I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t pr obabi l i daddes ermuj ert eni endogr i pe pr obabi l i daddes erhombr et eni endogr i pe Códi goPy t hon: pab = [p / pb for p in productos] FUNCIONES # Teorema de Bayes def bayes(e, b): n = float(sum(e)) pa = [h / n for h in e] pi = [k / n for k in b] pba = [pi[i] / pa[i] for i in range(len(pi))] prods = [pa[i] * pba[i] for i in range(len(pa))] ptb = sum(prods) pab = [p / pb for p in prods] return pab BIBLIOGRAFÍA COMPLEMENTARIA [ 0]Pr obabi l i dadyEs t adí s t i ca, Mur r aySpi egel .McGr awHi l l , Méx i co1 988.I SBN: 9 68451 1 027 -48- ANEXO I: CÁLCULOS COMPLEJOS ESTADÍSTICA POBLACIONAL Y MUESTRAL: CÁLCULO DE VARIANZA Y DESVÍO ESTÁNDAR from math import sqrt muestras = [12, 23, 24, 22, 10, 17] # lista de ejemplo n = len(muestras) media = sum(muestras) / float(n) diferencias = [xi - media for xi in muestras] potencias = [x ** 2 for x in diferencias] sumatoria = sum(potencias) varianza_muestral = sumatoria / (n - 1) varianza_poblacional = sumatoria / n desvio_muestral = sqrt(varianza_muestral) desvio_poblacional = sqrt(varianza_poblacional) I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t PRODUCTO ESCALAR DE DOS VECTORES vector1 = [3, 0] vvector2 = [4, 3] pe = sum([x * y for x, y in zip(vector1, vector2)]) CÁLCULOS DE FRECUENCIA RELATIVA, ABSOLUTA Y ACUMULADA # FRECUENCIA ABSOLUTA # Cantidad de veces que un valor aparece en una muestra muestras = [1, 2, 3, 4, 3, 2, 6, 7, 3, 3, 1, 8, 5, 9] absolutos = [] frecuencias = [] for n in muestras: if not n in absolutos: absolutos.append(n) fi = muestras.count(n) frecuencias.append(fi) N = sum(frecuencias) # == len(muestras) # FRECUENCIA RELATIVA # Cociente entre la frecuencia absoluta y N relativas = [float(fi) / N for fi in frecuencias] sumarelativas = round(sum(relativas)) # == 1 # FRECUENCIA ACUMULADA # Suma de todas las frecuencias menores o iguales a la frecuencia absoluta frecuencias.sort() acumuladas = [sum(frecuencias[:i+1]) for i, fi in enumerate(frecuencias)] # FRECUENCIA RELATIVA ACUMULADA # Cociente entre frecuencia acumulada y cantidad total de datos relacumuladas = [float(f) / N for f in acumuladas] -55- ANEXO II: CREACIÓN DE UN MENÚ DE OPCIONES Enel s cr i pt i ng,pueder es ul t arút i l , daral us uar i ounmenúdeopci onesyhacer queel s cr i pt ,act úes egúnl aopci ónel egi daporel us uar i o.Acont i nuaci ón,s e mues t r aunt r ucopar ar es ol v eres t odef or mas i mpl eei ngeni os a. 1 )Pr i mer oesneces ar i oquet odoels cr i ptes t éor gani z adoenf unci ones . 2)Ens egundol ugar ,esneces ar i oquet odasl asf unci onest engans u document aci óncor r es pondi ent e,def i ni endoquéesex act ament el oquehace l af unci ón: def leer_archivo(): """Leer archivo CSV""" return "leer" def escribir_archivo(): """Escribir archivo CSV""" return "escribir" def _sumar_numeros(lista): """Sumar los números de una lista""" return "privada" 3)Acont i nuaci ón,s edef i neunal i s t aconel nombr edet odasl asf unci onesque s er ánacces i bl esporel us uar i o, des deel menú: funciones = ['leer_archivo', 'escribir_archivo'] El t r ucocons i s t i r áenaut omat i z art ant ol agener aci óndel menú, comol a l l amadaal af unci ón. Par aaut omat i z arl agener aci óndelmenú,el t r ucocons i s t eenv al er s ede: ▪ L al i s t adel pas o3 I nt r oducci ónal aCi enci adeDat osconPy t hon-Es cuel adeI nf or mát i caEugeni aBahi t ▪ L af unci ónl ocal s ( ) ▪ El at r i but o__doc__ numero = 1 # se usará luego para acceder a la función menu = "Elija una opción:\n" for funcion in funciones: menu += "\t{}. {}\n".format(numero, locals()[funcion].__doc__) numero = numero + 1 # incrementa el número en cada iteración echo(menu) opcion = int(get("Su opción: ")) # echo y get: hacks aprendidos en el curso de introducción F i nal ment e, par aaccederdi námi cament eal af unci ónel egi daporel us uar i o, el t r ucocons i s t i r áenempl earl aopci ónel egi daporel us uar i o,comoí ndi ce par aaccederal nombr edel af unci óndes del al i s t a, yr ecur r i rnuev ament ea l ocal spar ai nv ocaral af unci ón: funcion = funciones[opcion – 1] locals()[funcion]() # se obtiene el nombre de la función # se invoca a la función mediante locals() -58- CERTIFÍCATE De mu es t r a cu án to h as a pr en did o! Si llegaste al final del curso puedes obtener una triple certificación: - Certificado de asistencia (emitido por la escuela Eugenia Bahit) - Certificado de aprovechamiento (emitido por CLA Linux) - Certificación aprobación (emitido por LAECI) Informáte con tu docente o visita la Web de certificaciones en http://python.eugeniabahit.org. Si necesitas preparar tu examen, puedes inscribirte en el C u r so de Ci en c ia d e D atos c on Py th on en la E sc u e la d e I n for m átic a E u g en ia B ah it www.eugeniabahit.com