├── LICENSE ├── README.md ├── data ├── 2022.wav ├── CAC40.csv ├── CAC40.txt ├── SMSSpamCollection ├── base-comparateur-de-territoires.csv ├── calendar_extrait.csv ├── credit.xlsx ├── data.json ├── data.parquet ├── data_idf.RData ├── elephant.png ├── employee-earnings-report-2017.csv ├── listing_extrait.csv ├── salaries.sqlite ├── telecom.csv ├── x_telecom.csv └── y_telecom.csv ├── environment.yml ├── notebooks ├── 02_python_from_scratch.ipynb ├── 03_numpy_pandas_bases.ipynb ├── 04_01_recuperation_des_donnees.ipynb ├── 04_02_manipulation_description_des_donnees.ipynb ├── 05_01_Data_visualisation_matplotlib_seaborn.ipynb ├── 05_02_Data_visualisation_cartographie.ipynb ├── 05_03_Visualisations_interactives.ipynb ├── 06_01_Machine_learning_supervise.ipynb ├── 06_02_Machine_learning_non_supervise.ipynb ├── 06_03_NLP.ipynb ├── 06_04_Deep_Learning.ipynb ├── 07_01_Big_data_import.ipynb └── 07_02_Spark.ipynb ├── other ├── NLTK-downloader.png ├── nuage-points.mp4 └── python-pour-le-data-scientist-dunod.jpeg └── requirements-conda.txt /LICENSE: -------------------------------------------------------------------------------- 1 | Attribution-ShareAlike 4.0 International 2 | 3 | ======================================================================= 4 | 5 | Creative Commons Corporation ("Creative Commons") is not a law firm and 6 | does not provide legal services or legal advice. Distribution of 7 | Creative Commons public licenses does not create a lawyer-client or 8 | other relationship. Creative Commons makes its licenses and related 9 | information available on an "as-is" basis. Creative Commons gives no 10 | warranties regarding its licenses, any material licensed under their 11 | terms and conditions, or any related information. Creative Commons 12 | disclaims all liability for damages resulting from their use to the 13 | fullest extent possible. 14 | 15 | Using Creative Commons Public Licenses 16 | 17 | Creative Commons public licenses provide a standard set of terms and 18 | conditions that creators and other rights holders may use to share 19 | original works of authorship and other material subject to copyright 20 | and certain other rights specified in the public license below. The 21 | following considerations are for informational purposes only, are not 22 | exhaustive, and do not form part of our licenses. 23 | 24 | Considerations for licensors: Our public licenses are 25 | intended for use by those authorized to give the public 26 | permission to use material in ways otherwise restricted by 27 | copyright and certain other rights. Our licenses are 28 | irrevocable. Licensors should read and understand the terms 29 | and conditions of the license they choose before applying it. 30 | Licensors should also secure all rights necessary before 31 | applying our licenses so that the public can reuse the 32 | material as expected. Licensors should clearly mark any 33 | material not subject to the license. This includes other CC- 34 | licensed material, or material used under an exception or 35 | limitation to copyright. More considerations for licensors: 36 | wiki.creativecommons.org/Considerations_for_licensors 37 | 38 | Considerations for the public: By using one of our public 39 | licenses, a licensor grants the public permission to use the 40 | licensed material under specified terms and conditions. If 41 | the licensor's permission is not necessary for any reason--for 42 | example, because of any applicable exception or limitation to 43 | copyright--then that use is not regulated by the license. Our 44 | licenses grant only permissions under copyright and certain 45 | other rights that a licensor has authority to grant. Use of 46 | the licensed material may still be restricted for other 47 | reasons, including because others have copyright or other 48 | rights in the material. A licensor may make special requests, 49 | such as asking that all changes be marked or described. 50 | Although not required by our licenses, you are encouraged to 51 | respect those requests where reasonable. More_considerations 52 | for the public: 53 | wiki.creativecommons.org/Considerations_for_licensees 54 | 55 | ======================================================================= 56 | 57 | Creative Commons Attribution-ShareAlike 4.0 International Public 58 | License 59 | 60 | By exercising the Licensed Rights (defined below), You accept and agree 61 | to be bound by the terms and conditions of this Creative Commons 62 | Attribution-ShareAlike 4.0 International Public License ("Public 63 | License"). To the extent this Public License may be interpreted as a 64 | contract, You are granted the Licensed Rights in consideration of Your 65 | acceptance of these terms and conditions, and the Licensor grants You 66 | such rights in consideration of benefits the Licensor receives from 67 | making the Licensed Material available under these terms and 68 | conditions. 69 | 70 | 71 | Section 1 -- Definitions. 72 | 73 | a. Adapted Material means material subject to Copyright and Similar 74 | Rights that is derived from or based upon the Licensed Material 75 | and in which the Licensed Material is translated, altered, 76 | arranged, transformed, or otherwise modified in a manner requiring 77 | permission under the Copyright and Similar Rights held by the 78 | Licensor. For purposes of this Public License, where the Licensed 79 | Material is a musical work, performance, or sound recording, 80 | Adapted Material is always produced where the Licensed Material is 81 | synched in timed relation with a moving image. 82 | 83 | b. Adapter's License means the license You apply to Your Copyright 84 | and Similar Rights in Your contributions to Adapted Material in 85 | accordance with the terms and conditions of this Public License. 86 | 87 | c. BY-SA Compatible License means a license listed at 88 | creativecommons.org/compatiblelicenses, approved by Creative 89 | Commons as essentially the equivalent of this Public License. 90 | 91 | d. Copyright and Similar Rights means copyright and/or similar rights 92 | closely related to copyright including, without limitation, 93 | performance, broadcast, sound recording, and Sui Generis Database 94 | Rights, without regard to how the rights are labeled or 95 | categorized. For purposes of this Public License, the rights 96 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 97 | Rights. 98 | 99 | e. Effective Technological Measures means those measures that, in the 100 | absence of proper authority, may not be circumvented under laws 101 | fulfilling obligations under Article 11 of the WIPO Copyright 102 | Treaty adopted on December 20, 1996, and/or similar international 103 | agreements. 104 | 105 | f. Exceptions and Limitations means fair use, fair dealing, and/or 106 | any other exception or limitation to Copyright and Similar Rights 107 | that applies to Your use of the Licensed Material. 108 | 109 | g. License Elements means the license attributes listed in the name 110 | of a Creative Commons Public License. The License Elements of this 111 | Public License are Attribution and ShareAlike. 112 | 113 | h. Licensed Material means the artistic or literary work, database, 114 | or other material to which the Licensor applied this Public 115 | License. 116 | 117 | i. Licensed Rights means the rights granted to You subject to the 118 | terms and conditions of this Public License, which are limited to 119 | all Copyright and Similar Rights that apply to Your use of the 120 | Licensed Material and that the Licensor has authority to license. 121 | 122 | j. Licensor means the individual(s) or entity(ies) granting rights 123 | under this Public License. 124 | 125 | k. Share means to provide material to the public by any means or 126 | process that requires permission under the Licensed Rights, such 127 | as reproduction, public display, public performance, distribution, 128 | dissemination, communication, or importation, and to make material 129 | available to the public including in ways that members of the 130 | public may access the material from a place and at a time 131 | individually chosen by them. 132 | 133 | l. Sui Generis Database Rights means rights other than copyright 134 | resulting from Directive 96/9/EC of the European Parliament and of 135 | the Council of 11 March 1996 on the legal protection of databases, 136 | as amended and/or succeeded, as well as other essentially 137 | equivalent rights anywhere in the world. 138 | 139 | m. You means the individual or entity exercising the Licensed Rights 140 | under this Public License. Your has a corresponding meaning. 141 | 142 | 143 | Section 2 -- Scope. 144 | 145 | a. License grant. 146 | 147 | 1. Subject to the terms and conditions of this Public License, 148 | the Licensor hereby grants You a worldwide, royalty-free, 149 | non-sublicensable, non-exclusive, irrevocable license to 150 | exercise the Licensed Rights in the Licensed Material to: 151 | 152 | a. reproduce and Share the Licensed Material, in whole or 153 | in part; and 154 | 155 | b. produce, reproduce, and Share Adapted Material. 156 | 157 | 2. Exceptions and Limitations. For the avoidance of doubt, where 158 | Exceptions and Limitations apply to Your use, this Public 159 | License does not apply, and You do not need to comply with 160 | its terms and conditions. 161 | 162 | 3. Term. The term of this Public License is specified in Section 163 | 6(a). 164 | 165 | 4. Media and formats; technical modifications allowed. The 166 | Licensor authorizes You to exercise the Licensed Rights in 167 | all media and formats whether now known or hereafter created, 168 | and to make technical modifications necessary to do so. The 169 | Licensor waives and/or agrees not to assert any right or 170 | authority to forbid You from making technical modifications 171 | necessary to exercise the Licensed Rights, including 172 | technical modifications necessary to circumvent Effective 173 | Technological Measures. For purposes of this Public License, 174 | simply making modifications authorized by this Section 2(a) 175 | (4) never produces Adapted Material. 176 | 177 | 5. Downstream recipients. 178 | 179 | a. Offer from the Licensor -- Licensed Material. Every 180 | recipient of the Licensed Material automatically 181 | receives an offer from the Licensor to exercise the 182 | Licensed Rights under the terms and conditions of this 183 | Public License. 184 | 185 | b. Additional offer from the Licensor -- Adapted Material. 186 | Every recipient of Adapted Material from You 187 | automatically receives an offer from the Licensor to 188 | exercise the Licensed Rights in the Adapted Material 189 | under the conditions of the Adapter's License You apply. 190 | 191 | c. No downstream restrictions. You may not offer or impose 192 | any additional or different terms or conditions on, or 193 | apply any Effective Technological Measures to, the 194 | Licensed Material if doing so restricts exercise of the 195 | Licensed Rights by any recipient of the Licensed 196 | Material. 197 | 198 | 6. No endorsement. Nothing in this Public License constitutes or 199 | may be construed as permission to assert or imply that You 200 | are, or that Your use of the Licensed Material is, connected 201 | with, or sponsored, endorsed, or granted official status by, 202 | the Licensor or others designated to receive attribution as 203 | provided in Section 3(a)(1)(A)(i). 204 | 205 | b. Other rights. 206 | 207 | 1. Moral rights, such as the right of integrity, are not 208 | licensed under this Public License, nor are publicity, 209 | privacy, and/or other similar personality rights; however, to 210 | the extent possible, the Licensor waives and/or agrees not to 211 | assert any such rights held by the Licensor to the limited 212 | extent necessary to allow You to exercise the Licensed 213 | Rights, but not otherwise. 214 | 215 | 2. Patent and trademark rights are not licensed under this 216 | Public License. 217 | 218 | 3. To the extent possible, the Licensor waives any right to 219 | collect royalties from You for the exercise of the Licensed 220 | Rights, whether directly or through a collecting society 221 | under any voluntary or waivable statutory or compulsory 222 | licensing scheme. In all other cases the Licensor expressly 223 | reserves any right to collect such royalties. 224 | 225 | 226 | Section 3 -- License Conditions. 227 | 228 | Your exercise of the Licensed Rights is expressly made subject to the 229 | following conditions. 230 | 231 | a. Attribution. 232 | 233 | 1. If You Share the Licensed Material (including in modified 234 | form), You must: 235 | 236 | a. retain the following if it is supplied by the Licensor 237 | with the Licensed Material: 238 | 239 | i. identification of the creator(s) of the Licensed 240 | Material and any others designated to receive 241 | attribution, in any reasonable manner requested by 242 | the Licensor (including by pseudonym if 243 | designated); 244 | 245 | ii. a copyright notice; 246 | 247 | iii. a notice that refers to this Public License; 248 | 249 | iv. a notice that refers to the disclaimer of 250 | warranties; 251 | 252 | v. a URI or hyperlink to the Licensed Material to the 253 | extent reasonably practicable; 254 | 255 | b. indicate if You modified the Licensed Material and 256 | retain an indication of any previous modifications; and 257 | 258 | c. indicate the Licensed Material is licensed under this 259 | Public License, and include the text of, or the URI or 260 | hyperlink to, this Public License. 261 | 262 | 2. You may satisfy the conditions in Section 3(a)(1) in any 263 | reasonable manner based on the medium, means, and context in 264 | which You Share the Licensed Material. For example, it may be 265 | reasonable to satisfy the conditions by providing a URI or 266 | hyperlink to a resource that includes the required 267 | information. 268 | 269 | 3. If requested by the Licensor, You must remove any of the 270 | information required by Section 3(a)(1)(A) to the extent 271 | reasonably practicable. 272 | 273 | b. ShareAlike. 274 | 275 | In addition to the conditions in Section 3(a), if You Share 276 | Adapted Material You produce, the following conditions also apply. 277 | 278 | 1. The Adapter's License You apply must be a Creative Commons 279 | license with the same License Elements, this version or 280 | later, or a BY-SA Compatible License. 281 | 282 | 2. You must include the text of, or the URI or hyperlink to, the 283 | Adapter's License You apply. You may satisfy this condition 284 | in any reasonable manner based on the medium, means, and 285 | context in which You Share Adapted Material. 286 | 287 | 3. You may not offer or impose any additional or different terms 288 | or conditions on, or apply any Effective Technological 289 | Measures to, Adapted Material that restrict exercise of the 290 | rights granted under the Adapter's License You apply. 291 | 292 | 293 | Section 4 -- Sui Generis Database Rights. 294 | 295 | Where the Licensed Rights include Sui Generis Database Rights that 296 | apply to Your use of the Licensed Material: 297 | 298 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 299 | to extract, reuse, reproduce, and Share all or a substantial 300 | portion of the contents of the database; 301 | 302 | b. if You include all or a substantial portion of the database 303 | contents in a database in which You have Sui Generis Database 304 | Rights, then the database in which You have Sui Generis Database 305 | Rights (but not its individual contents) is Adapted Material, 306 | 307 | including for purposes of Section 3(b); and 308 | c. You must comply with the conditions in Section 3(a) if You Share 309 | all or a substantial portion of the contents of the database. 310 | 311 | For the avoidance of doubt, this Section 4 supplements and does not 312 | replace Your obligations under this Public License where the Licensed 313 | Rights include other Copyright and Similar Rights. 314 | 315 | 316 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 317 | 318 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 319 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 320 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 321 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 322 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 323 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 324 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 325 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 326 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 327 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 328 | 329 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 330 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 331 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 332 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 333 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 334 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 335 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 336 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 337 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 338 | 339 | c. The disclaimer of warranties and limitation of liability provided 340 | above shall be interpreted in a manner that, to the extent 341 | possible, most closely approximates an absolute disclaimer and 342 | waiver of all liability. 343 | 344 | 345 | Section 6 -- Term and Termination. 346 | 347 | a. This Public License applies for the term of the Copyright and 348 | Similar Rights licensed here. However, if You fail to comply with 349 | this Public License, then Your rights under this Public License 350 | terminate automatically. 351 | 352 | b. Where Your right to use the Licensed Material has terminated under 353 | Section 6(a), it reinstates: 354 | 355 | 1. automatically as of the date the violation is cured, provided 356 | it is cured within 30 days of Your discovery of the 357 | violation; or 358 | 359 | 2. upon express reinstatement by the Licensor. 360 | 361 | For the avoidance of doubt, this Section 6(b) does not affect any 362 | right the Licensor may have to seek remedies for Your violations 363 | of this Public License. 364 | 365 | c. For the avoidance of doubt, the Licensor may also offer the 366 | Licensed Material under separate terms or conditions or stop 367 | distributing the Licensed Material at any time; however, doing so 368 | will not terminate this Public License. 369 | 370 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 371 | License. 372 | 373 | 374 | Section 7 -- Other Terms and Conditions. 375 | 376 | a. The Licensor shall not be bound by any additional or different 377 | terms or conditions communicated by You unless expressly agreed. 378 | 379 | b. Any arrangements, understandings, or agreements regarding the 380 | Licensed Material not stated herein are separate from and 381 | independent of the terms and conditions of this Public License. 382 | 383 | 384 | Section 8 -- Interpretation. 385 | 386 | a. For the avoidance of doubt, this Public License does not, and 387 | shall not be interpreted to, reduce, limit, restrict, or impose 388 | conditions on any use of the Licensed Material that could lawfully 389 | be made without permission under this Public License. 390 | 391 | b. To the extent possible, if any provision of this Public License is 392 | deemed unenforceable, it shall be automatically reformed to the 393 | minimum extent necessary to make it enforceable. If the provision 394 | cannot be reformed, it shall be severed from this Public License 395 | without affecting the enforceability of the remaining terms and 396 | conditions. 397 | 398 | c. No term or condition of this Public License will be waived and no 399 | failure to comply consented to unless expressly agreed to by the 400 | Licensor. 401 | 402 | d. Nothing in this Public License constitutes or may be interpreted 403 | as a limitation upon, or waiver of, any privileges and immunities 404 | that apply to the Licensor or You, including from the legal 405 | processes of any jurisdiction or authority. 406 | 407 | 408 | ======================================================================= 409 | 410 | Creative Commons is not a party to its public 411 | licenses. Notwithstanding, Creative Commons may elect to apply one of 412 | its public licenses to material it publishes and in those instances 413 | will be considered the “Licensor.” The text of the Creative Commons 414 | public licenses is dedicated to the public domain under the CC0 Public 415 | Domain Dedication. Except for the limited purpose of indicating that 416 | material is shared under a Creative Commons public license or as 417 | otherwise permitted by the Creative Commons policies published at 418 | creativecommons.org/policies, Creative Commons does not authorize the 419 | use of the trademark "Creative Commons" or any other trademark or logo 420 | of Creative Commons without its prior written consent including, 421 | without limitation, in connection with any unauthorized modifications 422 | to any of its public licenses or any other arrangements, 423 | understandings, or agreements concerning use of licensed material. For 424 | the avoidance of doubt, this paragraph does not form part of the 425 | public licenses. 426 | 427 | Creative Commons may be contacted at creativecommons.org. 428 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![](https://www.dunod.com/sites/default/files/styles/principal_desktop/public/thumbnails/image/9782100859764-001-X.jpeg) 2 | 3 | # Python pour le data scientist 4 | 5 | [![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/emjako/pythondatascientist/master) 6 | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/emjako/pythondatascientist) 7 | 8 | 9 | Ce répertoire rassemble des [Jupyter](https://jupyter.org/) Notebooks ainsi que des données permettant d'illustrer la troisième édition de l'ouvrage [Python pour le data scientist](https://www.dunod.com/sciences-techniques/python-pour-data-scientist-bases-du-langage-au-machine-learning-2) par Emmanuel Jakobowicz paru chez Dunod en mars 2024. 10 | 11 | Les notebooks sont divisés par chapitres ou sous-chapitres et sont rassemblés dans le répertoire [notebooks](/notebooks/). 12 | 13 | Les Jupyter Notebooks présents dans ce répertoire sont visibles directement sur GitHub. Si vous rencontrez des problèmes pour les afficher dans votre navigateur, je vous conseille d'utiliser le site [nbviewer](http://nbviewer.jupyter.org/). 14 | 15 | Pour utiliser ce répertoire, vous trouverez [des détails plus bas](#utilisation). 16 | 17 | ## Organisation du répertoire 18 | 19 | Les thèmes abordés sont les suivants : 20 | 21 | - [*Chapitre 2* - Les bases du langage](/notebooks/02_python_from_scratch.ipynb) 22 | - [*Chapitre 3* - Les structures pour traiter des données (NumPy / Pandas)](/notebooks/03_numpy_pandas_bases.ipynb) 23 | - *Chapitre 4* - La préparation des données 24 | - [*4.1* - La récupération des données](/notebooks/04_01_recuperation_des_donnees.ipynb) 25 | - [*4.2* - La préparation des données et les premières statistiques](/notebooks/04_02_manipulation_description_des_donnees.ipynb) 26 | - *Chapitre 5* - La data visualisation 27 | - [*5.1* - La data visualisation avec Matplotlib et Seaborn](/notebooks/05_01_Data_visualisation_matplotlib_seaborn.ipynb) 28 | - [*5.2* - La cartographie](/notebooks/05_02_Data_visualisation_cartographie.ipynb) 29 | - [*5.3* - Les dataviz interactives](/notebooks/05_03_Visualisations_interactives.ipynb) 30 | - *Chapitre 6* - Le machine learning et le deep learning 31 | - [*6.1* - Les approches supervisées](/notebooks/06_01_Machine_learning_supervise.ipynb) 32 | - [*6.2* - Les approches non supervisées](/notebooks/06_02_Machine_learning_non_supervise.ipynb) 33 | - [*6.3* - Le traitement des données textuelles (NLP)](/notebooks/06_03_NLP.ipynb) 34 | - [*6.4* - Le deep learning avec Keras](/notebooks/06_04_Deep_Learning.ipynb) 35 | - *Chapitre 7* - Les traitements "big data" 36 | - [*7.1* - Récupérer des données depuis une infrastructure big data](/notebooks/07_01_Big_data_import.ipynb) 37 | - [*7.2* - PySpark pour Apache Spark](/notebooks/07_02_Spark.ipynb) 38 | 39 | 40 | ## Les données 41 | 42 | Une partie des données utilisées dans l'ouvrage est disponible dans le répertoire [data](/data/), le reste des données est directement accessible par des liens dans les Notebooks (dans le cas où celles-ci sont trop volumineuses pour ce répertoire). 43 | 44 | 45 | ## Utilisation de ce répertoire 46 | 47 | ### Binder 48 | 49 | [![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/emjako/pythondatascientist/master) 50 | 51 | Vous pouvez lancer les notebooks en utilisant le service MyBinder qui vous permettra de lancer vos Notebooks directement dans votre navigateur en cliquant sur le bouton ci-dessus (attention il faut parfois être patient). 52 | 53 | ### Installation locale 54 | 55 | Vous pouvez bien entendu parcourir ce répertoire et ses notebooks directement sur github.com mais ce que je vous conseille, c'est de télécharger tous le répertoire et d'installer Anaconda sur votre machine. Vous en trouverez une version ici : 56 | 57 | [https://www.anaconda.com/download/](https://www.anaconda.com/download/) 58 | 59 | Une fois que vous avez installé Anaconda, vous pouvez créer un environnement à partir du fichier [environment.yml](/environment.yml) disponible dans ce répertoire. 60 | 61 | Utilisez le terminal ou la ligne de commande Anaconda (Conda Prompt). Utilisez la commande : 62 | ``` 63 | conda env create -n mon_nouvel_env -f environment.yml 64 | ``` 65 | 66 | Il ne vous reste qu'à activer votre environnement en utilisant : 67 | - Pour MacOS et Linux : 68 | ``` 69 | source activate mon_nouvel_env 70 | ``` 71 | 72 | - Pour Windows : 73 | ``` 74 | activate mon_nouvel_env 75 | ``` 76 | 77 | Pour vérifier l'installation, utilisez : 78 | ``` 79 | conda list 80 | ``` 81 | 82 | Une fois votre environnement activé, utilisez la commande : 83 | ``` 84 | jupyter notebook 85 | ``` 86 | ou 87 | ``` 88 | jupyter lab 89 | ``` 90 | C'est parti, vous pouvez commencer à coder ! 91 | 92 | **Attention :** il peut arriver que certains packages doivent être installés manuellement. 93 | 94 | ### Google Colab 95 | 96 | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/emjako/pythondatascientist) 97 | 98 | Finalement, il existe une dernière solution, c'est l'utilisation du service de Google, Google Colab. Vous pouvez lancer des Notebooks directement dans Colab à partir du répertoire GitHub. Colab a l'avantage d'avoir installé la plupart des packages de data science. Pour lancer Colab, il vous faut un compte Google et il vous suffit de cliquer sur le bouton ci-dessus. 99 | 100 | ## Utilisation et licence 101 | 102 | Ce répertoire a pour but d'être évolutif, n'hésitez pas à la cloner et à vérifier son activité. Si vous avez des remarques ou si vous voulez ajouter des informations, faites-le-moi savoir ! 103 | 104 | Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 105 | -------------------------------------------------------------------------------- /data/2022.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emjako/pythondatascientist/eb5b8e2e98a11255a3574d0aff56e77b3f19e668/data/2022.wav -------------------------------------------------------------------------------- /data/CAC40.txt: -------------------------------------------------------------------------------- 1 | FR0003500008;02/01/17;4845.96;4896.01;4843.93;4882.38;1169888 2 | FR0003500008;03/01/17;4904.77;4929.60;4896.11;4899.33;3005268 3 | FR0003500008;04/01/17;4912.95;4913.94;4879.23;4899.40;2887044 4 | FR0003500008;05/01/17;4881.72;4905.84;4874.79;4900.64;2968784 5 | FR0003500008;06/01/17;4885.19;4911.49;4874.42;4909.84;2651627 6 | FR0003500008;09/01/17;4915.35;4915.60;4867.83;4887.57;2595038 7 | FR0003500008;10/01/17;4894.45;4906.15;4868.50;4888.23;3005772 8 | FR0003500008;11/01/17;4890.04;4916.48;4856.50;4888.71;3115141 9 | FR0003500008;12/01/17;4873.01;4889.21;4857.44;4863.97;3302762 10 | FR0003500008;13/01/17;4889.45;4924.58;4883.06;4922.49;3952794 11 | FR0003500008;16/01/17;4883.43;4911.39;4879.80;4882.18;2876860 12 | FR0003500008;17/01/17;4865.19;4889.16;4841.68;4859.69;2892545 13 | FR0003500008;18/01/17;4874.31;4875.74;4827.11;4853.40;2918464 14 | FR0003500008;19/01/17;4859.76;4867.58;4829.82;4841.14;3563285 15 | FR0003500008;20/01/17;4834.30;4869.38;4818.88;4850.67;4348020 16 | FR0003500008;23/01/17;4816.98;4842.97;4800.39;4821.41;2827245 17 | FR0003500008;24/01/17;4831.95;4840.50;4816.73;4830.03;2894798 18 | FR0003500008;25/01/17;4865.09;4890.16;4854.55;4877.67;3805374 19 | FR0003500008;26/01/17;4891.86;4901.07;4855.76;4867.24;3176092 20 | FR0003500008;27/01/17;4867.31;4867.31;4829.70;4839.98;2811953 21 | FR0003500008;30/01/17;4823.50;4830.69;4771.98;4784.64;2874512 22 | FR0003500008;31/01/17;4790.28;4812.55;4748.90;4748.90;3681335 23 | FR0003500008;01/02/17;4786.85;4823.81;4782.61;4794.58;3276466 24 | FR0003500008;02/02/17;4785.14;4812.31;4774.18;4794.29;2996839 25 | FR0003500008;03/02/17;4808.46;4847.47;4803.91;4825.42;2679247 26 | FR0003500008;06/02/17;4829.68;4841.17;4773.35;4778.08;2643982 27 | FR0003500008;07/02/17;4762.17;4787.94;4750.03;4754.47;2942323 28 | FR0003500008;08/02/17;4768.00;4790.29;4733.82;4766.60;3628763 29 | FR0003500008;09/02/17;4793.01;4831.31;4769.86;4826.24;3464128 30 | FR0003500008;10/02/17;4842.91;4845.45;4815.67;4828.32;3348598 31 | FR0003500008;13/02/17;4844.22;4906.71;4841.60;4888.19;3092800 32 | FR0003500008;14/02/17;4887.23;4897.89;4878.79;4895.82;3080589 33 | FR0003500008;15/02/17;4910.57;4932.35;4902.16;4924.86;3339668 34 | FR0003500008;16/02/17;4925.54;4928.25;4890.48;4899.46;3338979 35 | FR0003500008;17/02/17;4896.97;4903.16;4843.01;4867.58;3844649 36 | FR0003500008;20/02/17;4894.25;4901.41;4856.12;4864.99;2353639 37 | FR0003500008;21/02/17;4865.89;4900.38;4849.91;4888.76;2927122 38 | FR0003500008;22/02/17;4899.65;4922.64;4866.12;4895.88;3576469 39 | FR0003500008;23/02/17;4900.80;4916.44;4880.49;4891.29;3256338 40 | FR0003500008;24/02/17;4886.51;4890.11;4806.49;4845.24;3598111 41 | FR0003500008;27/02/17;4864.13;4869.51;4833.77;4845.18;2746796 42 | FR0003500008;28/02/17;4862.65;4865.95;4836.53;4858.58;3366177 43 | FR0003500008;01/03/17;4897.48;4970.64;4897.48;4960.83;3995369 44 | FR0003500008;02/03/17;4965.27;4972.88;4955.41;4963.80;3240877 45 | FR0003500008;03/03/17;4953.30;5002.32;4948.72;4995.13;3369754 46 | FR0003500008;06/03/17;4983.96;4985.24;4960.26;4972.19;2856388 47 | FR0003500008;07/03/17;4974.79;4974.79;4941.26;4955.00;2718305 48 | FR0003500008;08/03/17;4941.18;4976.04;4933.77;4960.48;2796218 49 | FR0003500008;09/03/17;4950.53;4988.63;4939.87;4981.51;3696748 50 | FR0003500008;10/03/17;4994.00;5022.10;4990.15;4993.32;3498320 51 | FR0003500008;13/03/17;4997.88;5013.08;4986.06;4999.60;2677809 52 | FR0003500008;14/03/17;5006.05;5006.05;4958.88;4974.26;2958728 53 | FR0003500008;15/03/17;4980.05;4989.30;4966.05;4985.48;2841846 54 | FR0003500008;16/03/17;5027.10;5031.57;5004.62;5013.38;3883702 55 | FR0003500008;17/03/17;5006.71;5037.85;5001.39;5029.24;6032885 56 | FR0003500008;20/03/17;5008.08;5030.06;5004.08;5012.16;2372751 57 | FR0003500008;21/03/17;5030.20;5054.91;4990.64;5002.43;3272568 58 | FR0003500008;22/03/17;4969.11;5005.06;4953.57;4994.70;3403519 59 | FR0003500008;23/03/17;4996.62;5032.94;4980.56;5032.76;3085028 60 | FR0003500008;24/03/17;5027.19;5027.19;5003.58;5020.90;2503278 61 | FR0003500008;27/03/17;4975.09;5017.88;4971.07;5017.43;2918167 62 | FR0003500008;28/03/17;5027.13;5048.11;5008.67;5046.20;2839803 63 | FR0003500008;29/03/17;5063.70;5073.23;5044.42;5069.04;2848218 64 | FR0003500008;30/03/17;5075.61;5090.92;5063.07;5089.64;2622424 65 | FR0003500008;31/03/17;5077.30;5122.51;5067.74;5122.51;3792284 66 | FR0003500008;03/04/17;5130.18;5132.93;5083.14;5085.91;2954467 67 | FR0003500008;04/04/17;5087.60;5101.13;5076.35;5101.13;2937851 68 | FR0003500008;05/04/17;5104.71;5123.78;5087.68;5091.85;3070518 69 | FR0003500008;06/04/17;5063.62;5126.74;5051.61;5121.44;3142581 70 | FR0003500008;07/04/17;5104.73;5135.28;5098.05;5135.28;3013546 71 | FR0003500008;10/04/17;5127.36;5127.36;5097.56;5107.45;2546741 72 | FR0003500008;11/04/17;5086.61;5119.18;5068.25;5101.86;3353277 73 | FR0003500008;12/04/17;5114.50;5142.81;5093.98;5101.11;3046401 74 | FR0003500008;13/04/17;5090.48;5090.48;5062.32;5071.10;3514603 75 | FR0003500008;18/04/17;5078.25;5080.03;4990.25;4990.25;4300269 76 | FR0003500008;19/04/17;4987.29;5011.33;4980.41;5003.73;3724508 77 | FR0003500008;20/04/17;4992.47;5093.60;4989.26;5077.91;4697474 78 | FR0003500008;21/04/17;5063.36;5081.61;5029.06;5059.20;6030581 79 | FR0003500008;24/04/17;5267.88;5295.47;5228.54;5268.85;8742612 80 | FR0003500008;25/04/17;5274.36;5293.39;5259.63;5277.88;4402496 81 | FR0003500008;26/04/17;5276.37;5296.52;5270.32;5287.88;4512180 82 | FR0003500008;27/04/17;5276.97;5278.96;5261.73;5271.70;4066303 83 | FR0003500008;28/04/17;5267.66;5287.85;5265.36;5267.33;4497495 84 | FR0003500008;02/05/17;5284.88;5305.95;5274.29;5304.15;3795931 85 | FR0003500008;03/05/17;5299.74;5301.61;5282.45;5301.00;3487361 86 | FR0003500008;04/05/17;5309.39;5372.42;5304.46;5372.42;4932939 87 | FR0003500008;05/05/17;5344.92;5432.40;5343.02;5432.40;5083354 88 | FR0003500008;08/05/17;5442.10;5442.10;5374.20;5382.95;4569368 89 | FR0003500008;09/05/17;5404.14;5413.60;5394.13;5398.01;3713163 90 | FR0003500008;10/05/17;5398.81;5402.34;5377.75;5400.46;3744039 91 | FR0003500008;11/05/17;5409.90;5409.99;5356.41;5383.42;4235406 92 | FR0003500008;12/05/17;5386.79;5405.42;5375.48;5405.42;3949667 93 | FR0003500008;15/05/17;5411.27;5417.40;5384.54;5417.40;3239263 94 | FR0003500008;16/05/17;5398.15;5417.17;5389.87;5406.10;3500206 95 | FR0003500008;17/05/17;5375.84;5394.88;5297.43;5317.89;4089118 96 | FR0003500008;18/05/17;5309.91;5322.70;5238.51;5289.73;5077150 97 | FR0003500008;19/05/17;5299.40;5334.45;5292.12;5324.40;4539294 98 | FR0003500008;22/05/17;5335.12;5339.41;5315.23;5322.88;2950617 99 | FR0003500008;23/05/17;5317.12;5368.88;5314.48;5348.16;3277144 100 | FR0003500008;24/05/17;5336.98;5353.01;5326.59;5341.34;3065204 101 | FR0003500008;25/05/17;5360.97;5366.70;5323.11;5337.16;2617803 102 | FR0003500008;26/05/17;5328.86;5336.76;5282.42;5336.64;3158564 103 | FR0003500008;29/05/17;5327.73;5335.78;5316.69;5332.47;1591040 104 | FR0003500008;30/05/17;5291.08;5309.36;5273.56;5305.94;3198159 105 | FR0003500008;31/05/17;5306.21;5334.57;5283.63;5283.63;5780058 106 | FR0003500008;01/06/17;5290.84;5327.60;5287.99;5318.67;3311646 107 | FR0003500008;02/06/17;5347.86;5372.97;5328.19;5343.41;3737470 108 | FR0003500008;05/06/17;5337.11;5343.79;5299.76;5307.89;1966960 109 | FR0003500008;06/06/17;5280.20;5296.42;5260.95;5269.22;3292389 110 | FR0003500008;07/06/17;5261.42;5320.04;5254.03;5265.53;3734608 111 | FR0003500008;08/06/17;5264.69;5290.50;5250.68;5264.24;3427740 112 | FR0003500008;09/06/17;5275.99;5320.17;5266.83;5299.71;3260989 113 | FR0003500008;12/06/17;5282.58;5286.10;5233.69;5240.59;3530523 114 | FR0003500008;13/06/17;5254.14;5273.87;5248.29;5261.74;3041688 115 | FR0003500008;14/06/17;5283.60;5314.96;5243.29;5243.29;3939780 116 | FR0003500008;15/06/17;5235.36;5235.88;5176.67;5216.88;4690400 117 | FR0003500008;16/06/17;5243.53;5273.68;5236.00;5263.31;7193521 118 | FR0003500008;19/06/17;5305.22;5331.32;5302.05;5310.72;3212035 119 | FR0003500008;20/06/17;5330.58;5339.55;5293.65;5293.65;3288039 120 | FR0003500008;21/06/17;5273.00;5286.06;5224.05;5274.26;3481067 121 | FR0003500008;22/06/17;5259.55;5286.46;5232.82;5281.93;3281935 122 | FR0003500008;23/06/17;5273.24;5283.88;5247.52;5266.12;2689991 123 | FR0003500008;26/06/17;5295.04;5323.73;5289.56;5295.75;2999819 124 | FR0003500008;27/06/17;5282.87;5284.96;5237.67;5258.58;3762537 125 | FR0003500008;28/06/17;5235.83;5273.95;5203.90;5252.90;4037195 126 | FR0003500008;29/06/17;5268.23;5272.94;5143.82;5154.35;4841087 127 | FR0003500008;30/06/17;5157.59;5192.39;5117.23;5120.68;4210650 128 | FR0003500008;03/07/17;5151.19;5200.73;5151.19;5195.72;3112584 129 | FR0003500008;04/07/17;5170.54;5197.81;5165.86;5174.90;2287380 130 | FR0003500008;05/07/17;5174.79;5192.51;5160.86;5180.10;3455235 131 | FR0003500008;06/07/17;5177.21;5177.62;5111.16;5152.40;4060260 132 | FR0003500008;07/07/17;5149.79;5155.42;5125.99;5145.16;3132438 133 | FR0003500008;10/07/17;5160.70;5179.34;5147.67;5165.64;2455372 134 | FR0003500008;11/07/17;5172.03;5186.44;5135.95;5140.60;2649248 135 | FR0003500008;12/07/17;5158.23;5239.02;5157.84;5222.13;3572586 136 | FR0003500008;13/07/17;5228.93;5259.47;5221.58;5235.40;3117659 137 | FR0003500008;14/07/17;5246.20;5246.78;5215.98;5235.31;2554142 138 | FR0003500008;17/07/17;5238.41;5246.23;5214.31;5230.17;2348657 139 | FR0003500008;18/07/17;5219.67;5233.15;5164.63;5173.27;3214759 140 | FR0003500008;19/07/17;5196.13;5218.99;5174.29;5216.07;2884488 141 | FR0003500008;20/07/17;5239.46;5251.25;5177.73;5199.22;3436195 142 | FR0003500008;21/07/17;5188.92;5208.85;5095.12;5117.66;4576450 143 | FR0003500008;24/07/17;5133.68;5143.48;5094.36;5127.70;3026080 144 | FR0003500008;25/07/17;5130.53;5193.19;5130.53;5161.08;3741891 145 | FR0003500008;26/07/17;5162.24;5208.33;5158.79;5190.17;3338945 146 | FR0003500008;27/07/17;5181.15;5218.56;5172.78;5186.95;4227137 147 | FR0003500008;28/07/17;5144.03;5144.03;5105.72;5131.39;4633147 148 | FR0003500008;31/07/17;5127.63;5148.15;5092.14;5093.77;3842621 149 | FR0003500008;01/08/17;5116.90;5148.49;5087.38;5127.03;3342959 150 | FR0003500008;02/08/17;5122.38;5135.14;5094.64;5107.25;3462466 151 | FR0003500008;03/08/17;5097.14;5142.91;5084.20;5130.49;3134223 152 | FR0003500008;04/08/17;5122.40;5216.40;5118.61;5203.44;3258826 153 | FR0003500008;07/08/17;5210.73;5220.59;5195.26;5207.89;2620942 154 | FR0003500008;08/08/17;5200.20;5231.65;5191.38;5218.89;2584169 155 | FR0003500008;09/08/17;5182.05;5183.37;5122.50;5145.70;3457855 156 | FR0003500008;10/08/17;5140.99;5148.47;5096.19;5115.23;2922295 157 | FR0003500008;11/08/17;5081.92;5086.06;5046.75;5060.92;3380605 158 | FR0003500008;14/08/17;5082.87;5136.19;5080.01;5121.67;2368776 159 | FR0003500008;15/08/17;5141.02;5158.50;5123.97;5140.25;1912859 160 | FR0003500008;16/08/17;5159.10;5200.16;5159.10;5176.61;2338531 161 | FR0003500008;17/08/17;5164.54;5180.26;5137.42;5146.85;2710668 162 | FR0003500008;18/08/17;5103.47;5117.04;5074.45;5114.15;3085581 163 | FR0003500008;21/08/17;5091.31;5105.94;5066.19;5087.59;2322370 164 | FR0003500008;22/08/17;5112.13;5137.54;5101.68;5131.86;2383252 165 | FR0003500008;23/08/17;5125.03;5149.08;5105.55;5115.39;2403299 166 | FR0003500008;24/08/17;5127.71;5136.30;5111.86;5113.13;2264367 167 | FR0003500008;25/08/17;5121.48;5141.05;5098.51;5104.33;2120781 168 | FR0003500008;28/08/17;5076.47;5106.25;5066.01;5079.75;1482063 169 | FR0003500008;29/08/17;5035.38;5041.89;4995.07;5031.92;3279681 170 | FR0003500008;30/08/17;5063.24;5069.12;5046.07;5056.34;2366269 171 | FR0003500008;31/08/17;5083.12;5104.78;5068.44;5085.59;4076726 172 | FR0003500008;01/09/17;5117.19;5138.42;5115.95;5123.26;2937298 173 | FR0003500008;04/09/17;5088.28;5114.70;5088.28;5103.97;1742250 174 | FR0003500008;05/09/17;5107.19;5125.80;5081.08;5086.56;2721327 175 | FR0003500008;06/09/17;5054.32;5114.29;5050.09;5101.41;2897711 176 | FR0003500008;07/09/17;5118.84;5148.06;5103.15;5114.62;3392728 177 | FR0003500008;08/09/17;5099.31;5117.89;5086.51;5113.49;2856175 178 | FR0003500008;11/09/17;5145.78;5180.25;5145.78;5176.71;3082919 179 | FR0003500008;12/09/17;5192.75;5219.08;5184.47;5209.01;3148613 180 | FR0003500008;13/09/17;5205.21;5227.00;5200.21;5217.59;3457531 181 | FR0003500008;14/09/17;5205.18;5233.54;5201.65;5225.20;3205057 182 | FR0003500008;15/09/17;5220.89;5237.17;5201.97;5213.91;7804554 183 | FR0003500008;18/09/17;5231.99;5239.88;5221.56;5229.32;2490066 184 | FR0003500008;19/09/17;5223.29;5238.29;5219.71;5237.44;2737864 185 | FR0003500008;20/09/17;5230.51;5248.79;5230.02;5241.66;2701509 186 | FR0003500008;21/09/17;5259.02;5275.42;5257.44;5267.29;3344393 187 | FR0003500008;22/09/17;5277.39;5295.93;5271.88;5281.29;3215680 188 | FR0003500008;25/09/17;5267.99;5286.83;5260.46;5267.13;2659683 189 | FR0003500008;26/09/17;5263.95;5274.58;5255.11;5268.76;3023253 190 | FR0003500008;27/09/17;5281.30;5289.89;5272.32;5281.96;3202223 191 | FR0003500008;28/09/17;5286.05;5295.27;5279.10;5293.77;2925889 192 | FR0003500008;29/09/17;5297.42;5329.81;5284.74;5329.81;3805861 193 | FR0003500008;02/10/17;5332.92;5350.44;5326.66;5350.44;2807906 194 | FR0003500008;03/10/17;5362.75;5370.89;5355.30;5367.41;2333311 195 | FR0003500008;04/10/17;5369.24;5369.45;5345.20;5363.23;3400429 196 | FR0003500008;05/10/17;5355.91;5381.74;5355.91;5379.21;2996260 197 | FR0003500008;06/10/17;5378.07;5378.07;5350.26;5359.90;2933434 198 | FR0003500008;09/10/17;5364.81;5378.51;5351.68;5365.83;2368462 199 | FR0003500008;10/10/17;5364.16;5372.27;5351.79;5363.65;2770042 200 | FR0003500008;11/10/17;5367.38;5367.38;5338.14;5362.41;2898561 201 | FR0003500008;12/10/17;5358.42;5361.92;5342.69;5360.81;2503776 202 | FR0003500008;13/10/17;5362.73;5371.65;5344.96;5351.74;2938198 203 | FR0003500008;16/10/17;5362.53;5371.62;5347.61;5362.88;2592612 204 | FR0003500008;17/10/17;5372.65;5376.69;5347.55;5361.37;2904773 205 | FR0003500008;18/10/17;5368.09;5394.23;5359.68;5383.81;2782169 206 | FR0003500008;19/10/17;5371.00;5377.81;5343.00;5368.29;3701979 207 | FR0003500008;20/10/17;5389.48;5392.09;5368.21;5372.38;4000274 208 | FR0003500008;23/10/17;5377.45;5408.74;5367.65;5386.81;2663475 209 | FR0003500008;24/10/17;5377.86;5413.03;5377.86;5394.80;3457524 210 | FR0003500008;25/10/17;5399.61;5416.54;5364.16;5374.89;3934637 211 | FR0003500008;26/10/17;5383.44;5459.61;5375.26;5455.40;4137178 212 | FR0003500008;27/10/17;5470.34;5513.53;5470.24;5494.13;4475661 213 | FR0003500008;30/10/17;5488.33;5507.56;5487.29;5493.63;2964632 214 | FR0003500008;31/10/17;5492.63;5511.25;5489.41;5503.29;3445721 215 | FR0003500008;01/11/17;5524.38;5536.40;5514.29;5514.29;3436556 216 | FR0003500008;02/11/17;5510.96;5520.81;5486.24;5510.50;3229826 217 | FR0003500008;03/11/17;5513.47;5521.92;5498.29;5517.97;3506091 218 | FR0003500008;06/11/17;5507.07;5513.31;5492.90;5507.25;3161074 219 | FR0003500008;07/11/17;5521.75;5525.55;5475.92;5480.64;3630868 220 | FR0003500008;08/11/17;5487.53;5496.08;5452.20;5471.43;3873880 221 | FR0003500008;09/11/17;5470.18;5479.70;5401.43;5407.75;4456742 222 | FR0003500008;10/11/17;5405.55;5415.88;5375.12;5380.72;3762532 223 | FR0003500008;13/11/17;5382.65;5384.76;5301.02;5341.63;3567115 224 | FR0003500008;14/11/17;5345.30;5365.64;5301.57;5315.58;3643635 225 | FR0003500008;15/11/17;5301.14;5312.39;5267.22;5301.25;4032476 226 | FR0003500008;16/11/17;5325.41;5345.23;5312.87;5336.39;3221764 227 | FR0003500008;17/11/17;5335.85;5350.25;5304.35;5319.17;3645118 228 | FR0003500008;20/11/17;5311.28;5348.15;5302.85;5340.45;2824670 229 | FR0003500008;21/11/17;5335.84;5385.86;5326.86;5366.15;3307269 230 | FR0003500008;22/11/17;5364.61;5391.01;5352.76;5352.76;2965262 231 | FR0003500008;23/11/17;5339.76;5391.89;5330.32;5379.54;2392940 232 | FR0003500008;24/11/17;5374.40;5419.88;5374.40;5390.46;2405456 233 | FR0003500008;27/11/17;5378.96;5408.47;5359.39;5360.09;2806983 234 | FR0003500008;28/11/17;5366.38;5398.19;5357.28;5390.48;3069252 235 | FR0003500008;29/11/17;5416.49;5441.69;5394.89;5398.05;3789567 236 | FR0003500008;30/11/17;5402.66;5429.65;5372.59;5372.79;5477712 237 | FR0003500008;01/12/17;5374.13;5378.32;5299.06;5316.89;4380800 238 | FR0003500008;04/12/17;5363.29;5400.10;5350.59;5389.29;3685240 239 | FR0003500008;05/12/17;5377.80;5379.79;5349.79;5375.53;3339375 240 | FR0003500008;06/12/17;5333.32;5385.53;5316.55;5374.35;3368084 241 | FR0003500008;07/12/17;5374.57;5396.31;5365.75;5383.86;3218870 242 | FR0003500008;08/12/17;5411.91;5425.75;5393.56;5399.09;3765138 243 | FR0003500008;11/12/17;5411.71;5411.71;5382.50;5386.83;2954313 244 | FR0003500008;12/12/17;5394.93;5427.19;5359.76;5427.19;3735894 245 | FR0003500008;13/12/17;5415.32;5429.03;5393.98;5399.45;3877806 246 | FR0003500008;14/12/17;5392.00;5400.28;5357.14;5357.14;3504654 247 | FR0003500008;15/12/17;5340.34;5360.87;5330.10;5349.30;6844616 248 | FR0003500008;18/12/17;5386.40;5427.87;5386.40;5420.58;3749756 249 | FR0003500008;19/12/17;5409.65;5420.64;5380.15;5382.91;2880286 250 | FR0003500008;20/12/17;5377.92;5382.37;5338.03;5352.77;2963902 251 | FR0003500008;21/12/17;5332.39;5389.80;5323.54;5385.97;3037686 252 | FR0003500008;22/12/17;5371.00;5385.96;5355.44;5364.72;2037939 253 | FR0003500008;27/12/17;5359.82;5388.14;5352.53;5368.84;1836894 254 | FR0003500008;28/12/17;5367.70;5370.43;5331.16;5339.42;1896201 255 | FR0003500008;29/12/17;5336.15;5344.05;5312.56;5312.56;2129479 256 | -------------------------------------------------------------------------------- /data/credit.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emjako/pythondatascientist/eb5b8e2e98a11255a3574d0aff56e77b3f19e668/data/credit.xlsx -------------------------------------------------------------------------------- /data/data.json: -------------------------------------------------------------------------------- 1 | {"col0":{"0":-0.2905718848,"1":0.4973062277,"2":-2.5941294177,"3":0.7840420635,"4":-0.0178122428,"5":-1.3128944331,"6":-0.021733297,"7":-1.7167718098,"8":0.7875514635,"9":-0.6258077506,"10":-0.33296778,"11":0.4788483775,"12":1.5988077699,"13":0.5529576336,"14":1.466755657,"15":0.6807188367,"16":0.6501345266,"17":-1.0897113487,"18":-0.2241426577,"19":-0.5594057392,"20":-0.6404241646,"21":-1.6049306225,"22":1.5390051331,"23":2.0625062107,"24":-1.3952299838,"25":-0.1258143513,"26":-1.61538732,"27":-0.6960799282,"28":-0.7229000551,"29":-0.5941265708,"30":-0.5465821764,"31":-1.1192299078,"32":0.6328635406,"33":0.2842269254,"34":0.2399794685,"35":-0.8876983763,"36":-0.1911557945,"37":-0.3036899171,"38":0.9470905075,"39":-3.1511465066,"40":-0.4623927719,"41":0.2254213889,"42":-0.5141759563,"43":0.5869210386,"44":-1.4947460981,"45":0.3509421677,"46":-0.8321387784,"47":0.3563749436,"48":-1.9688133588,"49":0.1922405032,"50":-0.2841630301,"51":-1.0828464174,"52":-1.7678590269,"53":1.0916068456,"54":0.0434829894,"55":0.3846899347,"56":-0.5479256577,"57":-1.6499188146,"58":-1.2834165148,"59":-0.6726834359,"60":0.5468743462,"61":1.6253631645,"62":0.0081350743,"63":-0.7290675192,"64":1.1300052455,"65":-0.9859207265,"66":-0.5972979932,"67":-0.2051806293,"68":-0.3638540318,"69":-0.7059073841,"70":-0.0296718131,"71":1.0927565127,"72":0.5731377461,"73":-1.4237633592,"74":-1.5409694501,"75":0.0370159309,"76":0.8238088252,"77":0.9513289132,"78":-0.9484018617,"79":-1.4187723666,"80":-1.5492957128,"81":-1.5580654662,"82":-0.3744111286,"83":1.6115907484,"84":0.5424591904,"85":-0.168062098,"86":-0.2986593961,"87":-1.097969196,"88":0.2609758171,"89":-1.8477093147,"90":-0.0742007721,"91":-0.3550118195,"92":-0.0957449192,"93":-0.6964842082,"94":0.2252037036,"95":-1.0787078748,"96":0.4220041392,"97":-0.2298038917,"98":-0.7149585453,"99":1.0748665338},"col1":{"0":0.4040127011,"1":1.4325016773,"2":-0.3852300461,"3":-0.0703868511,"4":0.8775697365,"5":0.5064598325,"6":0.587235096,"7":0.4993831372,"8":0.9246017156,"9":0.7265012524,"10":-1.2114219092,"11":-1.2771621196,"12":-0.6234909139,"13":-0.3601732365,"14":1.3405563768,"15":-0.145743979,"16":-0.5562739511,"17":-0.241625892,"18":-0.0627151884,"19":0.9257328231,"20":0.6573571144,"21":-0.6954959122,"22":-0.6200101931,"23":-0.5694480733,"24":-0.7034515154,"25":1.1530986755,"26":1.6186703488,"27":-0.0689155005,"28":0.2314041987,"29":0.6439786983,"30":3.2106049691,"31":0.4452843066,"32":-0.2395085285,"33":-0.462681146,"34":-0.8502295343,"35":0.5887378742,"36":0.389260125,"37":-0.7592974514,"38":-0.7122435382,"39":-0.8020465438,"40":-0.2004508912,"41":0.1226874273,"42":-0.2433207016,"43":0.6367287935,"44":-0.172552396,"45":0.655198427,"46":1.0560362476,"47":-0.7793618387,"48":2.0669761616,"49":-0.9556347905,"50":0.5311309881,"51":-0.5226406559,"52":0.1995672395,"53":-1.1172667456,"54":-0.2248460513,"55":1.2266381138,"56":0.211643471,"57":2.6294497915,"58":-0.8241927666,"59":0.0189997944,"60":0.2086258765,"61":-0.5620188388,"62":2.4121943127,"63":0.8725895238,"64":-0.8717341746,"65":0.0437438782,"66":2.3249049903,"67":1.0989806367,"68":-1.5603650456,"69":0.2922302402,"70":0.8298121718,"71":-0.1692350032,"72":0.0118798614,"73":-0.6460584181,"74":-0.0664676837,"75":-1.2817824295,"76":-0.2724448472,"77":0.0734158083,"78":-0.1232287454,"79":0.021524802,"80":-2.1733382255,"81":0.1773095907,"82":-0.41287386,"83":1.2657625939,"84":-0.7625693199,"85":1.3231317523,"86":0.266224155,"87":-0.9376744201,"88":-0.2210272769,"89":0.0963505498,"90":0.3228975699,"91":-0.6086429935,"92":-0.0899304212,"93":0.4664664815,"94":0.9131475456,"95":0.6611140694,"96":2.0541743276,"97":-0.3325843187,"98":-1.0428213944,"99":0.9591771918},"col2":{"0":-0.9497853186,"1":2.293244809,"2":0.7547582981,"3":-0.9753996568,"4":-0.7042276416,"5":2.3831339515,"6":-1.010257237,"7":0.2810230397,"8":-2.4951166885,"9":0.2796999065,"10":0.5509950867,"11":-0.0423301769,"12":1.4750369534,"13":0.8299083018,"14":1.3386580432,"15":-1.5839046981,"16":-0.7609929414,"17":0.2982369505,"18":-0.5292025309,"19":0.1371207346,"20":-0.3645887865,"21":-0.0576313269,"22":-0.0542455732,"23":1.0544476558,"24":1.2680717276,"25":-1.8641553026,"26":-1.3756778861,"27":-1.5489070423,"28":-0.5806610405,"29":0.9670131491,"30":0.9512568332,"31":-0.0314167283,"32":0.7123357598,"33":1.5351016889,"34":0.1012096249,"35":0.5858057442,"36":0.921704506,"37":-0.9311941123,"38":-1.0255182343,"39":0.3904093581,"40":0.3852848352,"41":-0.7662597738,"42":0.2712221262,"43":1.0787803422,"44":-1.1784389628,"45":1.1615342524,"46":1.2064536987,"47":0.5603414665,"48":0.7769921264,"49":0.8200361256,"50":1.4558527001,"51":-0.5145542939,"52":0.3796168823,"53":-0.4936405125,"54":-1.1784169121,"55":-2.2506437362,"56":0.2519338449,"57":0.2153754141,"58":-0.7440120845,"59":-0.1211537096,"60":-0.3097121724,"61":-0.4726450206,"62":-0.2725242075,"63":-0.1846873904,"64":-1.2782886203,"65":-0.1632778776,"66":1.3381677997,"67":-0.1196576718,"68":-0.6826230397,"69":0.3733111721,"70":-0.1650287584,"71":-1.4243368837,"72":0.6802034801,"73":1.188114985,"74":-0.5527736706,"75":0.5404582932,"76":0.4839203219,"77":1.7563669892,"78":-0.1906351343,"79":-1.3013386985,"80":0.5762138947,"81":-0.0050982298,"82":-0.2137942618,"83":-0.2741832516,"84":-1.3466422457,"85":-1.1659926723,"86":0.7493772609,"87":1.1603819705,"88":1.5288067376,"89":-1.8994512707,"90":-1.3020745295,"91":0.6032569173,"92":-0.1353287824,"93":0.8483330711,"94":0.9986025773,"95":0.414391856,"96":0.9599556627,"97":1.9386145273,"98":-1.2675417237,"99":-0.3149651441},"col3":{"0":0.6360394667,"1":-0.442507071,"2":0.7236772238,"3":0.7149175376,"4":-0.6725713746,"5":-0.6184537739,"6":-0.3262367419,"7":1.2430749615,"8":0.3829544468,"9":0.983646318,"10":-1.1089446216,"11":0.128593338,"12":-1.6862848319,"13":0.3437891856,"14":0.1430768784,"15":-0.2564781632,"16":-0.4124266057,"17":-1.1073194912,"18":0.5543042491,"19":-0.2735707635,"20":1.2030400284,"21":-0.6433895472,"22":-0.7768492173,"23":0.163109,"24":0.1774232942,"25":-0.6573982104,"26":1.1441491983,"27":-0.1380795044,"28":-1.6185243743,"29":0.5421074069,"30":0.9328910131,"31":0.7871459326,"32":-0.0096682761,"33":-1.7579031948,"34":-0.0219019679,"35":-0.6783666205,"36":0.239303708,"37":-1.1822390265,"38":-0.0671806181,"39":-0.0749680565,"40":-0.4890648468,"41":1.3650478689,"42":0.7451015048,"43":-0.0124077034,"44":-0.839659364,"45":1.4888099666,"46":0.8062197273,"47":-0.8903859872,"48":1.0985798541,"49":-1.1065893944,"50":0.6512643257,"51":-0.7199120236,"52":-0.0046705979,"53":-2.1700014041,"54":-0.290954431,"55":-0.4643012026,"56":-0.0532304858,"57":2.19827727,"58":1.860807427,"59":-0.1538852093,"60":-0.7617200964,"61":-0.5810527346,"62":0.092112321,"63":-1.6535769606,"64":-0.5322050256,"65":0.2002764251,"66":0.3942088637,"67":-0.353559471,"68":1.0373899388,"69":3.0757520145,"70":-1.1972305209,"71":-0.6325503866,"72":0.676550653,"73":0.0922209145,"74":1.2844213743,"75":-0.0411243604,"76":-1.8816069145,"77":1.4325236984,"78":-0.2023957837,"79":0.0181885454,"80":-1.4934980113,"81":2.0576465833,"82":-0.8734412639,"83":-0.0533580445,"84":-1.1547576168,"85":-0.0227437257,"86":-0.5430484522,"87":2.0680305943,"88":0.2425810943,"89":-2.2406886045,"90":0.5510438753,"91":-1.0055417625,"92":0.1996065607,"93":0.2660702784,"94":-2.0887758455,"95":-0.6062694884,"96":-0.5687896016,"97":0.7058823879,"98":0.2328137524,"99":0.4611205818},"col4":{"0":-0.8510838872,"1":-0.602753539,"2":-1.4570664372,"3":-0.5752181364,"4":-0.2183809548,"5":0.7228548871,"6":-0.7314395832,"7":1.9380474842,"8":0.5918485372,"9":0.6414287875,"10":0.3892357584,"11":-0.1394254669,"12":-1.0941857104,"13":-1.2198575468,"14":0.5134539382,"15":-1.0062014356,"16":-1.3796781996,"17":0.134236117,"18":-0.0714081969,"19":-2.1223213739,"20":0.6396531212,"21":-0.2178397442,"22":-0.231982026,"23":0.8062040884,"24":0.8406775389,"25":0.0176125597,"26":0.6006537638,"27":0.397069803,"28":-0.3915005326,"29":1.4537390061,"30":-0.1356356609,"31":0.6203420961,"32":-0.6687236324,"33":0.2835309796,"34":-0.4971865355,"35":0.6932713879,"36":-0.034010635,"37":0.8484325911,"38":0.8635753141,"39":0.4671037583,"40":0.5954888979,"41":-0.8836684998,"42":-1.7306360045,"43":-0.3580572982,"44":-0.7870453016,"45":-0.7688031902,"46":0.6090850387,"47":2.2233371563,"48":-0.4248941078,"49":-0.2731172713,"50":1.3893557388,"51":-2.2111571697,"52":-0.7247160093,"53":-0.1828805335,"54":0.4941513247,"55":-0.0195716347,"56":0.8726647816,"57":1.0170117687,"58":-0.8012461575,"59":0.2823917551,"60":-1.216486672,"61":1.2198442693,"62":1.0334731618,"63":0.1888024673,"64":-1.0108166988,"65":0.1187701969,"66":0.266573381,"67":-1.2763571881,"68":1.2156562865,"69":-1.2373864042,"70":-0.4747641462,"71":-0.8855554423,"72":0.9077584107,"73":-0.920372381,"74":1.7186744515,"75":-0.2639578229,"76":0.5642625804,"77":1.612045746,"78":-1.9929682941,"79":1.7084927894,"80":1.2751886028,"81":0.0887399334,"82":0.5608252357,"83":0.3275741456,"84":0.8257371937,"85":-0.0582177108,"86":1.3643583401,"87":-1.4675493925,"88":-0.932536789,"89":0.7044473816,"90":-0.829598414,"91":-0.8199223141,"92":-0.5785572922,"93":0.0478951321,"94":1.4159002387,"95":-1.7685569264,"96":-0.5031463396,"97":-0.8634281917,"98":-1.3307604233,"99":-0.9461947189},"col5":{"0":-0.4186010036,"1":0.9011087428,"2":-0.1555198911,"3":2.3903992515,"4":0.1399114236,"5":0.9286001581,"6":0.3463691727,"7":-0.0538102914,"8":-1.8109949006,"9":-1.3777713099,"10":-0.8257654708,"11":0.7628153397,"12":0.5713336293,"13":-1.6828509866,"14":-0.6452809376,"15":0.4467262197,"16":0.8234936396,"17":-2.6921973986,"18":-1.5480706384,"19":-0.0238983866,"20":0.7275854416,"21":-0.6873730763,"22":1.8698356493,"23":-0.5146515124,"24":-1.3066034874,"25":1.5841628803,"26":1.583006789,"27":-0.2533483369,"28":1.8337329916,"29":1.7057602543,"30":-1.4717522527,"31":-1.3294625891,"32":0.2207323549,"33":0.5925360359,"34":-1.114512562,"35":0.5593718265,"36":-0.1216906317,"37":-1.1787480503,"38":-0.0053514816,"39":0.001972785,"40":-2.5729870207,"41":2.2271395546,"42":-0.1436148793,"43":0.6436354531,"44":0.9421870586,"45":-0.1487705731,"46":-1.739976326,"47":-0.9026119464,"48":-1.3280138814,"49":-2.1011491907,"50":0.8059014994,"51":-1.4851229175,"52":-1.4075962732,"53":-0.6915726212,"54":0.0885511635,"55":1.3407567076,"56":0.2373459018,"57":-0.2497629601,"58":1.6861020352,"59":0.2613631273,"60":0.1014823785,"61":-0.708060021,"62":-0.4778190887,"63":0.7751197752,"64":3.0365975162,"65":-0.4410751619,"66":0.1217338794,"67":-0.5943388477,"68":-0.1218057781,"69":1.6645771499,"70":0.3362003245,"71":0.9576641859,"72":-0.1860458908,"73":-0.71676435,"74":-1.9968082043,"75":-0.0984633502,"76":0.1076979448,"77":0.3591159346,"78":-0.6594365977,"79":0.0165455701,"80":1.1647479287,"81":1.7111060828,"82":0.8428029343,"83":-0.1095846441,"84":-0.0225348138,"85":1.1926226033,"86":-0.6478048611,"87":1.373548656,"88":-0.3293584535,"89":0.2824530857,"90":0.3968792683,"91":1.8887335519,"92":-0.3847585057,"93":1.2996369347,"94":0.7989144022,"95":-0.5383647339,"96":-1.3113820391,"97":0.34256514,"98":0.5103804336,"99":0.5549303069},"col6":{"0":1.2171228091,"1":-0.018705416,"2":-0.0752065684,"3":-1.034421566,"4":0.5933665777,"5":0.5927996083,"6":-1.2365336066,"7":-0.5696418632,"8":-0.1052142359,"9":2.0451401475,"10":0.2658414857,"11":0.508255802,"12":0.8500312342,"13":1.6883964652,"14":0.7328384759,"15":-0.9525850412,"16":-2.885933082,"17":0.5445800456,"18":0.0533286409,"19":0.8147784234,"20":0.0215130881,"21":2.3469968633,"22":1.5379080308,"23":-0.2435862075,"24":-0.4414454149,"25":-0.7578015598,"26":0.6294594914,"27":-0.1054057282,"28":0.1515442483,"29":-0.5989201333,"30":-1.1133825323,"31":0.5213489663,"32":0.1906293733,"33":1.2009405984,"34":-1.4139320958,"35":-1.0969199377,"36":1.3752002577,"37":0.0723690974,"38":0.8600987525,"39":-1.1576724704,"40":-0.9498911386,"41":1.2588109069,"42":1.1529363106,"43":0.5688633877,"44":0.4548609457,"45":-0.0640843441,"46":0.4715144952,"47":-0.9624504473,"48":-0.0387863003,"49":-0.6060876665,"50":-0.9393584501,"51":0.0953284948,"52":1.1104929414,"53":0.1911884326,"54":-2.3202298565,"55":1.6894157883,"56":-0.6274627485,"57":0.7907985932,"58":-0.2279360692,"59":-2.3593319395,"60":0.0820038179,"61":0.6275293877,"62":0.5449948592,"63":-1.3120931549,"64":1.3955581744,"65":0.9079570395,"66":1.8357446417,"67":-0.0294261632,"68":-2.1101021889,"69":2.1097946793,"70":-0.0656261655,"71":-0.6992765319,"72":-0.9679295408,"73":-0.3643233898,"74":-0.0619027709,"75":-0.5092934907,"76":0.6205888981,"77":0.7135955931,"78":-2.2958706539,"79":1.4205427248,"80":-1.3212030874,"81":0.4845102547,"82":-1.4946067277,"83":2.0886622011,"84":-0.1209836439,"85":2.4106732757,"86":-1.9899520338,"87":1.5318869015,"88":-0.4924404823,"89":-1.9000008079,"90":-0.0390718147,"91":2.3376611844,"92":1.1066835903,"93":-0.7539228073,"94":-0.4409361075,"95":-2.4046997172,"96":1.6118800596,"97":-0.2698933594,"98":-1.1778468299,"99":-0.521595454},"col7":{"0":-1.5034931146,"1":1.474112849,"2":0.1335064609,"3":1.2523185245,"4":0.3018647777,"5":-0.7826647191,"6":2.507722432,"7":-0.3527036783,"8":-0.8697166025,"9":-1.3201870657,"10":-1.5386245017,"11":-1.2760001892,"12":-0.810558665,"13":-0.74149185,"14":-0.1587827431,"15":0.134782878,"16":1.1651597938,"17":-0.7187019484,"18":1.806431168,"19":-0.1232553268,"20":1.6621124471,"21":0.4940354037,"22":0.7896203807,"23":-0.5646092154,"24":-1.3045120575,"25":1.0774681291,"26":1.2327148349,"27":-1.0261854074,"28":-0.9506404213,"29":-1.7616880074,"30":1.0960680279,"31":0.5179772831,"32":1.3125954327,"33":-0.48917986,"34":0.5241363614,"35":-0.9485339557,"36":-0.7200050485,"37":-1.3172290168,"38":-0.7126892537,"39":0.9725489522,"40":0.2776360093,"41":0.6792123331,"42":-0.8713128605,"43":0.7213923419,"44":0.5183546031,"45":-0.6426462065,"46":-0.0377009024,"47":0.0260124941,"48":-0.4741389641,"49":0.6766033762,"50":0.5062310599,"51":0.0760779903,"52":1.2583091047,"53":0.4316761304,"54":0.9757840219,"55":-0.0690691693,"56":0.8799408607,"57":0.7957845907,"58":0.5729401352,"59":0.5513228879,"60":1.5329438999,"61":0.2242523728,"62":0.1989981396,"63":-1.5397760018,"64":-0.018205101,"65":-0.7533766113,"66":0.4184341793,"67":0.7530461866,"68":-0.1938799458,"69":-0.4339348493,"70":0.5364608769,"71":-1.0800389634,"72":-2.0938848363,"73":-1.3319735001,"74":0.0771493925,"75":0.5352711737,"76":0.5430633566,"77":1.523077406,"78":-0.2601449592,"79":-2.5370366703,"80":-0.3542513837,"81":0.130567266,"82":-0.2006830491,"83":-0.7113316281,"84":1.1443733527,"85":-1.1347783072,"86":-0.7382919375,"87":-0.1037043895,"88":0.1566289267,"89":0.3061673352,"90":-1.2479446972,"91":1.7674443444,"92":1.2049358093,"93":0.1800923198,"94":-1.9179719803,"95":-0.2656088008,"96":1.6653879164,"97":-0.5478826541,"98":-1.4817784944,"99":0.5399626801},"col8":{"0":-0.1035240536,"1":-0.2129834997,"2":0.1177325567,"3":0.2993774345,"4":0.0104540551,"5":0.7585656722,"6":-1.1751979375,"7":1.6569528232,"8":0.45074408,"9":-0.2573997988,"10":-0.8907925097,"11":1.5986577245,"12":0.0926031712,"13":0.3633896024,"14":-0.6888639031,"15":0.6927793077,"16":-0.493724817,"17":0.6740199156,"18":-0.0573283465,"19":-0.6329143424,"20":0.9858635389,"21":-0.4424373926,"22":0.1931108638,"23":1.1190813391,"24":-1.2550309039,"25":1.1043900078,"26":1.5321790524,"27":0.5722271615,"28":0.1449266939,"29":0.9757511299,"30":2.0480131684,"31":0.0586863036,"32":-0.0113350183,"33":-0.4981508968,"34":-1.4387549302,"35":-1.0436582608,"36":0.2563623263,"37":-0.2897759847,"38":1.7690191512,"39":0.6676199893,"40":-0.7338220361,"41":-0.5305433943,"42":0.6460302514,"43":0.520399272,"44":0.4409372114,"45":-0.4470016216,"46":-0.7603350614,"47":-0.1999107697,"48":0.5097819873,"49":1.338524907,"50":-0.475915144,"51":-0.4788910956,"52":1.0549791639,"53":-1.241531424,"54":0.3487356339,"55":-0.177357751,"56":0.042649115,"57":0.5083698453,"58":0.598430913,"59":3.2831361955,"60":-1.1374189438,"61":0.9731346665,"62":0.713183594,"63":0.4996515274,"64":-0.9962285727,"65":-0.6007545591,"66":0.7417893198,"67":-0.8681613067,"68":1.4814378415,"69":-0.0016850988,"70":0.8911857125,"71":-0.3309882383,"72":1.2729276048,"73":-1.064836068,"74":-0.7252124828,"75":-0.2897331951,"76":-0.9343135343,"77":0.8519451406,"78":-0.5796812026,"79":0.9150298375,"80":-0.9176478235,"81":0.417771646,"82":0.8983451965,"83":-1.3190883982,"84":1.3512295692,"85":-2.4295664812,"86":0.769134155,"87":-0.4466173555,"88":-2.6182010198,"89":0.0718825576,"90":-2.39400182,"91":0.186610881,"92":-0.4091733098,"93":-0.8558359377,"94":-0.8813536371,"95":-1.3116101284,"96":-1.2220880199,"97":1.0881747487,"98":-1.2438424287,"99":0.9727582873},"col9":{"0":0.2770200081,"1":0.0969445496,"2":0.1637000112,"3":-0.0169884966,"4":-0.830656375,"5":-0.4202088343,"6":1.22521081,"7":-1.3991942145,"8":0.3334519664,"9":-0.8152867828,"10":0.6800172434,"11":0.3660530178,"12":-0.1021259191,"13":-0.450625588,"14":2.1420234626,"15":-0.6853016415,"16":2.1384201468,"17":0.5497566746,"18":0.6030348453,"19":-0.244279098,"20":-0.6113676451,"21":-0.1715548174,"22":2.3421767443,"23":0.1799371297,"24":0.4570646723,"25":-0.5233518806,"26":-1.1241522589,"27":0.7570355881,"28":0.432964409,"29":-1.7174573722,"30":0.9448841738,"31":0.7672760804,"32":-0.0988925854,"33":1.1651689972,"34":-0.4199616267,"35":-0.3027444949,"36":-1.0296606331,"37":0.1115423961,"38":-2.3345289384,"39":0.1051880039,"40":-1.069605111,"41":-0.4501060158,"42":-0.4528296647,"43":1.5119872548,"44":0.9242893616,"45":0.5859097087,"46":-1.0129943208,"47":0.1683870559,"48":-0.6679590462,"49":0.6002149558,"50":-0.1968042859,"51":-0.5846631649,"52":-0.9093328241,"53":-0.1346970092,"54":-0.4640146228,"55":-0.7520968813,"56":0.2784536684,"57":-0.7665575485,"58":1.3206182254,"59":-2.1839063591,"60":-0.6729338339,"61":0.3639413878,"62":0.7109463984,"63":-0.1918260148,"64":-0.1766453188,"65":0.561974876,"66":0.3456313749,"67":-0.7508055504,"68":-0.1847036902,"69":0.0620888722,"70":-1.6556948076,"71":-0.0488181194,"72":0.8391931721,"73":0.0419917077,"74":0.5970288057,"75":0.1821435576,"76":-0.0310243786,"77":-0.6263899995,"78":0.2010174441,"79":-0.6352549992,"80":-0.1715156792,"81":0.8870997135,"82":0.2775310688,"83":-1.5224223317,"84":0.0834392403,"85":-1.2452308727,"86":1.7411146815,"87":2.0163284031,"88":-0.1200159357,"89":1.5749513007,"90":0.5635855875,"91":-1.4534036145,"92":-0.3521047703,"93":-0.1470656432,"94":0.1369224338,"95":-0.9196452101,"96":-0.6620923461,"97":0.7772852595,"98":0.6365118618,"99":-0.1714319825}} -------------------------------------------------------------------------------- /data/data.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emjako/pythondatascientist/eb5b8e2e98a11255a3574d0aff56e77b3f19e668/data/data.parquet -------------------------------------------------------------------------------- /data/data_idf.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emjako/pythondatascientist/eb5b8e2e98a11255a3574d0aff56e77b3f19e668/data/data_idf.RData -------------------------------------------------------------------------------- /data/elephant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emjako/pythondatascientist/eb5b8e2e98a11255a3574d0aff56e77b3f19e668/data/elephant.png -------------------------------------------------------------------------------- /data/salaries.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emjako/pythondatascientist/eb5b8e2e98a11255a3574d0aff56e77b3f19e668/data/salaries.sqlite -------------------------------------------------------------------------------- /data/y_telecom.csv: -------------------------------------------------------------------------------- 1 | ,Churn! 2 | 0,0 3 | 1,0 4 | 2,0 5 | 3,0 6 | 4,0 7 | 5,0 8 | 6,0 9 | 7,0 10 | 8,0 11 | 9,0 12 | 10,1 13 | 11,0 14 | 12,0 15 | 13,0 16 | 14,0 17 | 15,1 18 | 16,0 19 | 17,0 20 | 18,0 21 | 19,0 22 | 20,0 23 | 21,1 24 | 22,0 25 | 23,0 26 | 24,0 27 | 25,0 28 | 26,0 29 | 27,0 30 | 28,0 31 | 29,0 32 | 30,0 33 | 31,0 34 | 32,0 35 | 33,1 36 | 34,0 37 | 35,0 38 | 36,0 39 | 37,0 40 | 38,0 41 | 39,0 42 | 40,0 43 | 41,1 44 | 42,0 45 | 43,0 46 | 44,0 47 | 45,0 48 | 46,0 49 | 47,0 50 | 48,1 51 | 49,0 52 | 50,0 53 | 51,0 54 | 52,0 55 | 53,0 56 | 54,1 57 | 55,0 58 | 56,0 59 | 57,1 60 | 58,0 61 | 59,0 62 | 60,0 63 | 61,0 64 | 62,0 65 | 63,0 66 | 64,0 67 | 65,0 68 | 66,0 69 | 67,0 70 | 68,0 71 | 69,1 72 | 70,0 73 | 71,0 74 | 72,0 75 | 73,0 76 | 74,0 77 | 75,0 78 | 76,1 79 | 77,1 80 | 78,0 81 | 79,0 82 | 80,0 83 | 81,0 84 | 82,0 85 | 83,0 86 | 84,1 87 | 85,0 88 | 86,1 89 | 87,0 90 | 88,0 91 | 89,1 92 | 90,0 93 | 91,1 94 | 92,0 95 | 93,0 96 | 94,0 97 | 95,0 98 | 96,0 99 | 97,0 100 | 98,1 101 | 99,1 102 | 100,0 103 | 101,0 104 | 102,0 105 | 103,0 106 | 104,0 107 | 105,0 108 | 106,0 109 | 107,0 110 | 108,0 111 | 109,0 112 | 110,0 113 | 111,0 114 | 112,0 115 | 113,0 116 | 114,0 117 | 115,1 118 | 116,0 119 | 117,1 120 | 118,0 121 | 119,0 122 | 120,0 123 | 121,0 124 | 122,0 125 | 123,0 126 | 124,0 127 | 125,0 128 | 126,1 129 | 127,1 130 | 128,0 131 | 129,0 132 | 130,0 133 | 131,0 134 | 132,0 135 | 133,0 136 | 134,0 137 | 135,0 138 | 136,0 139 | 137,0 140 | 138,0 141 | 139,0 142 | 140,0 143 | 141,0 144 | 142,0 145 | 143,0 146 | 144,1 147 | 145,0 148 | 146,0 149 | 147,0 150 | 148,0 151 | 149,0 152 | 150,0 153 | 151,0 154 | 152,0 155 | 153,0 156 | 154,0 157 | 155,0 158 | 156,1 159 | 157,0 160 | 158,0 161 | 159,0 162 | 160,0 163 | 161,0 164 | 162,0 165 | 163,0 166 | 164,0 167 | 165,0 168 | 166,0 169 | 167,0 170 | 168,0 171 | 169,0 172 | 170,0 173 | 171,0 174 | 172,0 175 | 173,0 176 | 174,0 177 | 175,0 178 | 176,0 179 | 177,0 180 | 178,0 181 | 179,0 182 | 180,0 183 | 181,1 184 | 182,0 185 | 183,0 186 | 184,0 187 | 185,0 188 | 186,0 189 | 187,0 190 | 188,0 191 | 189,0 192 | 190,0 193 | 191,0 194 | 192,0 195 | 193,0 196 | 194,0 197 | 195,0 198 | 196,0 199 | 197,1 200 | 198,1 201 | 199,0 202 | 200,0 203 | 201,0 204 | 202,0 205 | 203,0 206 | 204,0 207 | 205,0 208 | 206,0 209 | 207,0 210 | 208,0 211 | 209,0 212 | 210,0 213 | 211,0 214 | 212,0 215 | 213,0 216 | 214,1 217 | 215,0 218 | 216,0 219 | 217,0 220 | 218,1 221 | 219,0 222 | 220,0 223 | 221,0 224 | 222,0 225 | 223,0 226 | 224,0 227 | 225,0 228 | 226,0 229 | 227,0 230 | 228,0 231 | 229,0 232 | 230,1 233 | 231,0 234 | 232,0 235 | 233,0 236 | 234,0 237 | 235,1 238 | 236,0 239 | 237,0 240 | 238,0 241 | 239,0 242 | 240,0 243 | 241,1 244 | 242,0 245 | 243,0 246 | 244,1 247 | 245,0 248 | 246,0 249 | 247,0 250 | 248,0 251 | 249,0 252 | 250,1 253 | 251,0 254 | 252,0 255 | 253,0 256 | 254,0 257 | 255,0 258 | 256,0 259 | 257,0 260 | 258,1 261 | 259,0 262 | 260,0 263 | 261,0 264 | 262,0 265 | 263,0 266 | 264,0 267 | 265,0 268 | 266,0 269 | 267,0 270 | 268,0 271 | 269,0 272 | 270,0 273 | 271,0 274 | 272,0 275 | 273,0 276 | 274,0 277 | 275,0 278 | 276,0 279 | 277,1 280 | 278,0 281 | 279,0 282 | 280,0 283 | 281,0 284 | 282,0 285 | 283,0 286 | 284,0 287 | 285,0 288 | 286,0 289 | 287,0 290 | 288,0 291 | 289,1 292 | 290,0 293 | 291,0 294 | 292,0 295 | 293,1 296 | 294,0 297 | 295,0 298 | 296,0 299 | 297,0 300 | 298,0 301 | 299,0 302 | 300,0 303 | 301,1 304 | 302,1 305 | 303,0 306 | 304,0 307 | 305,0 308 | 306,1 309 | 307,1 310 | 308,0 311 | 309,0 312 | 310,1 313 | 311,0 314 | 312,0 315 | 313,0 316 | 314,0 317 | 315,0 318 | 316,0 319 | 317,0 320 | 318,0 321 | 319,1 322 | 320,0 323 | 321,0 324 | 322,0 325 | 323,0 326 | 324,0 327 | 325,0 328 | 326,0 329 | 327,0 330 | 328,0 331 | 329,0 332 | 330,0 333 | 331,1 334 | 332,1 335 | 333,0 336 | 334,0 337 | 335,0 338 | 336,0 339 | 337,0 340 | 338,0 341 | 339,0 342 | 340,1 343 | 341,0 344 | 342,0 345 | 343,0 346 | 344,0 347 | 345,0 348 | 346,0 349 | 347,0 350 | 348,0 351 | 349,1 352 | 350,0 353 | 351,0 354 | 352,0 355 | 353,0 356 | 354,1 357 | 355,0 358 | 356,0 359 | 357,0 360 | 358,0 361 | 359,0 362 | 360,1 363 | 361,0 364 | 362,0 365 | 363,0 366 | 364,0 367 | 365,1 368 | 366,0 369 | 367,0 370 | 368,0 371 | 369,0 372 | 370,0 373 | 371,0 374 | 372,1 375 | 373,0 376 | 374,0 377 | 375,0 378 | 376,0 379 | 377,0 380 | 378,1 381 | 379,0 382 | 380,0 383 | 381,0 384 | 382,0 385 | 383,0 386 | 384,0 387 | 385,0 388 | 386,0 389 | 387,0 390 | 388,0 391 | 389,0 392 | 390,0 393 | 391,0 394 | 392,0 395 | 393,0 396 | 394,1 397 | 395,0 398 | 396,0 399 | 397,1 400 | 398,0 401 | 399,1 402 | 400,0 403 | 401,0 404 | 402,0 405 | 403,0 406 | 404,0 407 | 405,0 408 | 406,0 409 | 407,1 410 | 408,0 411 | 409,0 412 | 410,0 413 | 411,0 414 | 412,0 415 | 413,0 416 | 414,0 417 | 415,1 418 | 416,1 419 | 417,0 420 | 418,0 421 | 419,0 422 | 420,0 423 | 421,0 424 | 422,0 425 | 423,0 426 | 424,0 427 | 425,0 428 | 426,0 429 | 427,0 430 | 428,0 431 | 429,0 432 | 430,1 433 | 431,0 434 | 432,0 435 | 433,0 436 | 434,0 437 | 435,0 438 | 436,0 439 | 437,1 440 | 438,0 441 | 439,0 442 | 440,0 443 | 441,0 444 | 442,0 445 | 443,0 446 | 444,0 447 | 445,0 448 | 446,0 449 | 447,0 450 | 448,0 451 | 449,0 452 | 450,0 453 | 451,0 454 | 452,0 455 | 453,0 456 | 454,1 457 | 455,1 458 | 456,0 459 | 457,0 460 | 458,0 461 | 459,0 462 | 460,0 463 | 461,0 464 | 462,0 465 | 463,0 466 | 464,0 467 | 465,1 468 | 466,1 469 | 467,0 470 | 468,0 471 | 469,0 472 | 470,0 473 | 471,0 474 | 472,0 475 | 473,1 476 | 474,0 477 | 475,0 478 | 476,0 479 | 477,0 480 | 478,0 481 | 479,0 482 | 480,0 483 | 481,0 484 | 482,0 485 | 483,0 486 | 484,0 487 | 485,0 488 | 486,0 489 | 487,0 490 | 488,0 491 | 489,0 492 | 490,0 493 | 491,1 494 | 492,1 495 | 493,0 496 | 494,0 497 | 495,0 498 | 496,0 499 | 497,0 500 | 498,1 501 | 499,0 502 | 500,0 503 | 501,0 504 | 502,1 505 | 503,0 506 | 504,0 507 | 505,0 508 | 506,0 509 | 507,1 510 | 508,0 511 | 509,1 512 | 510,0 513 | 511,0 514 | 512,0 515 | 513,0 516 | 514,1 517 | 515,0 518 | 516,0 519 | 517,0 520 | 518,0 521 | 519,0 522 | 520,0 523 | 521,1 524 | 522,0 525 | 523,0 526 | 524,0 527 | 525,0 528 | 526,0 529 | 527,0 530 | 528,0 531 | 529,0 532 | 530,0 533 | 531,0 534 | 532,0 535 | 533,0 536 | 534,0 537 | 535,0 538 | 536,0 539 | 537,0 540 | 538,0 541 | 539,0 542 | 540,0 543 | 541,0 544 | 542,1 545 | 543,0 546 | 544,0 547 | 545,0 548 | 546,1 549 | 547,1 550 | 548,0 551 | 549,0 552 | 550,1 553 | 551,0 554 | 552,1 555 | 553,0 556 | 554,0 557 | 555,0 558 | 556,0 559 | 557,0 560 | 558,1 561 | 559,0 562 | 560,0 563 | 561,0 564 | 562,0 565 | 563,0 566 | 564,0 567 | 565,0 568 | 566,0 569 | 567,0 570 | 568,0 571 | 569,1 572 | 570,0 573 | 571,0 574 | 572,0 575 | 573,0 576 | 574,1 577 | 575,0 578 | 576,0 579 | 577,0 580 | 578,0 581 | 579,0 582 | 580,1 583 | 581,0 584 | 582,0 585 | 583,0 586 | 584,1 587 | 585,0 588 | 586,0 589 | 587,0 590 | 588,1 591 | 589,0 592 | 590,0 593 | 591,0 594 | 592,0 595 | 593,0 596 | 594,0 597 | 595,0 598 | 596,0 599 | 597,0 600 | 598,0 601 | 599,0 602 | 600,0 603 | 601,1 604 | 602,0 605 | 603,0 606 | 604,0 607 | 605,1 608 | 606,0 609 | 607,0 610 | 608,0 611 | 609,0 612 | 610,0 613 | 611,0 614 | 612,0 615 | 613,1 616 | 614,0 617 | 615,0 618 | 616,0 619 | 617,0 620 | 618,0 621 | 619,1 622 | 620,0 623 | 621,0 624 | 622,0 625 | 623,0 626 | 624,0 627 | 625,0 628 | 626,1 629 | 627,0 630 | 628,0 631 | 629,1 632 | 630,0 633 | 631,0 634 | 632,0 635 | 633,0 636 | 634,0 637 | 635,0 638 | 636,0 639 | 637,0 640 | 638,0 641 | 639,0 642 | 640,0 643 | 641,0 644 | 642,0 645 | 643,0 646 | 644,0 647 | 645,0 648 | 646,0 649 | 647,0 650 | 648,0 651 | 649,1 652 | 650,0 653 | 651,0 654 | 652,0 655 | 653,0 656 | 654,0 657 | 655,1 658 | 656,0 659 | 657,0 660 | 658,0 661 | 659,0 662 | 660,1 663 | 661,0 664 | 662,0 665 | 663,0 666 | 664,0 667 | 665,0 668 | 666,0 669 | 667,0 670 | 668,0 671 | 669,0 672 | 670,0 673 | 671,0 674 | 672,0 675 | 673,0 676 | 674,0 677 | 675,0 678 | 676,0 679 | 677,0 680 | 678,0 681 | 679,1 682 | 680,0 683 | 681,0 684 | 682,0 685 | 683,0 686 | 684,0 687 | 685,0 688 | 686,0 689 | 687,0 690 | 688,0 691 | 689,0 692 | 690,0 693 | 691,0 694 | 692,0 695 | 693,0 696 | 694,0 697 | 695,0 698 | 696,0 699 | 697,0 700 | 698,0 701 | 699,0 702 | 700,0 703 | 701,0 704 | 702,0 705 | 703,0 706 | 704,0 707 | 705,0 708 | 706,0 709 | 707,0 710 | 708,0 711 | 709,0 712 | 710,0 713 | 711,0 714 | 712,0 715 | 713,0 716 | 714,0 717 | 715,1 718 | 716,0 719 | 717,0 720 | 718,0 721 | 719,0 722 | 720,0 723 | 721,1 724 | 722,0 725 | 723,0 726 | 724,0 727 | 725,0 728 | 726,0 729 | 727,0 730 | 728,0 731 | 729,0 732 | 730,1 733 | 731,0 734 | 732,0 735 | 733,0 736 | 734,0 737 | 735,0 738 | 736,1 739 | 737,1 740 | 738,0 741 | 739,0 742 | 740,0 743 | 741,0 744 | 742,0 745 | 743,0 746 | 744,0 747 | 745,0 748 | 746,0 749 | 747,0 750 | 748,0 751 | 749,0 752 | 750,0 753 | 751,0 754 | 752,0 755 | 753,0 756 | 754,0 757 | 755,0 758 | 756,0 759 | 757,0 760 | 758,0 761 | 759,0 762 | 760,0 763 | 761,0 764 | 762,0 765 | 763,0 766 | 764,0 767 | 765,0 768 | 766,1 769 | 767,0 770 | 768,0 771 | 769,0 772 | 770,0 773 | 771,1 774 | 772,0 775 | 773,1 776 | 774,0 777 | 775,0 778 | 776,0 779 | 777,0 780 | 778,0 781 | 779,0 782 | 780,0 783 | 781,0 784 | 782,0 785 | 783,0 786 | 784,0 787 | 785,0 788 | 786,0 789 | 787,1 790 | 788,0 791 | 789,0 792 | 790,0 793 | 791,0 794 | 792,1 795 | 793,0 796 | 794,0 797 | 795,0 798 | 796,0 799 | 797,1 800 | 798,0 801 | 799,0 802 | 800,0 803 | 801,0 804 | 802,0 805 | 803,0 806 | 804,0 807 | 805,0 808 | 806,0 809 | 807,0 810 | 808,0 811 | 809,0 812 | 810,0 813 | 811,0 814 | 812,0 815 | 813,0 816 | 814,0 817 | 815,1 818 | 816,0 819 | 817,0 820 | 818,0 821 | 819,0 822 | 820,0 823 | 821,0 824 | 822,0 825 | 823,0 826 | 824,0 827 | 825,0 828 | 826,0 829 | 827,0 830 | 828,0 831 | 829,0 832 | 830,1 833 | 831,0 834 | 832,1 835 | 833,0 836 | 834,0 837 | 835,0 838 | 836,0 839 | 837,0 840 | 838,0 841 | 839,0 842 | 840,0 843 | 841,0 844 | 842,0 845 | 843,0 846 | 844,0 847 | 845,0 848 | 846,1 849 | 847,0 850 | 848,0 851 | 849,0 852 | 850,0 853 | 851,1 854 | 852,0 855 | 853,0 856 | 854,0 857 | 855,0 858 | 856,0 859 | 857,0 860 | 858,0 861 | 859,1 862 | 860,0 863 | 861,0 864 | 862,0 865 | 863,0 866 | 864,0 867 | 865,0 868 | 866,0 869 | 867,0 870 | 868,0 871 | 869,0 872 | 870,0 873 | 871,1 874 | 872,0 875 | 873,0 876 | 874,0 877 | 875,0 878 | 876,0 879 | 877,0 880 | 878,0 881 | 879,0 882 | 880,0 883 | 881,0 884 | 882,0 885 | 883,0 886 | 884,0 887 | 885,0 888 | 886,0 889 | 887,0 890 | 888,0 891 | 889,0 892 | 890,0 893 | 891,0 894 | 892,1 895 | 893,0 896 | 894,1 897 | 895,0 898 | 896,0 899 | 897,0 900 | 898,0 901 | 899,0 902 | 900,0 903 | 901,1 904 | 902,0 905 | 903,0 906 | 904,1 907 | 905,1 908 | 906,0 909 | 907,0 910 | 908,0 911 | 909,0 912 | 910,0 913 | 911,1 914 | 912,0 915 | 913,0 916 | 914,1 917 | 915,0 918 | 916,0 919 | 917,0 920 | 918,0 921 | 919,0 922 | 920,0 923 | 921,0 924 | 922,0 925 | 923,0 926 | 924,0 927 | 925,0 928 | 926,0 929 | 927,0 930 | 928,0 931 | 929,0 932 | 930,0 933 | 931,0 934 | 932,0 935 | 933,1 936 | 934,0 937 | 935,0 938 | 936,0 939 | 937,0 940 | 938,0 941 | 939,0 942 | 940,0 943 | 941,0 944 | 942,0 945 | 943,0 946 | 944,1 947 | 945,0 948 | 946,1 949 | 947,0 950 | 948,0 951 | 949,0 952 | 950,0 953 | 951,0 954 | 952,0 955 | 953,0 956 | 954,0 957 | 955,0 958 | 956,0 959 | 957,0 960 | 958,0 961 | 959,0 962 | 960,0 963 | 961,0 964 | 962,0 965 | 963,0 966 | 964,0 967 | 965,0 968 | 966,1 969 | 967,0 970 | 968,1 971 | 969,0 972 | 970,0 973 | 971,0 974 | 972,0 975 | 973,0 976 | 974,0 977 | 975,1 978 | 976,0 979 | 977,1 980 | 978,1 981 | 979,0 982 | 980,0 983 | 981,0 984 | 982,0 985 | 983,0 986 | 984,0 987 | 985,1 988 | 986,0 989 | 987,1 990 | 988,0 991 | 989,0 992 | 990,0 993 | 991,0 994 | 992,0 995 | 993,0 996 | 994,0 997 | 995,0 998 | 996,0 999 | 997,0 1000 | 998,0 1001 | 999,0 1002 | 1000,1 1003 | 1001,0 1004 | 1002,0 1005 | 1003,0 1006 | 1004,0 1007 | 1005,0 1008 | 1006,0 1009 | 1007,0 1010 | 1008,0 1011 | 1009,0 1012 | 1010,0 1013 | 1011,0 1014 | 1012,0 1015 | 1013,0 1016 | 1014,0 1017 | 1015,0 1018 | 1016,0 1019 | 1017,0 1020 | 1018,1 1021 | 1019,0 1022 | 1020,0 1023 | 1021,0 1024 | 1022,0 1025 | 1023,0 1026 | 1024,0 1027 | 1025,0 1028 | 1026,0 1029 | 1027,1 1030 | 1028,0 1031 | 1029,0 1032 | 1030,1 1033 | 1031,0 1034 | 1032,0 1035 | 1033,0 1036 | 1034,0 1037 | 1035,0 1038 | 1036,0 1039 | 1037,0 1040 | 1038,1 1041 | 1039,0 1042 | 1040,0 1043 | 1041,0 1044 | 1042,0 1045 | 1043,0 1046 | 1044,0 1047 | 1045,0 1048 | 1046,0 1049 | 1047,0 1050 | 1048,0 1051 | 1049,0 1052 | 1050,0 1053 | 1051,0 1054 | 1052,0 1055 | 1053,0 1056 | 1054,0 1057 | 1055,0 1058 | 1056,0 1059 | 1057,0 1060 | 1058,0 1061 | 1059,0 1062 | 1060,0 1063 | 1061,0 1064 | 1062,0 1065 | 1063,0 1066 | 1064,0 1067 | 1065,0 1068 | 1066,0 1069 | 1067,0 1070 | 1068,0 1071 | 1069,0 1072 | 1070,0 1073 | 1071,0 1074 | 1072,0 1075 | 1073,0 1076 | 1074,0 1077 | 1075,0 1078 | 1076,0 1079 | 1077,1 1080 | 1078,1 1081 | 1079,0 1082 | 1080,0 1083 | 1081,0 1084 | 1082,0 1085 | 1083,0 1086 | 1084,0 1087 | 1085,0 1088 | 1086,0 1089 | 1087,0 1090 | 1088,0 1091 | 1089,0 1092 | 1090,0 1093 | 1091,0 1094 | 1092,0 1095 | 1093,0 1096 | 1094,0 1097 | 1095,0 1098 | 1096,0 1099 | 1097,0 1100 | 1098,0 1101 | 1099,0 1102 | 1100,0 1103 | 1101,0 1104 | 1102,1 1105 | 1103,0 1106 | 1104,0 1107 | 1105,1 1108 | 1106,0 1109 | 1107,0 1110 | 1108,0 1111 | 1109,0 1112 | 1110,0 1113 | 1111,0 1114 | 1112,0 1115 | 1113,0 1116 | 1114,0 1117 | 1115,1 1118 | 1116,0 1119 | 1117,0 1120 | 1118,0 1121 | 1119,0 1122 | 1120,0 1123 | 1121,1 1124 | 1122,1 1125 | 1123,0 1126 | 1124,0 1127 | 1125,0 1128 | 1126,0 1129 | 1127,0 1130 | 1128,0 1131 | 1129,0 1132 | 1130,0 1133 | 1131,0 1134 | 1132,0 1135 | 1133,1 1136 | 1134,0 1137 | 1135,0 1138 | 1136,1 1139 | 1137,0 1140 | 1138,0 1141 | 1139,0 1142 | 1140,0 1143 | 1141,0 1144 | 1142,1 1145 | 1143,0 1146 | 1144,0 1147 | 1145,0 1148 | 1146,0 1149 | 1147,0 1150 | 1148,0 1151 | 1149,0 1152 | 1150,1 1153 | 1151,0 1154 | 1152,0 1155 | 1153,0 1156 | 1154,0 1157 | 1155,1 1158 | 1156,0 1159 | 1157,0 1160 | 1158,0 1161 | 1159,0 1162 | 1160,0 1163 | 1161,0 1164 | 1162,0 1165 | 1163,0 1166 | 1164,0 1167 | 1165,0 1168 | 1166,0 1169 | 1167,0 1170 | 1168,0 1171 | 1169,0 1172 | 1170,0 1173 | 1171,0 1174 | 1172,0 1175 | 1173,0 1176 | 1174,0 1177 | 1175,0 1178 | 1176,0 1179 | 1177,0 1180 | 1178,0 1181 | 1179,0 1182 | 1180,0 1183 | 1181,0 1184 | 1182,1 1185 | 1183,0 1186 | 1184,0 1187 | 1185,0 1188 | 1186,0 1189 | 1187,0 1190 | 1188,0 1191 | 1189,0 1192 | 1190,0 1193 | 1191,0 1194 | 1192,1 1195 | 1193,1 1196 | 1194,0 1197 | 1195,0 1198 | 1196,0 1199 | 1197,0 1200 | 1198,0 1201 | 1199,0 1202 | 1200,0 1203 | 1201,0 1204 | 1202,0 1205 | 1203,0 1206 | 1204,1 1207 | 1205,0 1208 | 1206,0 1209 | 1207,0 1210 | 1208,0 1211 | 1209,0 1212 | 1210,0 1213 | 1211,0 1214 | 1212,0 1215 | 1213,0 1216 | 1214,0 1217 | 1215,0 1218 | 1216,0 1219 | 1217,0 1220 | 1218,0 1221 | 1219,0 1222 | 1220,0 1223 | 1221,0 1224 | 1222,0 1225 | 1223,0 1226 | 1224,0 1227 | 1225,0 1228 | 1226,0 1229 | 1227,0 1230 | 1228,0 1231 | 1229,0 1232 | 1230,0 1233 | 1231,1 1234 | 1232,1 1235 | 1233,0 1236 | 1234,0 1237 | 1235,0 1238 | 1236,0 1239 | 1237,0 1240 | 1238,0 1241 | 1239,0 1242 | 1240,1 1243 | 1241,0 1244 | 1242,0 1245 | 1243,0 1246 | 1244,0 1247 | 1245,0 1248 | 1246,0 1249 | 1247,0 1250 | 1248,0 1251 | 1249,0 1252 | 1250,0 1253 | 1251,0 1254 | 1252,0 1255 | 1253,0 1256 | 1254,1 1257 | 1255,0 1258 | 1256,0 1259 | 1257,0 1260 | 1258,0 1261 | 1259,0 1262 | 1260,0 1263 | 1261,0 1264 | 1262,0 1265 | 1263,1 1266 | 1264,0 1267 | 1265,0 1268 | 1266,0 1269 | 1267,0 1270 | 1268,0 1271 | 1269,1 1272 | 1270,0 1273 | 1271,0 1274 | 1272,0 1275 | 1273,1 1276 | 1274,0 1277 | 1275,0 1278 | 1276,1 1279 | 1277,0 1280 | 1278,1 1281 | 1279,0 1282 | 1280,1 1283 | 1281,0 1284 | 1282,0 1285 | 1283,0 1286 | 1284,1 1287 | 1285,0 1288 | 1286,0 1289 | 1287,0 1290 | 1288,0 1291 | 1289,0 1292 | 1290,0 1293 | 1291,0 1294 | 1292,0 1295 | 1293,0 1296 | 1294,0 1297 | 1295,0 1298 | 1296,0 1299 | 1297,0 1300 | 1298,0 1301 | 1299,1 1302 | 1300,0 1303 | 1301,0 1304 | 1302,1 1305 | 1303,0 1306 | 1304,0 1307 | 1305,0 1308 | 1306,1 1309 | 1307,0 1310 | 1308,0 1311 | 1309,0 1312 | 1310,1 1313 | 1311,0 1314 | 1312,0 1315 | 1313,0 1316 | 1314,0 1317 | 1315,0 1318 | 1316,0 1319 | 1317,0 1320 | 1318,0 1321 | 1319,0 1322 | 1320,0 1323 | 1321,0 1324 | 1322,1 1325 | 1323,0 1326 | 1324,0 1327 | 1325,1 1328 | 1326,0 1329 | 1327,1 1330 | 1328,0 1331 | 1329,0 1332 | 1330,0 1333 | 1331,0 1334 | 1332,0 1335 | 1333,0 1336 | 1334,1 1337 | 1335,0 1338 | 1336,0 1339 | 1337,1 1340 | 1338,0 1341 | 1339,1 1342 | 1340,0 1343 | 1341,0 1344 | 1342,0 1345 | 1343,0 1346 | 1344,1 1347 | 1345,1 1348 | 1346,1 1349 | 1347,0 1350 | 1348,0 1351 | 1349,0 1352 | 1350,1 1353 | 1351,0 1354 | 1352,0 1355 | 1353,0 1356 | 1354,0 1357 | 1355,0 1358 | 1356,0 1359 | 1357,0 1360 | 1358,0 1361 | 1359,1 1362 | 1360,0 1363 | 1361,0 1364 | 1362,0 1365 | 1363,0 1366 | 1364,1 1367 | 1365,0 1368 | 1366,0 1369 | 1367,0 1370 | 1368,0 1371 | 1369,0 1372 | 1370,0 1373 | 1371,0 1374 | 1372,0 1375 | 1373,1 1376 | 1374,0 1377 | 1375,0 1378 | 1376,1 1379 | 1377,0 1380 | 1378,0 1381 | 1379,0 1382 | 1380,0 1383 | 1381,0 1384 | 1382,0 1385 | 1383,0 1386 | 1384,0 1387 | 1385,0 1388 | 1386,0 1389 | 1387,0 1390 | 1388,0 1391 | 1389,0 1392 | 1390,0 1393 | 1391,0 1394 | 1392,1 1395 | 1393,0 1396 | 1394,0 1397 | 1395,0 1398 | 1396,0 1399 | 1397,0 1400 | 1398,0 1401 | 1399,0 1402 | 1400,0 1403 | 1401,0 1404 | 1402,0 1405 | 1403,0 1406 | 1404,0 1407 | 1405,1 1408 | 1406,0 1409 | 1407,1 1410 | 1408,0 1411 | 1409,0 1412 | 1410,0 1413 | 1411,0 1414 | 1412,0 1415 | 1413,0 1416 | 1414,0 1417 | 1415,0 1418 | 1416,0 1419 | 1417,0 1420 | 1418,0 1421 | 1419,0 1422 | 1420,1 1423 | 1421,0 1424 | 1422,0 1425 | 1423,0 1426 | 1424,0 1427 | 1425,0 1428 | 1426,0 1429 | 1427,0 1430 | 1428,0 1431 | 1429,0 1432 | 1430,0 1433 | 1431,0 1434 | 1432,0 1435 | 1433,0 1436 | 1434,0 1437 | 1435,1 1438 | 1436,0 1439 | 1437,0 1440 | 1438,0 1441 | 1439,0 1442 | 1440,0 1443 | 1441,0 1444 | 1442,1 1445 | 1443,0 1446 | 1444,0 1447 | 1445,0 1448 | 1446,0 1449 | 1447,0 1450 | 1448,0 1451 | 1449,0 1452 | 1450,0 1453 | 1451,0 1454 | 1452,0 1455 | 1453,0 1456 | 1454,1 1457 | 1455,0 1458 | 1456,0 1459 | 1457,0 1460 | 1458,0 1461 | 1459,0 1462 | 1460,0 1463 | 1461,0 1464 | 1462,0 1465 | 1463,0 1466 | 1464,0 1467 | 1465,0 1468 | 1466,0 1469 | 1467,1 1470 | 1468,0 1471 | 1469,0 1472 | 1470,0 1473 | 1471,0 1474 | 1472,1 1475 | 1473,0 1476 | 1474,0 1477 | 1475,0 1478 | 1476,0 1479 | 1477,0 1480 | 1478,0 1481 | 1479,0 1482 | 1480,0 1483 | 1481,0 1484 | 1482,0 1485 | 1483,0 1486 | 1484,1 1487 | 1485,0 1488 | 1486,0 1489 | 1487,0 1490 | 1488,0 1491 | 1489,0 1492 | 1490,0 1493 | 1491,0 1494 | 1492,0 1495 | 1493,1 1496 | 1494,0 1497 | 1495,0 1498 | 1496,0 1499 | 1497,0 1500 | 1498,0 1501 | 1499,0 1502 | 1500,0 1503 | 1501,0 1504 | 1502,0 1505 | 1503,0 1506 | 1504,0 1507 | 1505,0 1508 | 1506,0 1509 | 1507,0 1510 | 1508,0 1511 | 1509,0 1512 | 1510,0 1513 | 1511,0 1514 | 1512,0 1515 | 1513,0 1516 | 1514,0 1517 | 1515,0 1518 | 1516,1 1519 | 1517,0 1520 | 1518,0 1521 | 1519,0 1522 | 1520,0 1523 | 1521,0 1524 | 1522,0 1525 | 1523,0 1526 | 1524,0 1527 | 1525,0 1528 | 1526,0 1529 | 1527,0 1530 | 1528,1 1531 | 1529,0 1532 | 1530,1 1533 | 1531,1 1534 | 1532,1 1535 | 1533,1 1536 | 1534,1 1537 | 1535,0 1538 | 1536,0 1539 | 1537,1 1540 | 1538,1 1541 | 1539,0 1542 | 1540,0 1543 | 1541,0 1544 | 1542,0 1545 | 1543,0 1546 | 1544,0 1547 | 1545,0 1548 | 1546,0 1549 | 1547,0 1550 | 1548,0 1551 | 1549,0 1552 | 1550,0 1553 | 1551,1 1554 | 1552,0 1555 | 1553,0 1556 | 1554,0 1557 | 1555,0 1558 | 1556,0 1559 | 1557,0 1560 | 1558,0 1561 | 1559,0 1562 | 1560,0 1563 | 1561,0 1564 | 1562,0 1565 | 1563,0 1566 | 1564,0 1567 | 1565,0 1568 | 1566,0 1569 | 1567,0 1570 | 1568,0 1571 | 1569,0 1572 | 1570,0 1573 | 1571,0 1574 | 1572,0 1575 | 1573,0 1576 | 1574,0 1577 | 1575,0 1578 | 1576,0 1579 | 1577,0 1580 | 1578,0 1581 | 1579,0 1582 | 1580,0 1583 | 1581,0 1584 | 1582,0 1585 | 1583,0 1586 | 1584,0 1587 | 1585,1 1588 | 1586,0 1589 | 1587,0 1590 | 1588,0 1591 | 1589,0 1592 | 1590,0 1593 | 1591,0 1594 | 1592,0 1595 | 1593,1 1596 | 1594,0 1597 | 1595,0 1598 | 1596,0 1599 | 1597,0 1600 | 1598,0 1601 | 1599,0 1602 | 1600,0 1603 | 1601,1 1604 | 1602,0 1605 | 1603,0 1606 | 1604,0 1607 | 1605,0 1608 | 1606,0 1609 | 1607,0 1610 | 1608,0 1611 | 1609,0 1612 | 1610,0 1613 | 1611,0 1614 | 1612,0 1615 | 1613,0 1616 | 1614,1 1617 | 1615,0 1618 | 1616,0 1619 | 1617,0 1620 | 1618,0 1621 | 1619,1 1622 | 1620,0 1623 | 1621,0 1624 | 1622,0 1625 | 1623,0 1626 | 1624,0 1627 | 1625,0 1628 | 1626,0 1629 | 1627,0 1630 | 1628,0 1631 | 1629,0 1632 | 1630,0 1633 | 1631,0 1634 | 1632,0 1635 | 1633,0 1636 | 1634,0 1637 | 1635,1 1638 | 1636,0 1639 | 1637,0 1640 | 1638,1 1641 | 1639,0 1642 | 1640,0 1643 | 1641,0 1644 | 1642,0 1645 | 1643,0 1646 | 1644,0 1647 | 1645,0 1648 | 1646,1 1649 | 1647,0 1650 | 1648,0 1651 | 1649,0 1652 | 1650,0 1653 | 1651,1 1654 | 1652,0 1655 | 1653,1 1656 | 1654,0 1657 | 1655,0 1658 | 1656,0 1659 | 1657,0 1660 | 1658,0 1661 | 1659,0 1662 | 1660,0 1663 | 1661,0 1664 | 1662,1 1665 | 1663,0 1666 | 1664,0 1667 | 1665,0 1668 | 1666,0 1669 | 1667,0 1670 | 1668,0 1671 | 1669,0 1672 | 1670,0 1673 | 1671,0 1674 | 1672,0 1675 | 1673,0 1676 | 1674,1 1677 | 1675,0 1678 | 1676,0 1679 | 1677,0 1680 | 1678,0 1681 | 1679,1 1682 | 1680,0 1683 | 1681,0 1684 | 1682,0 1685 | 1683,0 1686 | 1684,0 1687 | 1685,0 1688 | 1686,0 1689 | 1687,0 1690 | 1688,0 1691 | 1689,0 1692 | 1690,0 1693 | 1691,1 1694 | 1692,1 1695 | 1693,0 1696 | 1694,1 1697 | 1695,0 1698 | 1696,0 1699 | 1697,0 1700 | 1698,0 1701 | 1699,0 1702 | 1700,0 1703 | 1701,1 1704 | 1702,1 1705 | 1703,0 1706 | 1704,1 1707 | 1705,0 1708 | 1706,0 1709 | 1707,1 1710 | 1708,0 1711 | 1709,0 1712 | 1710,0 1713 | 1711,0 1714 | 1712,0 1715 | 1713,1 1716 | 1714,0 1717 | 1715,0 1718 | 1716,0 1719 | 1717,0 1720 | 1718,1 1721 | 1719,0 1722 | 1720,0 1723 | 1721,0 1724 | 1722,0 1725 | 1723,0 1726 | 1724,0 1727 | 1725,0 1728 | 1726,0 1729 | 1727,0 1730 | 1728,0 1731 | 1729,0 1732 | 1730,0 1733 | 1731,1 1734 | 1732,0 1735 | 1733,0 1736 | 1734,0 1737 | 1735,0 1738 | 1736,1 1739 | 1737,0 1740 | 1738,0 1741 | 1739,1 1742 | 1740,0 1743 | 1741,0 1744 | 1742,0 1745 | 1743,0 1746 | 1744,0 1747 | 1745,0 1748 | 1746,1 1749 | 1747,0 1750 | 1748,0 1751 | 1749,0 1752 | 1750,1 1753 | 1751,0 1754 | 1752,1 1755 | 1753,0 1756 | 1754,1 1757 | 1755,0 1758 | 1756,0 1759 | 1757,0 1760 | 1758,0 1761 | 1759,0 1762 | 1760,0 1763 | 1761,0 1764 | 1762,0 1765 | 1763,0 1766 | 1764,1 1767 | 1765,1 1768 | 1766,0 1769 | 1767,0 1770 | 1768,1 1771 | 1769,0 1772 | 1770,0 1773 | 1771,0 1774 | 1772,0 1775 | 1773,0 1776 | 1774,0 1777 | 1775,0 1778 | 1776,0 1779 | 1777,1 1780 | 1778,0 1781 | 1779,0 1782 | 1780,0 1783 | 1781,0 1784 | 1782,0 1785 | 1783,0 1786 | 1784,1 1787 | 1785,0 1788 | 1786,0 1789 | 1787,0 1790 | 1788,0 1791 | 1789,0 1792 | 1790,0 1793 | 1791,0 1794 | 1792,0 1795 | 1793,0 1796 | 1794,1 1797 | 1795,0 1798 | 1796,0 1799 | 1797,0 1800 | 1798,0 1801 | 1799,0 1802 | 1800,0 1803 | 1801,0 1804 | 1802,0 1805 | 1803,0 1806 | 1804,1 1807 | 1805,0 1808 | 1806,0 1809 | 1807,0 1810 | 1808,0 1811 | 1809,0 1812 | 1810,0 1813 | 1811,0 1814 | 1812,0 1815 | 1813,0 1816 | 1814,0 1817 | 1815,0 1818 | 1816,0 1819 | 1817,0 1820 | 1818,0 1821 | 1819,0 1822 | 1820,0 1823 | 1821,0 1824 | 1822,0 1825 | 1823,0 1826 | 1824,0 1827 | 1825,0 1828 | 1826,0 1829 | 1827,0 1830 | 1828,0 1831 | 1829,0 1832 | 1830,0 1833 | 1831,0 1834 | 1832,0 1835 | 1833,0 1836 | 1834,0 1837 | 1835,0 1838 | 1836,0 1839 | 1837,1 1840 | 1838,0 1841 | 1839,0 1842 | 1840,0 1843 | 1841,0 1844 | 1842,1 1845 | 1843,0 1846 | 1844,1 1847 | 1845,1 1848 | 1846,0 1849 | 1847,0 1850 | 1848,0 1851 | 1849,1 1852 | 1850,1 1853 | 1851,1 1854 | 1852,0 1855 | 1853,0 1856 | 1854,0 1857 | 1855,0 1858 | 1856,0 1859 | 1857,1 1860 | 1858,0 1861 | 1859,0 1862 | 1860,0 1863 | 1861,1 1864 | 1862,1 1865 | 1863,0 1866 | 1864,0 1867 | 1865,1 1868 | 1866,1 1869 | 1867,0 1870 | 1868,0 1871 | 1869,1 1872 | 1870,0 1873 | 1871,0 1874 | 1872,0 1875 | 1873,0 1876 | 1874,0 1877 | 1875,0 1878 | 1876,0 1879 | 1877,0 1880 | 1878,1 1881 | 1879,0 1882 | 1880,1 1883 | 1881,1 1884 | 1882,0 1885 | 1883,0 1886 | 1884,0 1887 | 1885,0 1888 | 1886,0 1889 | 1887,1 1890 | 1888,0 1891 | 1889,1 1892 | 1890,0 1893 | 1891,0 1894 | 1892,1 1895 | 1893,1 1896 | 1894,0 1897 | 1895,0 1898 | 1896,0 1899 | 1897,0 1900 | 1898,1 1901 | 1899,0 1902 | 1900,0 1903 | 1901,0 1904 | 1902,0 1905 | 1903,1 1906 | 1904,1 1907 | 1905,0 1908 | 1906,0 1909 | 1907,0 1910 | 1908,0 1911 | 1909,0 1912 | 1910,0 1913 | 1911,0 1914 | 1912,1 1915 | 1913,0 1916 | 1914,0 1917 | 1915,0 1918 | 1916,0 1919 | 1917,0 1920 | 1918,0 1921 | 1919,1 1922 | 1920,0 1923 | 1921,0 1924 | 1922,0 1925 | 1923,0 1926 | 1924,0 1927 | 1925,0 1928 | 1926,0 1929 | 1927,0 1930 | 1928,0 1931 | 1929,0 1932 | 1930,0 1933 | 1931,0 1934 | 1932,0 1935 | 1933,1 1936 | 1934,1 1937 | 1935,1 1938 | 1936,0 1939 | 1937,0 1940 | 1938,0 1941 | 1939,1 1942 | 1940,0 1943 | 1941,0 1944 | 1942,0 1945 | 1943,0 1946 | 1944,0 1947 | 1945,0 1948 | 1946,0 1949 | 1947,0 1950 | 1948,0 1951 | 1949,0 1952 | 1950,1 1953 | 1951,0 1954 | 1952,0 1955 | 1953,0 1956 | 1954,1 1957 | 1955,0 1958 | 1956,0 1959 | 1957,0 1960 | 1958,0 1961 | 1959,0 1962 | 1960,0 1963 | 1961,0 1964 | 1962,0 1965 | 1963,0 1966 | 1964,0 1967 | 1965,1 1968 | 1966,0 1969 | 1967,0 1970 | 1968,0 1971 | 1969,0 1972 | 1970,0 1973 | 1971,0 1974 | 1972,0 1975 | 1973,0 1976 | 1974,1 1977 | 1975,0 1978 | 1976,0 1979 | 1977,1 1980 | 1978,1 1981 | 1979,0 1982 | 1980,0 1983 | 1981,0 1984 | 1982,0 1985 | 1983,0 1986 | 1984,1 1987 | 1985,0 1988 | 1986,0 1989 | 1987,0 1990 | 1988,0 1991 | 1989,0 1992 | 1990,0 1993 | 1991,0 1994 | 1992,0 1995 | 1993,0 1996 | 1994,0 1997 | 1995,0 1998 | 1996,0 1999 | 1997,0 2000 | 1998,0 2001 | 1999,0 2002 | 2000,0 2003 | 2001,1 2004 | 2002,0 2005 | 2003,0 2006 | 2004,0 2007 | 2005,0 2008 | 2006,0 2009 | 2007,0 2010 | 2008,0 2011 | 2009,0 2012 | 2010,0 2013 | 2011,0 2014 | 2012,0 2015 | 2013,0 2016 | 2014,0 2017 | 2015,0 2018 | 2016,0 2019 | 2017,0 2020 | 2018,0 2021 | 2019,0 2022 | 2020,0 2023 | 2021,0 2024 | 2022,0 2025 | 2023,0 2026 | 2024,0 2027 | 2025,0 2028 | 2026,0 2029 | 2027,0 2030 | 2028,1 2031 | 2029,1 2032 | 2030,0 2033 | 2031,0 2034 | 2032,0 2035 | 2033,1 2036 | 2034,0 2037 | 2035,0 2038 | 2036,0 2039 | 2037,0 2040 | 2038,1 2041 | 2039,0 2042 | 2040,0 2043 | 2041,0 2044 | 2042,0 2045 | 2043,0 2046 | 2044,0 2047 | 2045,0 2048 | 2046,0 2049 | 2047,0 2050 | 2048,0 2051 | 2049,0 2052 | 2050,0 2053 | 2051,0 2054 | 2052,0 2055 | 2053,0 2056 | 2054,0 2057 | 2055,0 2058 | 2056,0 2059 | 2057,0 2060 | 2058,0 2061 | 2059,1 2062 | 2060,0 2063 | 2061,0 2064 | 2062,0 2065 | 2063,0 2066 | 2064,0 2067 | 2065,0 2068 | 2066,0 2069 | 2067,0 2070 | 2068,0 2071 | 2069,1 2072 | 2070,0 2073 | 2071,0 2074 | 2072,0 2075 | 2073,0 2076 | 2074,0 2077 | 2075,0 2078 | 2076,1 2079 | 2077,0 2080 | 2078,0 2081 | 2079,0 2082 | 2080,0 2083 | 2081,0 2084 | 2082,0 2085 | 2083,0 2086 | 2084,0 2087 | 2085,0 2088 | 2086,0 2089 | 2087,0 2090 | 2088,0 2091 | 2089,0 2092 | 2090,0 2093 | 2091,0 2094 | 2092,0 2095 | 2093,0 2096 | 2094,0 2097 | 2095,0 2098 | 2096,0 2099 | 2097,0 2100 | 2098,0 2101 | 2099,1 2102 | 2100,0 2103 | 2101,0 2104 | 2102,0 2105 | 2103,1 2106 | 2104,0 2107 | 2105,0 2108 | 2106,1 2109 | 2107,1 2110 | 2108,0 2111 | 2109,0 2112 | 2110,0 2113 | 2111,0 2114 | 2112,1 2115 | 2113,1 2116 | 2114,0 2117 | 2115,1 2118 | 2116,0 2119 | 2117,0 2120 | 2118,1 2121 | 2119,1 2122 | 2120,0 2123 | 2121,0 2124 | 2122,0 2125 | 2123,0 2126 | 2124,0 2127 | 2125,0 2128 | 2126,0 2129 | 2127,0 2130 | 2128,0 2131 | 2129,0 2132 | 2130,0 2133 | 2131,0 2134 | 2132,0 2135 | 2133,0 2136 | 2134,0 2137 | 2135,0 2138 | 2136,0 2139 | 2137,0 2140 | 2138,0 2141 | 2139,1 2142 | 2140,0 2143 | 2141,0 2144 | 2142,1 2145 | 2143,0 2146 | 2144,0 2147 | 2145,0 2148 | 2146,0 2149 | 2147,1 2150 | 2148,0 2151 | 2149,0 2152 | 2150,1 2153 | 2151,0 2154 | 2152,0 2155 | 2153,0 2156 | 2154,0 2157 | 2155,1 2158 | 2156,0 2159 | 2157,0 2160 | 2158,1 2161 | 2159,0 2162 | 2160,1 2163 | 2161,0 2164 | 2162,0 2165 | 2163,0 2166 | 2164,1 2167 | 2165,0 2168 | 2166,0 2169 | 2167,0 2170 | 2168,0 2171 | 2169,0 2172 | 2170,0 2173 | 2171,0 2174 | 2172,0 2175 | 2173,1 2176 | 2174,0 2177 | 2175,0 2178 | 2176,0 2179 | 2177,0 2180 | 2178,0 2181 | 2179,0 2182 | 2180,0 2183 | 2181,0 2184 | 2182,0 2185 | 2183,0 2186 | 2184,0 2187 | 2185,0 2188 | 2186,1 2189 | 2187,1 2190 | 2188,0 2191 | 2189,0 2192 | 2190,0 2193 | 2191,0 2194 | 2192,0 2195 | 2193,0 2196 | 2194,0 2197 | 2195,0 2198 | 2196,0 2199 | 2197,0 2200 | 2198,0 2201 | 2199,0 2202 | 2200,0 2203 | 2201,0 2204 | 2202,0 2205 | 2203,1 2206 | 2204,0 2207 | 2205,0 2208 | 2206,0 2209 | 2207,0 2210 | 2208,0 2211 | 2209,0 2212 | 2210,1 2213 | 2211,0 2214 | 2212,0 2215 | 2213,1 2216 | 2214,0 2217 | 2215,1 2218 | 2216,0 2219 | 2217,0 2220 | 2218,1 2221 | 2219,0 2222 | 2220,0 2223 | 2221,0 2224 | 2222,0 2225 | 2223,0 2226 | 2224,0 2227 | 2225,0 2228 | 2226,0 2229 | 2227,0 2230 | 2228,0 2231 | 2229,0 2232 | 2230,0 2233 | 2231,0 2234 | 2232,0 2235 | 2233,0 2236 | 2234,0 2237 | 2235,0 2238 | 2236,0 2239 | 2237,1 2240 | 2238,1 2241 | 2239,0 2242 | 2240,0 2243 | 2241,0 2244 | 2242,0 2245 | 2243,0 2246 | 2244,0 2247 | 2245,0 2248 | 2246,0 2249 | 2247,0 2250 | 2248,0 2251 | 2249,0 2252 | 2250,0 2253 | 2251,0 2254 | 2252,0 2255 | 2253,0 2256 | 2254,0 2257 | 2255,0 2258 | 2256,0 2259 | 2257,0 2260 | 2258,1 2261 | 2259,0 2262 | 2260,0 2263 | 2261,0 2264 | 2262,0 2265 | 2263,0 2266 | 2264,0 2267 | 2265,0 2268 | 2266,0 2269 | 2267,1 2270 | 2268,0 2271 | 2269,0 2272 | 2270,0 2273 | 2271,0 2274 | 2272,0 2275 | 2273,0 2276 | 2274,0 2277 | 2275,0 2278 | 2276,0 2279 | 2277,0 2280 | 2278,0 2281 | 2279,0 2282 | 2280,0 2283 | 2281,0 2284 | 2282,0 2285 | 2283,1 2286 | 2284,0 2287 | 2285,0 2288 | 2286,0 2289 | 2287,0 2290 | 2288,0 2291 | 2289,0 2292 | 2290,1 2293 | 2291,0 2294 | 2292,0 2295 | 2293,0 2296 | 2294,0 2297 | 2295,0 2298 | 2296,0 2299 | 2297,0 2300 | 2298,0 2301 | 2299,0 2302 | 2300,0 2303 | 2301,0 2304 | 2302,0 2305 | 2303,0 2306 | 2304,0 2307 | 2305,0 2308 | 2306,0 2309 | 2307,0 2310 | 2308,0 2311 | 2309,0 2312 | 2310,0 2313 | 2311,0 2314 | 2312,0 2315 | 2313,0 2316 | 2314,0 2317 | 2315,0 2318 | 2316,0 2319 | 2317,0 2320 | 2318,0 2321 | 2319,0 2322 | 2320,0 2323 | 2321,0 2324 | 2322,0 2325 | 2323,0 2326 | 2324,1 2327 | 2325,1 2328 | 2326,0 2329 | 2327,1 2330 | 2328,0 2331 | 2329,0 2332 | 2330,0 2333 | 2331,0 2334 | 2332,0 2335 | 2333,0 2336 | 2334,0 2337 | 2335,1 2338 | 2336,0 2339 | 2337,0 2340 | 2338,0 2341 | 2339,0 2342 | 2340,0 2343 | 2341,0 2344 | 2342,0 2345 | 2343,1 2346 | 2344,0 2347 | 2345,0 2348 | 2346,0 2349 | 2347,1 2350 | 2348,0 2351 | 2349,0 2352 | 2350,0 2353 | 2351,0 2354 | 2352,0 2355 | 2353,0 2356 | 2354,1 2357 | 2355,0 2358 | 2356,1 2359 | 2357,1 2360 | 2358,0 2361 | 2359,0 2362 | 2360,0 2363 | 2361,0 2364 | 2362,0 2365 | 2363,0 2366 | 2364,0 2367 | 2365,0 2368 | 2366,0 2369 | 2367,0 2370 | 2368,0 2371 | 2369,1 2372 | 2370,0 2373 | 2371,0 2374 | 2372,0 2375 | 2373,0 2376 | 2374,0 2377 | 2375,0 2378 | 2376,1 2379 | 2377,1 2380 | 2378,0 2381 | 2379,0 2382 | 2380,1 2383 | 2381,0 2384 | 2382,0 2385 | 2383,0 2386 | 2384,0 2387 | 2385,0 2388 | 2386,1 2389 | 2387,1 2390 | 2388,1 2391 | 2389,1 2392 | 2390,0 2393 | 2391,0 2394 | 2392,0 2395 | 2393,0 2396 | 2394,0 2397 | 2395,0 2398 | 2396,0 2399 | 2397,1 2400 | 2398,0 2401 | 2399,0 2402 | 2400,0 2403 | 2401,1 2404 | 2402,1 2405 | 2403,0 2406 | 2404,0 2407 | 2405,1 2408 | 2406,0 2409 | 2407,1 2410 | 2408,0 2411 | 2409,0 2412 | 2410,0 2413 | 2411,0 2414 | 2412,1 2415 | 2413,0 2416 | 2414,0 2417 | 2415,1 2418 | 2416,0 2419 | 2417,0 2420 | 2418,0 2421 | 2419,1 2422 | 2420,1 2423 | 2421,1 2424 | 2422,0 2425 | 2423,0 2426 | 2424,0 2427 | 2425,0 2428 | 2426,0 2429 | 2427,0 2430 | 2428,1 2431 | 2429,0 2432 | 2430,0 2433 | 2431,0 2434 | 2432,1 2435 | 2433,0 2436 | 2434,0 2437 | 2435,0 2438 | 2436,0 2439 | 2437,1 2440 | 2438,0 2441 | 2439,0 2442 | 2440,0 2443 | 2441,0 2444 | 2442,0 2445 | 2443,0 2446 | 2444,0 2447 | 2445,0 2448 | 2446,0 2449 | 2447,0 2450 | 2448,0 2451 | 2449,0 2452 | 2450,0 2453 | 2451,1 2454 | 2452,0 2455 | 2453,0 2456 | 2454,0 2457 | 2455,0 2458 | 2456,0 2459 | 2457,0 2460 | 2458,0 2461 | 2459,0 2462 | 2460,0 2463 | 2461,0 2464 | 2462,0 2465 | 2463,0 2466 | 2464,0 2467 | 2465,0 2468 | 2466,0 2469 | 2467,0 2470 | 2468,1 2471 | 2469,0 2472 | 2470,0 2473 | 2471,0 2474 | 2472,1 2475 | 2473,0 2476 | 2474,0 2477 | 2475,0 2478 | 2476,0 2479 | 2477,0 2480 | 2478,0 2481 | 2479,1 2482 | 2480,0 2483 | 2481,0 2484 | 2482,0 2485 | 2483,0 2486 | 2484,0 2487 | 2485,0 2488 | 2486,0 2489 | 2487,0 2490 | 2488,0 2491 | 2489,1 2492 | 2490,0 2493 | 2491,0 2494 | 2492,0 2495 | 2493,1 2496 | 2494,0 2497 | 2495,0 2498 | 2496,0 2499 | 2497,0 2500 | 2498,0 2501 | 2499,0 2502 | 2500,0 2503 | 2501,0 2504 | 2502,0 2505 | 2503,0 2506 | 2504,0 2507 | 2505,0 2508 | 2506,0 2509 | 2507,0 2510 | 2508,0 2511 | 2509,0 2512 | 2510,0 2513 | 2511,0 2514 | 2512,0 2515 | 2513,0 2516 | 2514,0 2517 | 2515,1 2518 | 2516,0 2519 | 2517,0 2520 | 2518,0 2521 | 2519,0 2522 | 2520,0 2523 | 2521,0 2524 | 2522,0 2525 | 2523,0 2526 | 2524,0 2527 | 2525,0 2528 | 2526,1 2529 | 2527,0 2530 | 2528,0 2531 | 2529,0 2532 | 2530,0 2533 | 2531,0 2534 | 2532,0 2535 | 2533,1 2536 | 2534,0 2537 | 2535,1 2538 | 2536,1 2539 | 2537,0 2540 | 2538,0 2541 | 2539,1 2542 | 2540,0 2543 | 2541,0 2544 | 2542,1 2545 | 2543,0 2546 | 2544,0 2547 | 2545,0 2548 | 2546,0 2549 | 2547,0 2550 | 2548,0 2551 | 2549,0 2552 | 2550,0 2553 | 2551,0 2554 | 2552,0 2555 | 2553,0 2556 | 2554,0 2557 | 2555,0 2558 | 2556,0 2559 | 2557,0 2560 | 2558,0 2561 | 2559,0 2562 | 2560,0 2563 | 2561,0 2564 | 2562,0 2565 | 2563,0 2566 | 2564,0 2567 | 2565,0 2568 | 2566,0 2569 | 2567,1 2570 | 2568,0 2571 | 2569,0 2572 | 2570,0 2573 | 2571,0 2574 | 2572,1 2575 | 2573,1 2576 | 2574,0 2577 | 2575,1 2578 | 2576,0 2579 | 2577,0 2580 | 2578,0 2581 | 2579,0 2582 | 2580,0 2583 | 2581,1 2584 | 2582,0 2585 | 2583,0 2586 | 2584,0 2587 | 2585,0 2588 | 2586,0 2589 | 2587,0 2590 | 2588,0 2591 | 2589,0 2592 | 2590,0 2593 | 2591,1 2594 | 2592,0 2595 | 2593,0 2596 | 2594,1 2597 | 2595,1 2598 | 2596,0 2599 | 2597,0 2600 | 2598,0 2601 | 2599,1 2602 | 2600,0 2603 | 2601,0 2604 | 2602,1 2605 | 2603,0 2606 | 2604,0 2607 | 2605,0 2608 | 2606,1 2609 | 2607,0 2610 | 2608,0 2611 | 2609,0 2612 | 2610,0 2613 | 2611,0 2614 | 2612,0 2615 | 2613,0 2616 | 2614,1 2617 | 2615,0 2618 | 2616,0 2619 | 2617,0 2620 | 2618,0 2621 | 2619,1 2622 | 2620,0 2623 | 2621,0 2624 | 2622,0 2625 | 2623,0 2626 | 2624,1 2627 | 2625,0 2628 | 2626,0 2629 | 2627,0 2630 | 2628,0 2631 | 2629,1 2632 | 2630,0 2633 | 2631,0 2634 | 2632,0 2635 | 2633,0 2636 | 2634,0 2637 | 2635,0 2638 | 2636,0 2639 | 2637,0 2640 | 2638,0 2641 | 2639,0 2642 | 2640,0 2643 | 2641,0 2644 | 2642,0 2645 | 2643,0 2646 | 2644,0 2647 | 2645,1 2648 | 2646,0 2649 | 2647,1 2650 | 2648,0 2651 | 2649,0 2652 | 2650,0 2653 | 2651,0 2654 | 2652,0 2655 | 2653,0 2656 | 2654,0 2657 | 2655,0 2658 | 2656,0 2659 | 2657,0 2660 | 2658,0 2661 | 2659,0 2662 | 2660,1 2663 | 2661,0 2664 | 2662,1 2665 | 2663,0 2666 | 2664,1 2667 | 2665,0 2668 | 2666,1 2669 | 2667,0 2670 | 2668,0 2671 | 2669,0 2672 | 2670,0 2673 | 2671,0 2674 | 2672,1 2675 | 2673,1 2676 | 2674,0 2677 | 2675,0 2678 | 2676,0 2679 | 2677,1 2680 | 2678,0 2681 | 2679,0 2682 | 2680,0 2683 | 2681,1 2684 | 2682,0 2685 | 2683,0 2686 | 2684,0 2687 | 2685,0 2688 | 2686,0 2689 | 2687,1 2690 | 2688,0 2691 | 2689,0 2692 | 2690,0 2693 | 2691,0 2694 | 2692,0 2695 | 2693,0 2696 | 2694,1 2697 | 2695,0 2698 | 2696,1 2699 | 2697,0 2700 | 2698,0 2701 | 2699,0 2702 | 2700,1 2703 | 2701,0 2704 | 2702,0 2705 | 2703,0 2706 | 2704,0 2707 | 2705,0 2708 | 2706,0 2709 | 2707,0 2710 | 2708,1 2711 | 2709,0 2712 | 2710,1 2713 | 2711,0 2714 | 2712,0 2715 | 2713,0 2716 | 2714,0 2717 | 2715,0 2718 | 2716,0 2719 | 2717,0 2720 | 2718,0 2721 | 2719,0 2722 | 2720,0 2723 | 2721,0 2724 | 2722,0 2725 | 2723,0 2726 | 2724,1 2727 | 2725,0 2728 | 2726,0 2729 | 2727,0 2730 | 2728,0 2731 | 2729,0 2732 | 2730,0 2733 | 2731,1 2734 | 2732,1 2735 | 2733,0 2736 | 2734,0 2737 | 2735,1 2738 | 2736,0 2739 | 2737,0 2740 | 2738,0 2741 | 2739,0 2742 | 2740,0 2743 | 2741,0 2744 | 2742,0 2745 | 2743,0 2746 | 2744,0 2747 | 2745,1 2748 | 2746,0 2749 | 2747,1 2750 | 2748,0 2751 | 2749,0 2752 | 2750,0 2753 | 2751,0 2754 | 2752,0 2755 | 2753,0 2756 | 2754,0 2757 | 2755,0 2758 | 2756,0 2759 | 2757,0 2760 | 2758,0 2761 | 2759,0 2762 | 2760,1 2763 | 2761,0 2764 | 2762,0 2765 | 2763,0 2766 | 2764,0 2767 | 2765,0 2768 | 2766,0 2769 | 2767,0 2770 | 2768,0 2771 | 2769,0 2772 | 2770,0 2773 | 2771,0 2774 | 2772,1 2775 | 2773,1 2776 | 2774,1 2777 | 2775,0 2778 | 2776,0 2779 | 2777,0 2780 | 2778,0 2781 | 2779,0 2782 | 2780,0 2783 | 2781,0 2784 | 2782,0 2785 | 2783,0 2786 | 2784,1 2787 | 2785,1 2788 | 2786,1 2789 | 2787,0 2790 | 2788,0 2791 | 2789,0 2792 | 2790,0 2793 | 2791,0 2794 | 2792,0 2795 | 2793,0 2796 | 2794,1 2797 | 2795,0 2798 | 2796,0 2799 | 2797,0 2800 | 2798,0 2801 | 2799,0 2802 | 2800,1 2803 | 2801,0 2804 | 2802,0 2805 | 2803,0 2806 | 2804,0 2807 | 2805,0 2808 | 2806,0 2809 | 2807,0 2810 | 2808,0 2811 | 2809,0 2812 | 2810,0 2813 | 2811,0 2814 | 2812,0 2815 | 2813,0 2816 | 2814,0 2817 | 2815,0 2818 | 2816,1 2819 | 2817,0 2820 | 2818,0 2821 | 2819,1 2822 | 2820,0 2823 | 2821,0 2824 | 2822,0 2825 | 2823,0 2826 | 2824,1 2827 | 2825,0 2828 | 2826,0 2829 | 2827,1 2830 | 2828,1 2831 | 2829,0 2832 | 2830,0 2833 | 2831,0 2834 | 2832,0 2835 | 2833,0 2836 | 2834,0 2837 | 2835,0 2838 | 2836,0 2839 | 2837,0 2840 | 2838,0 2841 | 2839,1 2842 | 2840,0 2843 | 2841,0 2844 | 2842,0 2845 | 2843,0 2846 | 2844,0 2847 | 2845,0 2848 | 2846,0 2849 | 2847,0 2850 | 2848,0 2851 | 2849,0 2852 | 2850,0 2853 | 2851,0 2854 | 2852,0 2855 | 2853,0 2856 | 2854,0 2857 | 2855,0 2858 | 2856,0 2859 | 2857,0 2860 | 2858,0 2861 | 2859,0 2862 | 2860,0 2863 | 2861,0 2864 | 2862,0 2865 | 2863,0 2866 | 2864,0 2867 | 2865,1 2868 | 2866,0 2869 | 2867,0 2870 | 2868,1 2871 | 2869,0 2872 | 2870,0 2873 | 2871,0 2874 | 2872,0 2875 | 2873,0 2876 | 2874,1 2877 | 2875,0 2878 | 2876,0 2879 | 2877,0 2880 | 2878,0 2881 | 2879,0 2882 | 2880,0 2883 | 2881,0 2884 | 2882,1 2885 | 2883,0 2886 | 2884,1 2887 | 2885,0 2888 | 2886,0 2889 | 2887,0 2890 | 2888,0 2891 | 2889,1 2892 | 2890,0 2893 | 2891,0 2894 | 2892,0 2895 | 2893,0 2896 | 2894,0 2897 | 2895,0 2898 | 2896,0 2899 | 2897,0 2900 | 2898,0 2901 | 2899,0 2902 | 2900,1 2903 | 2901,1 2904 | 2902,0 2905 | 2903,0 2906 | 2904,0 2907 | 2905,0 2908 | 2906,0 2909 | 2907,0 2910 | 2908,1 2911 | 2909,0 2912 | 2910,0 2913 | 2911,0 2914 | 2912,0 2915 | 2913,0 2916 | 2914,0 2917 | 2915,0 2918 | 2916,0 2919 | 2917,0 2920 | 2918,0 2921 | 2919,0 2922 | 2920,0 2923 | 2921,0 2924 | 2922,0 2925 | 2923,0 2926 | 2924,1 2927 | 2925,1 2928 | 2926,1 2929 | 2927,0 2930 | 2928,0 2931 | 2929,0 2932 | 2930,0 2933 | 2931,0 2934 | 2932,0 2935 | 2933,0 2936 | 2934,1 2937 | 2935,0 2938 | 2936,1 2939 | 2937,0 2940 | 2938,0 2941 | 2939,0 2942 | 2940,0 2943 | 2941,0 2944 | 2942,1 2945 | 2943,0 2946 | 2944,0 2947 | 2945,0 2948 | 2946,0 2949 | 2947,1 2950 | 2948,0 2951 | 2949,0 2952 | 2950,1 2953 | 2951,0 2954 | 2952,1 2955 | 2953,0 2956 | 2954,0 2957 | 2955,0 2958 | 2956,0 2959 | 2957,0 2960 | 2958,1 2961 | 2959,0 2962 | 2960,1 2963 | 2961,1 2964 | 2962,0 2965 | 2963,0 2966 | 2964,1 2967 | 2965,0 2968 | 2966,0 2969 | 2967,0 2970 | 2968,1 2971 | 2969,0 2972 | 2970,0 2973 | 2971,1 2974 | 2972,1 2975 | 2973,0 2976 | 2974,0 2977 | 2975,0 2978 | 2976,0 2979 | 2977,0 2980 | 2978,0 2981 | 2979,1 2982 | 2980,1 2983 | 2981,0 2984 | 2982,0 2985 | 2983,0 2986 | 2984,0 2987 | 2985,0 2988 | 2986,0 2989 | 2987,1 2990 | 2988,0 2991 | 2989,1 2992 | 2990,0 2993 | 2991,0 2994 | 2992,0 2995 | 2993,0 2996 | 2994,1 2997 | 2995,0 2998 | 2996,0 2999 | 2997,0 3000 | 2998,0 3001 | 2999,0 3002 | 3000,0 3003 | 3001,0 3004 | 3002,1 3005 | 3003,0 3006 | 3004,0 3007 | 3005,0 3008 | 3006,0 3009 | 3007,0 3010 | 3008,0 3011 | 3009,0 3012 | 3010,0 3013 | 3011,0 3014 | 3012,0 3015 | 3013,0 3016 | 3014,0 3017 | 3015,0 3018 | 3016,0 3019 | 3017,0 3020 | 3018,0 3021 | 3019,1 3022 | 3020,0 3023 | 3021,0 3024 | 3022,0 3025 | 3023,1 3026 | 3024,0 3027 | 3025,0 3028 | 3026,0 3029 | 3027,0 3030 | 3028,0 3031 | 3029,0 3032 | 3030,0 3033 | 3031,0 3034 | 3032,0 3035 | 3033,0 3036 | 3034,0 3037 | 3035,1 3038 | 3036,0 3039 | 3037,0 3040 | 3038,0 3041 | 3039,0 3042 | 3040,0 3043 | 3041,0 3044 | 3042,0 3045 | 3043,0 3046 | 3044,0 3047 | 3045,1 3048 | 3046,0 3049 | 3047,0 3050 | 3048,0 3051 | 3049,0 3052 | 3050,1 3053 | 3051,0 3054 | 3052,0 3055 | 3053,0 3056 | 3054,0 3057 | 3055,0 3058 | 3056,0 3059 | 3057,0 3060 | 3058,0 3061 | 3059,0 3062 | 3060,0 3063 | 3061,0 3064 | 3062,0 3065 | 3063,0 3066 | 3064,1 3067 | 3065,0 3068 | 3066,0 3069 | 3067,0 3070 | 3068,0 3071 | 3069,0 3072 | 3070,1 3073 | 3071,0 3074 | 3072,1 3075 | 3073,0 3076 | 3074,0 3077 | 3075,0 3078 | 3076,0 3079 | 3077,0 3080 | 3078,0 3081 | 3079,1 3082 | 3080,0 3083 | 3081,0 3084 | 3082,0 3085 | 3083,0 3086 | 3084,0 3087 | 3085,0 3088 | 3086,0 3089 | 3087,0 3090 | 3088,0 3091 | 3089,0 3092 | 3090,0 3093 | 3091,0 3094 | 3092,0 3095 | 3093,1 3096 | 3094,0 3097 | 3095,0 3098 | 3096,0 3099 | 3097,0 3100 | 3098,0 3101 | 3099,0 3102 | 3100,0 3103 | 3101,0 3104 | 3102,0 3105 | 3103,0 3106 | 3104,0 3107 | 3105,0 3108 | 3106,0 3109 | 3107,0 3110 | 3108,0 3111 | 3109,0 3112 | 3110,0 3113 | 3111,0 3114 | 3112,1 3115 | 3113,1 3116 | 3114,0 3117 | 3115,0 3118 | 3116,0 3119 | 3117,0 3120 | 3118,0 3121 | 3119,0 3122 | 3120,0 3123 | 3121,0 3124 | 3122,0 3125 | 3123,0 3126 | 3124,0 3127 | 3125,1 3128 | 3126,0 3129 | 3127,1 3130 | 3128,0 3131 | 3129,0 3132 | 3130,0 3133 | 3131,0 3134 | 3132,1 3135 | 3133,0 3136 | 3134,0 3137 | 3135,0 3138 | 3136,0 3139 | 3137,0 3140 | 3138,0 3141 | 3139,0 3142 | 3140,0 3143 | 3141,0 3144 | 3142,0 3145 | 3143,0 3146 | 3144,1 3147 | 3145,0 3148 | 3146,0 3149 | 3147,0 3150 | 3148,1 3151 | 3149,0 3152 | 3150,0 3153 | 3151,1 3154 | 3152,0 3155 | 3153,0 3156 | 3154,0 3157 | 3155,0 3158 | 3156,0 3159 | 3157,1 3160 | 3158,0 3161 | 3159,0 3162 | 3160,0 3163 | 3161,0 3164 | 3162,0 3165 | 3163,0 3166 | 3164,0 3167 | 3165,0 3168 | 3166,1 3169 | 3167,0 3170 | 3168,1 3171 | 3169,1 3172 | 3170,0 3173 | 3171,0 3174 | 3172,0 3175 | 3173,0 3176 | 3174,0 3177 | 3175,0 3178 | 3176,0 3179 | 3177,0 3180 | 3178,0 3181 | 3179,0 3182 | 3180,0 3183 | 3181,0 3184 | 3182,0 3185 | 3183,0 3186 | 3184,0 3187 | 3185,0 3188 | 3186,0 3189 | 3187,0 3190 | 3188,0 3191 | 3189,1 3192 | 3190,1 3193 | 3191,1 3194 | 3192,0 3195 | 3193,0 3196 | 3194,0 3197 | 3195,0 3198 | 3196,0 3199 | 3197,0 3200 | 3198,0 3201 | 3199,0 3202 | 3200,0 3203 | 3201,0 3204 | 3202,0 3205 | 3203,0 3206 | 3204,0 3207 | 3205,1 3208 | 3206,0 3209 | 3207,0 3210 | 3208,0 3211 | 3209,1 3212 | 3210,0 3213 | 3211,0 3214 | 3212,0 3215 | 3213,0 3216 | 3214,0 3217 | 3215,0 3218 | 3216,0 3219 | 3217,0 3220 | 3218,0 3221 | 3219,0 3222 | 3220,0 3223 | 3221,0 3224 | 3222,0 3225 | 3223,0 3226 | 3224,1 3227 | 3225,0 3228 | 3226,1 3229 | 3227,0 3230 | 3228,0 3231 | 3229,0 3232 | 3230,0 3233 | 3231,0 3234 | 3232,0 3235 | 3233,0 3236 | 3234,0 3237 | 3235,0 3238 | 3236,0 3239 | 3237,0 3240 | 3238,1 3241 | 3239,0 3242 | 3240,0 3243 | 3241,1 3244 | 3242,0 3245 | 3243,1 3246 | 3244,0 3247 | 3245,0 3248 | 3246,1 3249 | 3247,1 3250 | 3248,0 3251 | 3249,0 3252 | 3250,0 3253 | 3251,0 3254 | 3252,0 3255 | 3253,0 3256 | 3254,0 3257 | 3255,1 3258 | 3256,0 3259 | 3257,0 3260 | 3258,0 3261 | 3259,0 3262 | 3260,0 3263 | 3261,0 3264 | 3262,0 3265 | 3263,0 3266 | 3264,0 3267 | 3265,1 3268 | 3266,0 3269 | 3267,0 3270 | 3268,1 3271 | 3269,0 3272 | 3270,0 3273 | 3271,0 3274 | 3272,1 3275 | 3273,0 3276 | 3274,0 3277 | 3275,0 3278 | 3276,0 3279 | 3277,0 3280 | 3278,0 3281 | 3279,0 3282 | 3280,1 3283 | 3281,0 3284 | 3282,0 3285 | 3283,0 3286 | 3284,0 3287 | 3285,0 3288 | 3286,0 3289 | 3287,1 3290 | 3288,0 3291 | 3289,0 3292 | 3290,0 3293 | 3291,1 3294 | 3292,0 3295 | 3293,0 3296 | 3294,0 3297 | 3295,0 3298 | 3296,0 3299 | 3297,0 3300 | 3298,0 3301 | 3299,0 3302 | 3300,0 3303 | 3301,1 3304 | 3302,0 3305 | 3303,0 3306 | 3304,1 3307 | 3305,0 3308 | 3306,0 3309 | 3307,0 3310 | 3308,0 3311 | 3309,0 3312 | 3310,0 3313 | 3311,0 3314 | 3312,0 3315 | 3313,0 3316 | 3314,0 3317 | 3315,0 3318 | 3316,0 3319 | 3317,0 3320 | 3318,0 3321 | 3319,0 3322 | 3320,1 3323 | 3321,0 3324 | 3322,1 3325 | 3323,1 3326 | 3324,0 3327 | 3325,0 3328 | 3326,0 3329 | 3327,0 3330 | 3328,0 3331 | 3329,0 3332 | 3330,0 3333 | 3331,0 3334 | 3332,0 3335 | -------------------------------------------------------------------------------- /environment.yml: -------------------------------------------------------------------------------- 1 | name: python-ds 2 | channels: 3 | - pytorch 4 | - conda-forge 5 | - defaults 6 | dependencies: 7 | - aiohttp=3.9.3=py312he70551f_1 8 | - aiosignal=1.3.1=pyhd8ed1ab_0 9 | - alembic=1.13.1=pyhd8ed1ab_1 10 | - altair=5.3.0=pyhd8ed1ab_0 11 | - aniso8601=9.0.1=pyhd8ed1ab_0 12 | - anyio=4.3.0=pyhd8ed1ab_0 13 | - aom=3.7.1=h63175ca_0 14 | - argon2-cffi=23.1.0=pyhd8ed1ab_0 15 | - argon2-cffi-bindings=21.2.0=py312he70551f_4 16 | - arrow=1.3.0=pyhd8ed1ab_0 17 | - asttokens=2.4.1=pyhd8ed1ab_0 18 | - async-lru=2.0.4=pyhd8ed1ab_0 19 | - attrs=23.2.0=pyh71513ae_0 20 | - audioread=3.0.1=py312h2e8e312_1 21 | - aws-c-auth=0.7.16=h7613915_8 22 | - aws-c-cal=0.6.10=hf6fcf4e_2 23 | - aws-c-common=0.9.14=hcfcfb64_0 24 | - aws-c-compression=0.2.18=hf6fcf4e_2 25 | - aws-c-event-stream=0.4.2=h3df98b0_6 26 | - aws-c-http=0.8.1=h4e3df0f_7 27 | - aws-c-io=0.14.6=hf0b8b6f_2 28 | - aws-c-mqtt=0.10.3=h96fac68_2 29 | - aws-c-s3=0.5.5=h08df315_0 30 | - aws-c-sdkutils=0.1.15=hf6fcf4e_2 31 | - aws-checksums=0.1.18=hf6fcf4e_2 32 | - aws-crt-cpp=0.26.4=h944602d_3 33 | - aws-sdk-cpp=1.11.267=hfaf0dd0_4 34 | - babel=2.14.0=pyhd8ed1ab_0 35 | - bcrypt=4.1.2=py312hfccd98a_0 36 | - beautifulsoup4=4.12.3=pyha770c72_0 37 | - blas=1.0=mkl 38 | - bleach=6.1.0=pyhd8ed1ab_0 39 | - blinker=1.7.0=pyhd8ed1ab_0 40 | - blosc=1.21.5=hdccc3a2_0 41 | - branca=0.7.1=pyhd8ed1ab_0 42 | - brotli=1.1.0=hcfcfb64_1 43 | - brotli-bin=1.1.0=hcfcfb64_1 44 | - brotli-python=1.1.0=py312h53d5487_1 45 | - bzip2=1.0.8=hcfcfb64_5 46 | - c-ares=1.28.1=hcfcfb64_0 47 | - c-blosc2=2.14.3=h183a6f4_0 48 | - ca-certificates=2024.3.11=haa95532_0 49 | - cached-property=1.5.2=hd8ed1ab_1 50 | - cached_property=1.5.2=pyha770c72_1 51 | - cachetools=5.3.3=pyhd8ed1ab_0 52 | - cartopy=0.22.0=py312h2ab9e98_1 53 | - certifi=2024.2.2=py312haa95532_0 54 | - cffi=1.16.0=py312he70551f_0 55 | - charls=2.4.2=h1537add_0 56 | - charset-normalizer=3.3.2=pyhd8ed1ab_0 57 | - click=8.1.7=win_pyh7428d3b_0 58 | - cloudpickle=3.0.0=pyhd8ed1ab_0 59 | - colorama=0.4.6=pyhd8ed1ab_0 60 | - comm=0.2.2=pyhd8ed1ab_0 61 | - contourpy=1.2.1=py312h0d7def4_0 62 | - cpuonly=2.0=0 63 | - cryptography=42.0.5=py312h1f4a190_0 64 | - cycler=0.12.1=pyhd8ed1ab_0 65 | - dash=2.16.1=pyhd8ed1ab_0 66 | - dash-bootstrap-components=1.5.0=pyhd8ed1ab_0 67 | - datasets=2.18.0=pyhd8ed1ab_0 68 | - dav1d=1.2.1=hcfcfb64_0 69 | - debugpy=1.8.1=py312h53d5487_0 70 | - decorator=5.1.1=pyhd8ed1ab_0 71 | - defusedxml=0.7.1=pyhd8ed1ab_0 72 | - dill=0.3.8=pyhd8ed1ab_0 73 | - docker-py=7.0.0=pyhd8ed1ab_0 74 | - entrypoints=0.4=pyhd8ed1ab_0 75 | - et_xmlfile=1.1.0=pyhd8ed1ab_0 76 | - exceptiongroup=1.2.0=pyhd8ed1ab_2 77 | - executing=2.0.1=pyhd8ed1ab_0 78 | - filelock=3.13.4=pyhd8ed1ab_0 79 | - flask=3.0.3=pyhd8ed1ab_0 80 | - folium=0.16.0=pyhd8ed1ab_0 81 | - fonttools=4.51.0=py312he70551f_0 82 | - fqdn=1.5.1=pyhd8ed1ab_0 83 | - freetype=2.12.1=hdaf720e_2 84 | - frozenlist=1.4.1=py312he70551f_0 85 | - fsspec=2024.2.0=pyhca7485f_0 86 | - geos=3.12.1=h1537add_0 87 | - gettext=0.22.5=h5728263_2 88 | - gettext-tools=0.22.5=h7d00a51_2 89 | - giflib=5.2.1=h64bf75a_3 90 | - gitdb=4.0.11=pyhd8ed1ab_0 91 | - gitpython=3.1.43=pyhd8ed1ab_0 92 | - glib=2.80.0=h39d0aa6_4 93 | - glib-tools=2.80.0=h0a98069_4 94 | - graphene=3.3=pyhd8ed1ab_0 95 | - graphql-core=3.2.3=pyhd8ed1ab_0 96 | - graphql-relay=3.2.0=pyhd8ed1ab_0 97 | - greenlet=3.0.3=py312h53d5487_0 98 | - gst-plugins-base=1.24.1=h001b923_1 99 | - gstreamer=1.24.1=hb4038d2_1 100 | - h11=0.14.0=pyhd8ed1ab_0 101 | - h2=4.1.0=pyhd8ed1ab_0 102 | - hpack=4.0.0=pyh9f0ad1d_0 103 | - httpcore=1.0.5=pyhd8ed1ab_0 104 | - httpx=0.27.0=pyhd8ed1ab_0 105 | - huggingface_hub=0.22.2=pyhd8ed1ab_0 106 | - hyperframe=6.0.1=pyhd8ed1ab_0 107 | - icu=73.2=h63175ca_0 108 | - idna=3.6=pyhd8ed1ab_0 109 | - imagecodecs=2024.1.1=py312hde2f776_3 110 | - imageio=2.34.0=pyh4b66e23_0 111 | - imbalanced-learn=0.12.2=pyhd8ed1ab_0 112 | - importlib-metadata=7.1.0=pyha770c72_0 113 | - importlib_metadata=7.1.0=hd8ed1ab_0 114 | - importlib_resources=6.4.0=pyhd8ed1ab_0 115 | - intel-openmp=2024.1.0=h57928b3_964 116 | - ipykernel=6.29.3=pyha63f2e9_0 117 | - ipython=8.22.2=pyh7428d3b_0 118 | - ipywidgets=8.1.2=pyhd8ed1ab_0 119 | - isoduration=20.11.0=pyhd8ed1ab_0 120 | - itsdangerous=2.1.2=pyhd8ed1ab_0 121 | - jedi=0.19.1=pyhd8ed1ab_0 122 | - jinja2=3.1.3=pyhd8ed1ab_0 123 | - joblib=1.4.0=pyhd8ed1ab_0 124 | - json5=0.9.24=pyhd8ed1ab_0 125 | - jsonpointer=2.4=py312h2e8e312_3 126 | - jsonschema=4.21.1=pyhd8ed1ab_0 127 | - jsonschema-specifications=2023.12.1=pyhd8ed1ab_0 128 | - jsonschema-with-format-nongpl=4.21.1=pyhd8ed1ab_0 129 | - jupyter=1.0.0=pyhd8ed1ab_10 130 | - jupyter-lsp=2.2.4=pyhd8ed1ab_0 131 | - jupyter_client=8.6.1=pyhd8ed1ab_0 132 | - jupyter_console=6.6.3=pyhd8ed1ab_0 133 | - jupyter_core=5.7.2=py312h2e8e312_0 134 | - jupyter_events=0.10.0=pyhd8ed1ab_0 135 | - jupyter_server=2.13.0=pyhd8ed1ab_0 136 | - jupyter_server_terminals=0.5.3=pyhd8ed1ab_0 137 | - jupyterlab=4.1.6=pyhd8ed1ab_0 138 | - jupyterlab_pygments=0.3.0=pyhd8ed1ab_1 139 | - jupyterlab_server=2.26.0=pyhd8ed1ab_0 140 | - jupyterlab_widgets=3.0.10=pyhd8ed1ab_0 141 | - jxrlib=1.1=hcfcfb64_3 142 | - kiwisolver=1.4.5=py312h0d7def4_1 143 | - krb5=1.21.2=heb0366b_0 144 | - lame=3.100=hcfcfb64_1003 145 | - lazy_loader=0.4=pyhd8ed1ab_0 146 | - lcms2=2.16=h67d730c_0 147 | - lerc=4.0.0=h63175ca_0 148 | - libabseil=20240116.1=cxx17_h63175ca_2 149 | - libaec=1.1.3=h63175ca_0 150 | - libarrow=15.0.2=h878f99b_1_cpu 151 | - libarrow-acero=15.0.2=h63175ca_1_cpu 152 | - libarrow-dataset=15.0.2=h63175ca_1_cpu 153 | - libarrow-flight=15.0.2=h02312f3_1_cpu 154 | - libarrow-flight-sql=15.0.2=h55b4db4_1_cpu 155 | - libarrow-gandiva=15.0.2=h3f2ff47_1_cpu 156 | - libarrow-substrait=15.0.2=h89268de_1_cpu 157 | - libasprintf=0.22.5=h5728263_2 158 | - libasprintf-devel=0.22.5=h5728263_2 159 | - libavif=1.0.1=h7a9aacb_3 160 | - libblas=3.9.0=22_win64_mkl 161 | - libbrotlicommon=1.1.0=hcfcfb64_1 162 | - libbrotlidec=1.1.0=hcfcfb64_1 163 | - libbrotlienc=1.1.0=hcfcfb64_1 164 | - libcblas=3.9.0=22_win64_mkl 165 | - libclang13=18.1.3=default_hf64faad_0 166 | - libcrc32c=1.1.2=h0e60522_0 167 | - libcurl=8.7.1=hd5e4a3a_0 168 | - libdeflate=1.20=hcfcfb64_0 169 | - libevent=2.1.12=h3671451_1 170 | - libexpat=2.6.2=h63175ca_0 171 | - libffi=3.4.2=h8ffe710_5 172 | - libflac=1.4.3=h63175ca_0 173 | - libgettextpo=0.22.5=h5728263_2 174 | - libgettextpo-devel=0.22.5=h5728263_2 175 | - libglib=2.80.0=h39d0aa6_4 176 | - libgoogle-cloud=2.22.0=h9cad5c0_1 177 | - libgoogle-cloud-storage=2.22.0=hb581fae_1 178 | - libgrpc=1.62.1=h5273850_0 179 | - libhwloc=2.9.3=default_haede6df_1009 180 | - libiconv=1.17=hcfcfb64_2 181 | - libintl=0.22.5=h5728263_2 182 | - libintl-devel=0.22.5=h5728263_2 183 | - libjpeg-turbo=3.0.0=hcfcfb64_1 184 | - liblapack=3.9.0=22_win64_mkl 185 | - libogg=1.3.4=h8ffe710_1 186 | - libopus=1.3.1=h8ffe710_1 187 | - libparquet=15.0.2=h7ec3a38_1_cpu 188 | - libpng=1.6.43=h19919ed_0 189 | - libprotobuf=4.25.3=h503648d_0 190 | - libre2-11=2023.09.01=hf8d8778_2 191 | - librosa=0.10.1=pyhd8ed1ab_0 192 | - libsndfile=1.2.2=h81429f1_1 193 | - libsodium=1.0.18=h8d14728_1 194 | - libsqlite=3.45.2=hcfcfb64_0 195 | - libssh2=1.11.0=h7dfc565_0 196 | - libthrift=0.19.0=ha2b3283_1 197 | - libtiff=4.6.0=hddb2be6_3 198 | - libutf8proc=2.8.0=h82a8f57_0 199 | - libuv=1.44.2=h2bbff1b_0 200 | - libvorbis=1.3.7=h0e60522_0 201 | - libwebp-base=1.3.2=hcfcfb64_1 202 | - libxcb=1.15=hcd874cb_0 203 | - libxml2=2.12.6=hc3477c8_1 204 | - libxslt=1.1.39=h3df6e99_0 205 | - libzlib=1.2.13=hcfcfb64_5 206 | - libzopfli=1.0.3=h0e60522_0 207 | - llvmlite=0.42.0=py312h7894644_1 208 | - lxml=5.1.0=py312hd086842_0 209 | - lz4-c=1.9.4=hcfcfb64_0 210 | - m2w64-gcc-libgfortran=5.3.0=6 211 | - m2w64-gcc-libs=5.3.0=7 212 | - m2w64-gcc-libs-core=5.3.0=7 213 | - m2w64-gmp=6.1.0=2 214 | - m2w64-libwinpthread-git=5.0.0.4634.697f757=2 215 | - mako=1.3.3=pyhd8ed1ab_0 216 | - markdown=3.6=pyhd8ed1ab_0 217 | - markdown-it-py=3.0.0=pyhd8ed1ab_0 218 | - markupsafe=2.1.5=py312he70551f_0 219 | - matplotlib=3.8.4=py312h2e8e312_0 220 | - matplotlib-base=3.8.4=py312h26ecaf7_0 221 | - matplotlib-inline=0.1.6=pyhd8ed1ab_0 222 | - mdurl=0.1.2=pyhd8ed1ab_0 223 | - mistune=3.0.2=pyhd8ed1ab_0 224 | - mkl=2024.1.0=h66d3029_692 225 | - mlflow=2.11.3=h2e8e312_0 226 | - mlflow-skinny=2.11.3=py312h2e8e312_0 227 | - mlflow-ui=2.11.3=py312h2e8e312_0 228 | - mpg123=1.32.6=h63175ca_0 229 | - mpmath=1.3.0=py312haa95532_0 230 | - msgpack-python=1.0.7=py312h0d7def4_0 231 | - msys2-conda-epoch=20160418=1 232 | - multidict=6.0.5=py312he70551f_0 233 | - multiprocess=0.70.16=py312he70551f_0 234 | - munkres=1.1.4=pyh9f0ad1d_0 235 | - nbclient=0.10.0=pyhd8ed1ab_0 236 | - nbconvert=7.16.3=hd8ed1ab_0 237 | - nbconvert-core=7.16.3=pyhd8ed1ab_0 238 | - nbconvert-pandoc=7.16.3=hd8ed1ab_0 239 | - nbformat=5.10.4=pyhd8ed1ab_0 240 | - nest-asyncio=1.6.0=pyhd8ed1ab_0 241 | - networkx=3.3=pyhd8ed1ab_1 242 | - nltk=3.8.1=pyhd8ed1ab_0 243 | - notebook=7.1.2=pyhd8ed1ab_0 244 | - notebook-shim=0.2.4=pyhd8ed1ab_0 245 | - numba=0.59.1=py312h115d327_0 246 | - numpy=1.26.4=py312h8753938_0 247 | - openjpeg=2.5.2=h3d672ee_0 248 | - openpyxl=3.1.2=py312he70551f_1 249 | - openssl=3.2.1=hcfcfb64_1 250 | - orc=2.0.0=heb0c069_0 251 | - overrides=7.7.0=pyhd8ed1ab_0 252 | - packaging=23.2=pyhd8ed1ab_0 253 | - pandas=2.2.1=py312h2ab9e98_0 254 | - pandoc=3.1.13=h57928b3_0 255 | - pandocfilters=1.5.0=pyhd8ed1ab_0 256 | - paramiko=3.4.0=pyhd8ed1ab_0 257 | - parso=0.8.4=pyhd8ed1ab_0 258 | - patsy=0.5.6=pyhd8ed1ab_0 259 | - pcre2=10.43=h17e33f8_0 260 | - pickleshare=0.7.5=py_1003 261 | - pillow=10.3.0=py312h6f6a607_0 262 | - pip=24.0=pyhd8ed1ab_0 263 | - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_1 264 | - platformdirs=4.2.0=pyhd8ed1ab_0 265 | - plotly=5.19.0=pyhd8ed1ab_0 266 | - ply=3.11=pyhd8ed1ab_2 267 | - pooch=1.8.1=pyhd8ed1ab_0 268 | - proj=9.3.1=he13c7e8_0 269 | - prometheus_client=0.20.0=pyhd8ed1ab_0 270 | - prometheus_flask_exporter=0.23.0=pyhd8ed1ab_0 271 | - prompt-toolkit=3.0.42=pyha770c72_0 272 | - prompt_toolkit=3.0.42=hd8ed1ab_0 273 | - protobuf=4.25.3=py312h5594109_0 274 | - psutil=5.9.8=py312he70551f_0 275 | - pthread-stubs=0.4=hcd874cb_1001 276 | - pthreads-win32=2.9.1=hfa6e2cd_3 277 | - pure_eval=0.2.2=pyhd8ed1ab_0 278 | - pyarrow=15.0.2=py312h85e32bb_1_cpu 279 | - pyarrow-hotfix=0.6=pyhd8ed1ab_0 280 | - pycparser=2.22=pyhd8ed1ab_0 281 | - pydeck=0.8.0=pyhd8ed1ab_0 282 | - pygments=2.17.2=pyhd8ed1ab_0 283 | - pynacl=1.5.0=py312hc560f31_3 284 | - pyparsing=3.1.2=pyhd8ed1ab_0 285 | - pyproj=3.6.1=py312hc725b1e_5 286 | - pyqt=5.15.9=py312he09f080_5 287 | - pyqt5-sip=12.12.2=py312h53d5487_5 288 | - pyreadr=0.5.0=py312h56036e7_0 289 | - pyshp=2.3.1=pyhd8ed1ab_0 290 | - pysocks=1.7.1=pyh0701188_6 291 | - pysoundfile=0.12.1=pyhd8ed1ab_0 292 | - python=3.12.2=h2628c8c_0_cpython 293 | - python-dateutil=2.9.0=pyhd8ed1ab_0 294 | - python-fastjsonschema=2.19.1=pyhd8ed1ab_0 295 | - python-json-logger=2.0.7=pyhd8ed1ab_0 296 | - python-tzdata=2024.1=pyhd8ed1ab_0 297 | - python-xxhash=3.4.1=py312he70551f_0 298 | - python_abi=3.12=4_cp312 299 | - pytorch=2.2.2=py3.12_cpu_0 300 | - pytorch-mutex=1.0=cpu 301 | - pytz=2024.1=pyhd8ed1ab_0 302 | - pywavelets=1.4.1=py312ha90f08f_1 303 | - pywin32=306=py312h53d5487_2 304 | - pywin32-on-windows=0.1.0=pyh07e9846_2 305 | - pywinpty=2.0.13=py312h53d5487_0 306 | - pyyaml=6.0.1=py312he70551f_1 307 | - pyzmq=25.1.2=py312h1ac6f91_0 308 | - qt-main=5.15.8=hcef0176_21 309 | - qtconsole-base=5.5.1=pyha770c72_0 310 | - qtpy=2.4.1=pyhd8ed1ab_0 311 | - querystring_parser=1.2.4=py_0 312 | - rav1e=0.6.6=h975169c_2 313 | - re2=2023.09.01=hd3b24a8_2 314 | - referencing=0.34.0=pyhd8ed1ab_0 315 | - regex=2023.12.25=py312he70551f_0 316 | - requests=2.31.0=pyhd8ed1ab_0 317 | - retrying=1.3.3=py_2 318 | - rfc3339-validator=0.1.4=pyhd8ed1ab_0 319 | - rfc3986-validator=0.1.1=pyh9f0ad1d_0 320 | - rich=13.7.1=pyhd8ed1ab_0 321 | - rpds-py=0.18.0=py312hfccd98a_0 322 | - safetensors=0.4.2=py312hfccd98a_0 323 | - scikit-image=0.22.0=py312h2ab9e98_2 324 | - scikit-learn=1.4.1.post1=py312hcacafb1_0 325 | - scipy=1.13.0=py312h8753938_0 326 | - seaborn=0.13.2=hd8ed1ab_0 327 | - seaborn-base=0.13.2=pyhd8ed1ab_0 328 | - send2trash=1.8.3=pyh5737063_0 329 | - setuptools=69.2.0=pyhd8ed1ab_0 330 | - shapely=2.0.3=py312h7d70906_0 331 | - sip=6.7.12=py312h53d5487_0 332 | - six=1.16.0=pyh6c4a22f_0 333 | - smmap=5.0.0=pyhd8ed1ab_0 334 | - snappy=1.1.10=hfb803bf_1 335 | - sniffio=1.3.1=pyhd8ed1ab_0 336 | - soupsieve=2.5=pyhd8ed1ab_1 337 | - soxr=0.1.3=hcfcfb64_3 338 | - soxr-python=0.3.7=py312ha90f08f_0 339 | - sqlalchemy=2.0.29=py312he70551f_0 340 | - sqlite=3.45.2=hcfcfb64_0 341 | - sqlparse=0.4.4=pyhd8ed1ab_0 342 | - stack_data=0.6.2=pyhd8ed1ab_0 343 | - statsmodels=0.14.1=py312ha90f08f_0 344 | - streamlit=1.33.0=pyhd8ed1ab_1 345 | - svt-av1=1.7.0=h63175ca_0 346 | - sympy=1.12=py312haa95532_0 347 | - tbb=2021.11.0=h91493d7_1 348 | - tenacity=8.2.3=pyhd8ed1ab_0 349 | - terminado=0.18.1=pyh5737063_0 350 | - threadpoolctl=3.4.0=pyhc1e730c_0 351 | - tifffile=2024.2.12=pyhd8ed1ab_0 352 | - tinycss2=1.2.1=pyhd8ed1ab_0 353 | - tk=8.6.13=h5226925_1 354 | - tokenizers=0.15.2=py312h7ac22d7_0 355 | - toml=0.10.2=pyhd8ed1ab_0 356 | - tomli=2.0.1=pyhd8ed1ab_0 357 | - toolz=0.12.1=pyhd8ed1ab_0 358 | - tornado=6.4=py312he70551f_0 359 | - tqdm=4.66.2=pyhd8ed1ab_0 360 | - traitlets=5.14.2=pyhd8ed1ab_0 361 | - transformers=4.39.3=pyhd8ed1ab_0 362 | - types-python-dateutil=2.9.0.20240316=pyhd8ed1ab_0 363 | - typing-extensions=4.11.0=hd8ed1ab_0 364 | - typing_extensions=4.11.0=pyha770c72_0 365 | - typing_utils=0.1.0=pyhd8ed1ab_0 366 | - tzdata=2024a=h0c530f3_0 367 | - tzlocal=5.2=py312h2e8e312_0 368 | - ucrt=10.0.22621.0=h57928b3_0 369 | - uri-template=1.3.0=pyhd8ed1ab_0 370 | - urllib3=2.2.1=pyhd8ed1ab_0 371 | - validators=0.28.0=pyhd8ed1ab_0 372 | - vc=14.3=hcf57466_18 373 | - vc14_runtime=14.38.33130=h82b7239_18 374 | - vs2015_runtime=14.38.33130=hcb4865c_18 375 | - waitress=2.1.2=pyhd8ed1ab_0 376 | - watchdog=4.0.0=py312h2e8e312_0 377 | - wcwidth=0.2.13=pyhd8ed1ab_0 378 | - webcolors=1.13=pyhd8ed1ab_0 379 | - webencodings=0.5.1=pyhd8ed1ab_2 380 | - websocket-client=1.7.0=pyhd8ed1ab_0 381 | - werkzeug=3.0.2=pyhd8ed1ab_0 382 | - wheel=0.43.0=pyhd8ed1ab_1 383 | - widgetsnbextension=4.0.10=pyhd8ed1ab_0 384 | - win_inet_pton=1.1.0=pyhd8ed1ab_6 385 | - winpty=0.4.3=4 386 | - xorg-libxau=1.0.11=hcd874cb_0 387 | - xorg-libxdmcp=1.1.3=hcd874cb_0 388 | - xxhash=0.8.2=hcfcfb64_0 389 | - xyzservices=2024.4.0=pyhd8ed1ab_0 390 | - xz=5.2.6=h8d14728_0 391 | - yaml=0.2.5=h8ffe710_2 392 | - yarl=1.9.4=py312he70551f_0 393 | - zeromq=4.3.5=h63175ca_1 394 | - zfp=1.0.1=h63175ca_0 395 | - zipp=3.17.0=pyhd8ed1ab_0 396 | - zlib-ng=2.0.7=hcfcfb64_0 397 | - zstd=1.5.5=h12be248_0 398 | - pip: 399 | - absl-py==2.1.0 400 | - astunparse==1.6.3 401 | - flatbuffers==24.3.25 402 | - gast==0.5.4 403 | - google-pasta==0.2.0 404 | - grpcio==1.62.1 405 | - h5py==3.11.0 406 | - keras==3.2.1 407 | - libclang==18.1.1 408 | - ml-dtypes==0.3.2 409 | - namex==0.0.7 410 | - opt-einsum==3.3.0 411 | - optree==0.11.0 412 | - tensorboard==2.16.2 413 | - tensorboard-data-server==0.7.2 414 | - tensorflow==2.16.1 415 | - tensorflow-intel==2.16.1 416 | - termcolor==2.4.0 417 | - wrapt==1.16.0 418 | -------------------------------------------------------------------------------- /notebooks/07_01_Big_data_import.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Chapitre 7 - Passage au big data (1ère partie)\n", 8 | "\n", 9 | "**Dans le cadre de ce Notebook, nous allons parler de l'environnement Apache Hadoop. Ce notebook n'est donc pas applicable dans votre environnement \"classique\".**\n", 10 | "\n", 11 | "**Pour que le code foctionnne, il vous faut un environnement Hadoop accessible depuis votre machine.**\n", 12 | "\n", 13 | "**N'essayez pas de faire fonctionner les cellules si votre environnemnt n'est pas correctement paramétré.**\n", 14 | "\n", 15 | "## 7. 1 Est-ce qu’on change tout quand on parle de big data ?" 16 | ] 17 | }, 18 | { 19 | "cell_type": "markdown", 20 | "metadata": {}, 21 | "source": [ 22 | "Python est souvent considéré comme le langage du big data. Ceci vient du fait\n", 23 | "que la notion de big data est souvent mal définie par beaucoup d’utilisateurs. \n", 24 | "\n", 25 | "On a pu voir que Python est un langage bien adapté au traitement de la donnée et au machine learning grâce à sa simplicité, ses principes de fonctionnement et toutes les API disponibles. \n", 26 | "\n", 27 | "Dans le cadre du big data, on est exactement dans le même cas de figure qu’en deep learning. Vous ne trouverez aucun environnement big data nativement développé en Python. Ils sont majoritairement développés en Java. Cependant,\n", 28 | "Python sera très souvent un langage pour lequel il existe des API assez poussées.\n", 29 | "\n", 30 | "Les principes du langage Python restent les mêmes mais les commandes, fonctions\n", 31 | "et actions dépendront de l’API utilisée et donc du package sollicité." 32 | ] 33 | }, 34 | { 35 | "cell_type": "markdown", 36 | "metadata": {}, 37 | "source": [ 38 | "On utilisera ici Python pour récupérer des données sur un cluster Hadoop. Nous parlerons de Apache Spark dans le prochain Notebook" 39 | ] 40 | }, 41 | { 42 | "cell_type": "markdown", 43 | "metadata": {}, 44 | "source": [ 45 | "## 7.3 Récupérer des données avec Python\n", 46 | "### 7.3.1 Les approches classiques\n", 47 | "Apache Hadoop est donc un environnement big data écrit en Java donnant accès à\n", 48 | "un système de fichiers distribués appelé HDFS et à des outils permettant d’extraire des\n", 49 | "informations de ces données.\n", 50 | "\n", 51 | "Nous sommes donc dans un cas, où nos données sont stockées dans des formats\n", 52 | "dits NoSQL (Not Only SQL) et où vous désirez les récupérer pour vos analyses en\n", 53 | "Python. \n", 54 | "\n", 55 | "Si vous passez par Python, vous allez charger en mémoire les données que\n", 56 | "vous récupérez de votre infrastructure. Ainsi, si ces données sont massives, vous allez très rapidement vous trouver face à un problème de taille : la capacité de votre machine en termes de mémoire vive.\n", 57 | "\n", 58 | "Il faut donc faire en sorte de ne charger sur votre machine que les données utiles et, réfléchir à la mise en place d’infrastructures plus puissantes. Par exemple, un serveur JupyterHub extrêmement puissant qui pourra traiter des masses de données plus importantes que votre machine." 59 | ] 60 | }, 61 | { 62 | "cell_type": "markdown", 63 | "metadata": {}, 64 | "source": [ 65 | "### 7.3.2 Se connecter aux fichiers HDFS en Python – Utilisation de PyArrow\n", 66 | "Le système de fichiers HDFS est accessible en utilisant la commande hdfs depuis\n", 67 | "le terminal. Néanmoins, cet outil est codé en Java et ne possède pas nativement\n", 68 | "d’API Python.\n", 69 | "\n", 70 | "La seule solution simple adaptée à Python 3 est liée au projet Apache Arrow. Il s’agit d’un environnement visant à unifier le traitement en mémoire de données colonnes.\n", 71 | "\n", 72 | "Pour utiliser Arrow, nous allons installer son API Python qui est dans le package PyArrow. \n", 73 | "\n", 74 | "Nous le récupérons grâce à Anaconda :" 75 | ] 76 | }, 77 | { 78 | "cell_type": "code", 79 | "execution_count": null, 80 | "metadata": {}, 81 | "outputs": [], 82 | "source": [ 83 | "!conda install -c conda-forge pyarrow" 84 | ] 85 | }, 86 | { 87 | "cell_type": "markdown", 88 | "metadata": {}, 89 | "source": [ 90 | "Une fois que vous l’avez installé dans votre environnement, vous pouvez vous\n", 91 | "connecter au système de fichiers :" 92 | ] 93 | }, 94 | { 95 | "cell_type": "code", 96 | "execution_count": null, 97 | "metadata": {}, 98 | "outputs": [], 99 | "source": [ 100 | "from pyarrow import fs\n", 101 | "hdfs = fs.HadoopFileSystem(host, port, user=user,kerb_ticket=ticket_cache_path)\n", 102 | "with hdfs.open_input_file('path/to/file') as f:\n", 103 | " ___" 104 | ] 105 | }, 106 | { 107 | "cell_type": "markdown", 108 | "metadata": {}, 109 | "source": [ 110 | "Vous pouvez utiliser les commandes qui se trouvent dans l’objet de la classe\n", 111 | "*HdfsClient* que vous avez créé pour faire des actions sur votre environnement\n", 112 | "Hadoop.\n", 113 | "\n", 114 | "Ceci vous permettra de gérer de nombreux types de fichiers, notamment les fichiers Apache Parquet de votre environnement big data.\n", 115 | "\n", 116 | "Le projet Apache Arrow est en pleine expansion et, selon les responsables de\n", 117 | "la fondation Apache, il devrait traiter près de 80 % des données big data dans les prochaines années." 118 | ] 119 | }, 120 | { 121 | "cell_type": "markdown", 122 | "metadata": {}, 123 | "source": [ 124 | "Les approches présentées jusqu’ici ne sont pas utilisées de manière généralisée.\n", 125 | "\n", 126 | "L’outil de big data employé par les data scientists, c’est Apache Spark. Il permet, entre autres, de charger des fichiers en Hive, mais surtout de faire du machine learning. Nous en parlons dans le prochain Notebook." 127 | ] 128 | } 129 | ], 130 | "metadata": { 131 | "kernelspec": { 132 | "display_name": "Python 3 (ipykernel)", 133 | "language": "python", 134 | "name": "python3" 135 | }, 136 | "language_info": { 137 | "codemirror_mode": { 138 | "name": "ipython", 139 | "version": 3 140 | }, 141 | "file_extension": ".py", 142 | "mimetype": "text/x-python", 143 | "name": "python", 144 | "nbconvert_exporter": "python", 145 | "pygments_lexer": "ipython3", 146 | "version": "3.12.2" 147 | } 148 | }, 149 | "nbformat": 4, 150 | "nbformat_minor": 4 151 | } 152 | -------------------------------------------------------------------------------- /notebooks/07_02_Spark.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Chapitre 7 - Passage au big data (2ème partie)" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "**Dans le cadre de ce Notebook, nous allons parler de l'environnement Apache Spark. Ce notebook n'est donc pas applicable dans votre environnement \"classique\".**\n", 15 | "\n", 16 | "**Pour que le code foctionnne, il vous faut un environnement Spark correctement installé.**\n", 17 | "\n", 18 | "**N'essayez pas de faire fonctionner les cellules si votre environnemnt n'est pas correctement paramétré. Les cellules de code ont été passées au format RawNBConvert afin de ne pas rendre le Notebook inutilisable**" 19 | ] 20 | }, 21 | { 22 | "cell_type": "markdown", 23 | "metadata": {}, 24 | "source": [ 25 | "Apache Spark est un projet de la fondation Apache (actuellement dans sa version 3).\n", 26 | "\n", 27 | "Il a pour objectif de pallier les lacunes de Hadoop quant au traitement nécessitant de nombreux allers-retours.\n", 28 | "\n", 29 | "Si, malgré tous vos efforts, vous n’avez pas réussi à extraire des données de\n", 30 | "manière qu’elles tiennent dans votre mémoire RAM, le recours à une autre solution deviendra indispensable. Cette solution est Apache Spark.\n", 31 | "\n", 32 | "Cet environnement, développé à Berkeley, est un système de traitement distribué\n", 33 | "sur les noeuds d’une infrastructure big data." 34 | ] 35 | }, 36 | { 37 | "cell_type": "markdown", 38 | "metadata": {}, 39 | "source": [ 40 | "Si vous voulez tester Spark, je vous conseille d'essayer la version gratuite de Databricks qui est simple d'accèes :\n", 41 | "\n", 42 | "https://databricks.com/signup#signup/community\n", 43 | " " 44 | ] 45 | }, 46 | { 47 | "cell_type": "markdown", 48 | "metadata": {}, 49 | "source": [ 50 | "### 7.4.3 Le DataFrame de Spark SQL\n", 51 | "\n", 52 | "Nous allons nous concentrer sur Spark SQL. Ceci nous permettra d’introduire un objet : le DataFrame de Spark. Il s’agit d’un objet proche du RDD, mais qui permet de stocker de manière distribuée des données structurées, là où les RDD nous permettent de stocker des données non structurées.\n", 53 | "\n", 54 | "Il se rapproche très fortement du DataFrame de Pandas." 55 | ] 56 | }, 57 | { 58 | "cell_type": "markdown", 59 | "metadata": {}, 60 | "source": [ 61 | "#### Lancer votre session Spark\n", 62 | "Commençons par lancer une session Spark en utilisant dans un premier temps le\n", 63 | "package findspark et la classe SparkSession de pyspark.sql :" 64 | ] 65 | }, 66 | { 67 | "cell_type": "code", 68 | "execution_count": 1, 69 | "metadata": {}, 70 | "outputs": [ 71 | { 72 | "name": "stderr", 73 | "output_type": "stream", 74 | "text": [ 75 | "24/01/07 22:02:02 WARN Utils: Your hostname, r2-60-gra7 resolves to a loopback address: 127.0.1.1; using 51.91.138.22 instead (on interface ens3)\n", 76 | "24/01/07 22:02:02 WARN Utils: Set SPARK_LOCAL_IP if you need to bind to another address\n", 77 | "WARNING: An illegal reflective access operation has occurred\n", 78 | "WARNING: Illegal reflective access by org.apache.spark.unsafe.Platform (file:/opt/spark/jars/spark-unsafe_2.12-3.2.0.jar) to constructor java.nio.DirectByteBuffer(long,int)\n", 79 | "WARNING: Please consider reporting this to the maintainers of org.apache.spark.unsafe.Platform\n", 80 | "WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations\n", 81 | "WARNING: All illegal access operations will be denied in a future release\n", 82 | "Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties\n", 83 | "Setting default log level to \"WARN\".\n", 84 | "To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).\n", 85 | "24/01/07 22:02:03 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable\n", 86 | "24/01/07 22:02:04 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.\n" 87 | ] 88 | } 89 | ], 90 | "source": [ 91 | "# on importe findspark\n", 92 | "import findspark\n", 93 | "# on initialise findspark pour identifier nos chemins Spark\n", 94 | "findspark.init()\n", 95 | "# on importe SparkSession\n", 96 | "from pyspark.sql import SparkSession\n", 97 | "# on crée une session Spark\n", 98 | "spark = SparkSession.builder \\\n", 99 | " .appName(\"Exemples avec Python et Spark SQL\") \\\n", 100 | " .getOrCreate()" 101 | ] 102 | }, 103 | { 104 | "cell_type": "markdown", 105 | "metadata": {}, 106 | "source": [ 107 | "#### Lecture des données (json, parquet, csv, hive)\n", 108 | "\n", 109 | "Spark vous permet de lire de nombreux types de données, que ce soit des données csv ou SQL classiques ou des données issues d’environnements big data. En voici quelques exemples :" 110 | ] 111 | }, 112 | { 113 | "cell_type": "code", 114 | "execution_count": 2, 115 | "metadata": {}, 116 | "outputs": [ 117 | { 118 | "name": "stderr", 119 | "output_type": "stream", 120 | "text": [ 121 | "24/01/07 22:02:10 WARN package: Truncated the string representation of a plan since it was too large. This behavior can be adjusted by setting 'spark.sql.debug.maxToStringFields'.\n" 122 | ] 123 | } 124 | ], 125 | "source": [ 126 | "# lecture d’un fichier json\n", 127 | "df = spark.read.json(\"../data/data.json\")\n", 128 | "# lecture d’un fichier parquet\n", 129 | "df3 = spark.read.load(\"../data/data.parquet\")" 130 | ] 131 | }, 132 | { 133 | "cell_type": "markdown", 134 | "metadata": {}, 135 | "source": [ 136 | "Spark permet aussi d’utiliser des données issues de fichiers csv :" 137 | ] 138 | }, 139 | { 140 | "cell_type": "code", 141 | "execution_count": 3, 142 | "metadata": {}, 143 | "outputs": [], 144 | "source": [ 145 | "data_idf=spark.read.format(\"csv\").option(\"header\", \"true\")\\\n", 146 | " .option(\"delimiter\",\";\")\\\n", 147 | " .option(\"inferSchema\", \"true\")\\\n", 148 | " .load(\"../data/base-comparateur-de-territoires.csv\")" 149 | ] 150 | }, 151 | { 152 | "cell_type": "markdown", 153 | "metadata": {}, 154 | "source": [ 155 | "Un autre format important dans le cadre du big data est le format Hive. Pour se\n", 156 | "connecter à une base Hive et soumettre du code SQL, on utilisera :" 157 | ] 158 | }, 159 | { 160 | "cell_type": "raw", 161 | "metadata": {}, 162 | "source": [ 163 | "from pyspark.sql import SparkSession\n", 164 | "# on crée une session avec accès à Hive\n", 165 | "spark = SparkSession.builder\\\n", 166 | " .config(\"spark.sql.warehouse.dir\", warehouse_location) \\\n", 167 | " .enableHiveSupport().getOrCreate()\n", 168 | "\n", 169 | "# on peut afficher une base\n", 170 | "spark.sql('show databases').show()\n", 171 | "\n", 172 | "# on peut créer une base\n", 173 | "spark.sql('create database base1')\n", 174 | "\n", 175 | "# on peut faire des requêtes en SQL\n", 176 | "spark.sql(\"select * from table1\").show()" 177 | ] 178 | }, 179 | { 180 | "cell_type": "markdown", 181 | "metadata": {}, 182 | "source": [ 183 | "On peut aussi transformer un DataFrame Pandas en DataFrame Spark en utilisant :" 184 | ] 185 | }, 186 | { 187 | "cell_type": "code", 188 | "execution_count": 4, 189 | "metadata": {}, 190 | "outputs": [], 191 | "source": [ 192 | "import pandas as pd\n", 193 | "pandas_df = pd.DataFrame([10,20,30])\n", 194 | "spark_df = spark.createDataFrame(pandas_df)" 195 | ] 196 | }, 197 | { 198 | "cell_type": "markdown", 199 | "metadata": {}, 200 | "source": [ 201 | "#### Manipuler des DataFrames\n", 202 | "Il est très simple de manipuler des DataFrames de différentes manières. Spark part du principe que les calculs ne sont pas effectués chaque fois que vous soumettez du code. \n", 203 | "\n", 204 | "Ils le sont lorsque vous demandez explicitement à Spark de faire les calculs ou\n", 205 | "d’afficher les résultats. Ces opérations de calcul ou d’affichage sont appliquées avec les méthodes .collect() ou .show().\n", 206 | "\n", 207 | "Nous allons manipuler les données sur les communes d’Île-de-France. Nous\n", 208 | "voulons extraire des informations de ces données sur les communes de la région\n", 209 | "Île-de-France.\n", 210 | "\n", 211 | "Les codes ci-dessous nous\n", 212 | "permettent d’effectuer la plupart des manipulations dont nous avons besoin :" 213 | ] 214 | }, 215 | { 216 | "cell_type": "code", 217 | "execution_count": 5, 218 | "metadata": {}, 219 | "outputs": [ 220 | { 221 | "data": { 222 | "text/plain": [ 223 | "['CODGEO', 'LIBGEO', 'REG', 'DEP', 'P14_POP', 'P09_POP', 'SUPERF', 'NAIS0914']" 224 | ] 225 | }, 226 | "execution_count": 5, 227 | "metadata": {}, 228 | "output_type": "execute_result" 229 | } 230 | ], 231 | "source": [ 232 | "# on récupère les données d’Ile-de-France\n", 233 | "# on a des titres dans la première ligne\n", 234 | "# le séparateur est le;\n", 235 | "# on demande à Spark d’inférer les types\n", 236 | "data_idf = spark.read.format(\"csv\").option(\"header\", \"true\")\\\n", 237 | " .option(\"delimiter\",\";\")\\\n", 238 | " .option(\"inferSchema\", \"true\")\\\n", 239 | " .load(\"../data/base-comparateur-de-territoires.csv\")\n", 240 | "# on peut afficher les 8 premiers noms de colonnes :\n", 241 | "data_idf.columns[:8]" 242 | ] 243 | }, 244 | { 245 | "cell_type": "code", 246 | "execution_count": 6, 247 | "metadata": {}, 248 | "outputs": [ 249 | { 250 | "name": "stdout", 251 | "output_type": "stream", 252 | "text": [ 253 | "+--------------------+\n", 254 | "| LIBGEO|\n", 255 | "+--------------------+\n", 256 | "| Saint-Gratien|\n", 257 | "| Pierrelaye|\n", 258 | "|Saint-Cyr-en-Arthies|\n", 259 | "| La Roche-Guyon|\n", 260 | "| Villiers-Adam|\n", 261 | "| Vallangoujard|\n", 262 | "| Le Plessis-Gassot|\n", 263 | "| Seugy|\n", 264 | "| Villers-en-Arthies|\n", 265 | "| Vaudherland|\n", 266 | "| Asnières-sur-Oise|\n", 267 | "| Saint-Maurice|\n", 268 | "| Arnouville|\n", 269 | "| Bray-et-Lû|\n", 270 | "| Santeny|\n", 271 | "| Le Plessis-Trévise|\n", 272 | "| Bezons|\n", 273 | "| Butry-sur-Oise|\n", 274 | "| Beauchamp|\n", 275 | "| Banthelu|\n", 276 | "+--------------------+\n", 277 | "only showing top 20 rows\n", 278 | "\n" 279 | ] 280 | } 281 | ], 282 | "source": [ 283 | "# on sélectionne une colonne et on affiche le résultat\n", 284 | "data_idf.select(\"LIBGEO\").show()" 285 | ] 286 | }, 287 | { 288 | "cell_type": "markdown", 289 | "metadata": {}, 290 | "source": [ 291 | "Les opérations ci-dessus sont stockées en mémoire et ne renvoient rien. C’est\n", 292 | "uniquement lorsqu’on ajoute show() ou collect() que les opérations sont\n", 293 | "effectuées." 294 | ] 295 | }, 296 | { 297 | "cell_type": "code", 298 | "execution_count": 7, 299 | "metadata": {}, 300 | "outputs": [], 301 | "source": [ 302 | "# on crée un DataFrame par opération avec deux colonnes dont une colonne\n", 303 | "# qui indique si la commune est dans Paris\n", 304 | "data_reduced = data_idf.select(\"P14_POP\", data_idf[\"LIBGEO\"].startswith(\"Paris\"), \"LIBGEO\")\n", 305 | "# on peut aussi travailler sur les colonnes\n", 306 | "# on peut renommer une colonne :\n", 307 | "data_col = data_idf.withColumnRenamed('P14_POP', 'Population_2014')\n", 308 | "# on peut supprimer une colonne :\n", 309 | "data_col = data_col.drop(\"LIBGEO\", \"Population_2014\")" 310 | ] 311 | }, 312 | { 313 | "cell_type": "code", 314 | "execution_count": 8, 315 | "metadata": {}, 316 | "outputs": [ 317 | { 318 | "name": "stdout", 319 | "output_type": "stream", 320 | "text": [ 321 | "+--------+-------------------------+--------------------+\n", 322 | "| P14_POP|startswith(LIBGEO, Paris)| LIBGEO|\n", 323 | "+--------+-------------------------+--------------------+\n", 324 | "| 21263.0| true|Paris 2e Arrondis...|\n", 325 | "| 26796.0| true|Paris 4e Arrondis...|\n", 326 | "|165745.0| true|Paris 16e Arrondi...|\n", 327 | "|170186.0| true|Paris 17e Arrondi...|\n", 328 | "| 60030.0| true|Paris 5e Arrondis...|\n", 329 | "| 55486.0| true|Paris 7e Arrondis...|\n", 330 | "|182318.0| true|Paris 13e Arrondi...|\n", 331 | "|141230.0| true|Paris 14e Arrondi...|\n", 332 | "|195468.0| true|Paris 20e Arrondi...|\n", 333 | "|199135.0| true|Paris 18e Arrondi...|\n", 334 | "|187156.0| true|Paris 19e Arrondi...|\n", 335 | "| 35077.0| true|Paris 3e Arrondis...|\n", 336 | "| 43134.0| true|Paris 6e Arrondis...|\n", 337 | "| 38257.0| true|Paris 8e Arrondis...|\n", 338 | "| 59389.0| true|Paris 9e Arrondis...|\n", 339 | "| 92228.0| true|Paris 10e Arrondi...|\n", 340 | "|151542.0| true|Paris 11e Arrondi...|\n", 341 | "| 16717.0| true|Paris 1er Arrondi...|\n", 342 | "|143922.0| true|Paris 12e Arrondi...|\n", 343 | "|235366.0| true|Paris 15e Arrondi...|\n", 344 | "+--------+-------------------------+--------------------+\n", 345 | "\n" 346 | ] 347 | } 348 | ], 349 | "source": [ 350 | "# on peut filtrer les observations\n", 351 | "data_reduced.filter(data_reduced['startswith(LIBGEO, Paris)'] == True).show()" 352 | ] 353 | }, 354 | { 355 | "cell_type": "markdown", 356 | "metadata": {}, 357 | "source": [ 358 | "Nous avons sélectionné uniquement les observations commençant par « Paris »,\n", 359 | "on obtient donc les 20 arrondissements et leurs populations.\n", 360 | "\n", 361 | "On peut alors sauver ces données sous forme de fichiers parquet ou json :" 362 | ] 363 | }, 364 | { 365 | "cell_type": "code", 366 | "execution_count": 9, 367 | "metadata": {}, 368 | "outputs": [ 369 | { 370 | "name": "stderr", 371 | "output_type": "stream", 372 | "text": [ 373 | "\r", 374 | "[Stage 8:> (0 + 1) / 1]\r", 375 | "\r", 376 | " \r" 377 | ] 378 | } 379 | ], 380 | "source": [ 381 | "data_reduced.select(\"P14_POP\",\"LIBGEO\").write.save(\"resultat.parquet\")\n", 382 | "data_reduced.select(\"P14_POP\",\"LIBGEO\").write.save(\"resultat.json\",format=\"json\")" 383 | ] 384 | }, 385 | { 386 | "cell_type": "markdown", 387 | "metadata": {}, 388 | "source": [ 389 | "#### Afficher des statistiques descriptives\n", 390 | "Spark permet aussi de calculer des statistiques sur les données en utilisant, par\n", 391 | "exemple, une opération groupby :" 392 | ] 393 | }, 394 | { 395 | "cell_type": "code", 396 | "execution_count": 10, 397 | "metadata": {}, 398 | "outputs": [ 399 | { 400 | "name": "stdout", 401 | "output_type": "stream", 402 | "text": [ 403 | "+---+------------------+\n", 404 | "|DEP| avg(MED14)|\n", 405 | "+---+------------------+\n", 406 | "| 78|27908.276609517692|\n", 407 | "| 91|25505.856457531612|\n", 408 | "| 93|18004.142505975004|\n", 409 | "| 94|23223.062544887238|\n", 410 | "| 92|27815.275831569437|\n", 411 | "| 77|23544.776856209497|\n", 412 | "| 95| 24901.96792722259|\n", 413 | "| 75|29629.178876815004|\n", 414 | "+---+------------------+\n", 415 | "\n" 416 | ] 417 | } 418 | ], 419 | "source": [ 420 | "# on utilise un groupBy par département et\n", 421 | "# on affiche le salaire médian moyen\n", 422 | "salaire_med_moy = data_idf.groupBy(\"DEP\").agg({\"MED14\" :\"mean\"})\n", 423 | "salaire_med_moy.show()" 424 | ] 425 | }, 426 | { 427 | "cell_type": "code", 428 | "execution_count": 11, 429 | "metadata": {}, 430 | "outputs": [ 431 | { 432 | "data": { 433 | "text/html": [ 434 | "
\n", 435 | "\n", 448 | "\n", 449 | " \n", 450 | " \n", 451 | " \n", 452 | " \n", 453 | " \n", 454 | " \n", 455 | " \n", 456 | " \n", 457 | " \n", 458 | " \n", 459 | " \n", 460 | " \n", 461 | " \n", 462 | " \n", 463 | " \n", 464 | " \n", 465 | " \n", 466 | " \n", 467 | " \n", 468 | " \n", 469 | " \n", 470 | " \n", 471 | " \n", 472 | " \n", 473 | " \n", 474 | " \n", 475 | " \n", 476 | " \n", 477 | " \n", 478 | " \n", 479 | " \n", 480 | " \n", 481 | " \n", 482 | " \n", 483 | "
DEPavg(MED14)
07827908.276610
19125505.856458
29318004.142506
39423223.062545
49227815.275832
\n", 484 | "
" 485 | ], 486 | "text/plain": [ 487 | " DEP avg(MED14)\n", 488 | "0 78 27908.276610\n", 489 | "1 91 25505.856458\n", 490 | "2 93 18004.142506\n", 491 | "3 94 23223.062545\n", 492 | "4 92 27815.275832" 493 | ] 494 | }, 495 | "execution_count": 11, 496 | "metadata": {}, 497 | "output_type": "execute_result" 498 | } 499 | ], 500 | "source": [ 501 | "# on peut transformer le résultat en format Pandas\n", 502 | "salaire_med_moy_pandas = salaire_med_moy.toPandas()\n", 503 | "# on aura les sorties de Pandas\n", 504 | "salaire_med_moy_pandas.head()" 505 | ] 506 | }, 507 | { 508 | "cell_type": "markdown", 509 | "metadata": {}, 510 | "source": [ 511 | "De nombreuses opérations proches de celles de Pandas sont disponibles avec\n", 512 | "Spark. \n", 513 | "\n", 514 | "\n", 515 | "#### Terminer votre session Spark\n", 516 | "Une fois que vous avez terminé de travailler sur votre session Spark, vous pouvez la fermer :" 517 | ] 518 | }, 519 | { 520 | "cell_type": "code", 521 | "execution_count": 12, 522 | "metadata": {}, 523 | "outputs": [], 524 | "source": [ 525 | "spark.stop()" 526 | ] 527 | }, 528 | { 529 | "cell_type": "markdown", 530 | "metadata": {}, 531 | "source": [ 532 | "### 7.4.4 Le machine learning avec Spark\n", 533 | "\n", 534 | "#### Préparation des données\n", 535 | "\n", 536 | "Nous supposons que nous avons déjà créé notre session Spark. Nous devons\n", 537 | "maintenant récupérer nos données :" 538 | ] 539 | }, 540 | { 541 | "cell_type": "code", 542 | "execution_count": 13, 543 | "metadata": {}, 544 | "outputs": [ 545 | { 546 | "name": "stderr", 547 | "output_type": "stream", 548 | "text": [ 549 | "24/01/07 22:02:16 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.\n" 550 | ] 551 | } 552 | ], 553 | "source": [ 554 | "# on crée une session Spark\n", 555 | "spark = SparkSession.builder \\\n", 556 | " .appName(\"Exemples avec Python et Spark SQL\") \\\n", 557 | " .getOrCreate()" 558 | ] 559 | }, 560 | { 561 | "cell_type": "code", 562 | "execution_count": 14, 563 | "metadata": {}, 564 | "outputs": [], 565 | "source": [ 566 | "# on récupère les données telecom\n", 567 | "churn=spark.read.format(\"csv\").option(\"header\", \"true\")\\\n", 568 | " .option(\"inferSchema\", \"true\")\\\n", 569 | " .load(\"../data/telecom.csv\")" 570 | ] 571 | }, 572 | { 573 | "cell_type": "markdown", 574 | "metadata": {}, 575 | "source": [ 576 | "La phase de préparation qui suit est importante. Il s’agit de définir les variables explicatives (x) et la variable cible (y) tout en transformant les variables non adaptées :" 577 | ] 578 | }, 579 | { 580 | "cell_type": "code", 581 | "execution_count": 15, 582 | "metadata": {}, 583 | "outputs": [], 584 | "source": [ 585 | "# on importe une classe qui transforme les colonnes qualitatives en colonnes\n", 586 | "# sous forme d’entiers (équivalent de LabelEncoder de Scikit-Learn)\n", 587 | "from pyspark.ml.feature import StringIndexer\n", 588 | "\n", 589 | "# on va transformer la colonne Churn? et on va la nommer Churn2\n", 590 | "indexer = StringIndexer(inputCol='Churn?', outputCol='Churn2').fit(churn)\n", 591 | "\n", 592 | "# on construit ensuite un vecteur rassemblant toutes les colonnes explicatives\n", 593 | "from pyspark.ml.feature import VectorAssembler\n", 594 | "\n", 595 | "# on rassemble la liste des colonnes numériques que l’on va utiliser\n", 596 | "numericCols = ['Day Mins','Day Calls','Day Charge','Eve Mins',\n", 597 | " 'Eve Calls','Eve Charge','Night Mins','Night Calls',\n", 598 | " 'Night Charge','Intl Mins','Intl Calls']\n", 599 | "\n", 600 | "# on crée un objet qui rassemble toutes ces colonnes dans une colonne\n", 601 | "# nommée var_expl\n", 602 | "assembler = VectorAssembler(inputCols=numericCols, outputCol=\"var_expl\")\n", 603 | "\n", 604 | "# on divise le DataFrame initial (churn) en deux DataFrame représentant\n", 605 | "# respectivement 70% et 30% des données\n", 606 | "\n", 607 | "(trainingData, testData) = churn.randomSplit([0.7, 0.3])" 608 | ] 609 | }, 610 | { 611 | "cell_type": "markdown", 612 | "metadata": {}, 613 | "source": [ 614 | "À la différence de Scikit-Learn, on va devoir nommer les groupes de variables en\n", 615 | "entrée et en sortie lors de la création de l’objet à partir de la classe du modèle. \n", 616 | "\n", 617 | "Les données doivent donc avoir le format spécifié dans l’objet. Par ailleurs, on utilise un format spécifique pour les variables explicatives qui sont toutes stockées dans une structure à l’intérieur du DataFrame." 618 | ] 619 | }, 620 | { 621 | "cell_type": "markdown", 622 | "metadata": {}, 623 | "source": [ 624 | "#### Création du modèle et du pipeline\n", 625 | "Nous pouvons créer notre modèle de forêt aléatoire ainsi que le pipeline associé :" 626 | ] 627 | }, 628 | { 629 | "cell_type": "code", 630 | "execution_count": 16, 631 | "metadata": {}, 632 | "outputs": [], 633 | "source": [ 634 | "from pyspark.ml.classification import RandomForestClassifier\n", 635 | "# on crée notre modèle\n", 636 | "model=RandomForestClassifier(labelCol=\"Churn2\", featuresCol=\"var_expl\",\n", 637 | " numTrees=100)" 638 | ] 639 | }, 640 | { 641 | "cell_type": "code", 642 | "execution_count": 17, 643 | "metadata": {}, 644 | "outputs": [], 645 | "source": [ 646 | "from pyspark.ml import Pipeline\n", 647 | "# on construit le pipeline qui est composé des 3 étapes dévelopées auparavant\n", 648 | "pipeline = Pipeline(stages=[indexer, assembler, model])" 649 | ] 650 | }, 651 | { 652 | "cell_type": "markdown", 653 | "metadata": {}, 654 | "source": [ 655 | "#### Ajustement et validation du modèle\n", 656 | "Nous faisons les calculs sur les données d’apprentissage et testons sur les\n", 657 | "données de validation :" 658 | ] 659 | }, 660 | { 661 | "cell_type": "code", 662 | "execution_count": 18, 663 | "metadata": {}, 664 | "outputs": [], 665 | "source": [ 666 | "# ajustement du modèle\n", 667 | "model = pipeline.fit(trainingData)\n", 668 | "# prévision sur les données de validation\n", 669 | "predictions = model.transform(testData)" 670 | ] 671 | }, 672 | { 673 | "cell_type": "markdown", 674 | "metadata": {}, 675 | "source": [ 676 | "Par défaut, Spark va créer de nouvelles colonnes dans nos données avec les\n", 677 | "prédictions (colonne prediction) et les probabilités de prédiction (colonne\n", 678 | "rawPrediction).\n", 679 | "\n", 680 | "Nous pouvons calculer des métriques comme l’AUC ou le pourcentage de bien\n", 681 | "classés (accuracy) :" 682 | ] 683 | }, 684 | { 685 | "cell_type": "code", 686 | "execution_count": 19, 687 | "metadata": {}, 688 | "outputs": [ 689 | { 690 | "data": { 691 | "text/plain": [ 692 | "0.7575137686860707" 693 | ] 694 | }, 695 | "execution_count": 19, 696 | "metadata": {}, 697 | "output_type": "execute_result" 698 | } 699 | ], 700 | "source": [ 701 | "from pyspark.ml.evaluation import BinaryClassificationEvaluator\n", 702 | "\n", 703 | "# cette classe calcule l’AUC de notre modèle\n", 704 | "evaluator = BinaryClassificationEvaluator(rawPredictionCol=\"rawPrediction\",\n", 705 | " labelCol=\"Churn2\")\n", 706 | "\n", 707 | "# on applique les données prédites à notre objet d’évalaution\n", 708 | "evaluator.evaluate(predictions)\n", 709 | "\n", 710 | "# L’AUC est affichée" 711 | ] 712 | }, 713 | { 714 | "cell_type": "code", 715 | "execution_count": 20, 716 | "metadata": {}, 717 | "outputs": [ 718 | { 719 | "data": { 720 | "text/plain": [ 721 | "0.8730314960629921" 722 | ] 723 | }, 724 | "execution_count": 20, 725 | "metadata": {}, 726 | "output_type": "execute_result" 727 | } 728 | ], 729 | "source": [ 730 | "# on calcule l’accuracy manuellement\n", 731 | "accuracy = predictions.filter(predictions.Churn2==predictions.prediction)\\\n", 732 | " .count() / float(testData.count())\n", 733 | "accuracy\n", 734 | "# on obtient l’accuracy" 735 | ] 736 | }, 737 | { 738 | "cell_type": "markdown", 739 | "metadata": {}, 740 | "source": [ 741 | "Les métriques utilisées nous permettent de voir que notre modèle ressemble à\n", 742 | "celui de Scikit-Learn en termes de performance (il est moins bon car nous avons\n", 743 | "moins de variables explicatives).\n", 744 | "\n", 745 | "Nous avons effectué tous les calculs dans notre environnement big data. Le seul\n", 746 | "moment où les données sont revenues vers nous est situé à la fin, pour récupérer le\n", 747 | "résultat.\n", 748 | "\n", 749 | "Cet exemple illustre bien la simplicité de Spark. L’utilisation de Spark pour des\n", 750 | "tâches plus complexes demande plus de travail mais PySpark et les DataFrames\n", 751 | "rendent ce passage très aisé pour un data scientist à l’aise avec les outils de traitement\n", 752 | "de données de Python." 753 | ] 754 | } 755 | ], 756 | "metadata": { 757 | "kernelspec": { 758 | "display_name": "Python 3 (ipykernel)", 759 | "language": "python", 760 | "name": "python3" 761 | }, 762 | "language_info": { 763 | "codemirror_mode": { 764 | "name": "ipython", 765 | "version": 3 766 | }, 767 | "file_extension": ".py", 768 | "mimetype": "text/x-python", 769 | "name": "python", 770 | "nbconvert_exporter": "python", 771 | "pygments_lexer": "ipython3", 772 | "version": "3.12.2" 773 | } 774 | }, 775 | "nbformat": 4, 776 | "nbformat_minor": 4 777 | } 778 | -------------------------------------------------------------------------------- /other/NLTK-downloader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emjako/pythondatascientist/eb5b8e2e98a11255a3574d0aff56e77b3f19e668/other/NLTK-downloader.png -------------------------------------------------------------------------------- /other/nuage-points.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emjako/pythondatascientist/eb5b8e2e98a11255a3574d0aff56e77b3f19e668/other/nuage-points.mp4 -------------------------------------------------------------------------------- /other/python-pour-le-data-scientist-dunod.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emjako/pythondatascientist/eb5b8e2e98a11255a3574d0aff56e77b3f19e668/other/python-pour-le-data-scientist-dunod.jpeg -------------------------------------------------------------------------------- /requirements-conda.txt: -------------------------------------------------------------------------------- 1 | # This file may be used to create an environment using: 2 | # $ conda create --name --file 3 | # platform: win-64 4 | absl-py=2.1.0=pypi_0 5 | aiohttp=3.9.3=py312he70551f_1 6 | aiosignal=1.3.1=pyhd8ed1ab_0 7 | alembic=1.13.1=pyhd8ed1ab_1 8 | altair=5.3.0=pyhd8ed1ab_0 9 | aniso8601=9.0.1=pyhd8ed1ab_0 10 | anyio=4.3.0=pyhd8ed1ab_0 11 | aom=3.7.1=h63175ca_0 12 | argon2-cffi=23.1.0=pyhd8ed1ab_0 13 | argon2-cffi-bindings=21.2.0=py312he70551f_4 14 | arrow=1.3.0=pyhd8ed1ab_0 15 | asttokens=2.4.1=pyhd8ed1ab_0 16 | astunparse=1.6.3=pypi_0 17 | async-lru=2.0.4=pyhd8ed1ab_0 18 | attrs=23.2.0=pyh71513ae_0 19 | audioread=3.0.1=py312h2e8e312_1 20 | aws-c-auth=0.7.16=h7613915_8 21 | aws-c-cal=0.6.10=hf6fcf4e_2 22 | aws-c-common=0.9.14=hcfcfb64_0 23 | aws-c-compression=0.2.18=hf6fcf4e_2 24 | aws-c-event-stream=0.4.2=h3df98b0_6 25 | aws-c-http=0.8.1=h4e3df0f_7 26 | aws-c-io=0.14.6=hf0b8b6f_2 27 | aws-c-mqtt=0.10.3=h96fac68_2 28 | aws-c-s3=0.5.5=h08df315_0 29 | aws-c-sdkutils=0.1.15=hf6fcf4e_2 30 | aws-checksums=0.1.18=hf6fcf4e_2 31 | aws-crt-cpp=0.26.4=h944602d_3 32 | aws-sdk-cpp=1.11.267=hfaf0dd0_4 33 | babel=2.14.0=pyhd8ed1ab_0 34 | bcrypt=4.1.2=py312hfccd98a_0 35 | beautifulsoup4=4.12.3=pyha770c72_0 36 | blas=1.0=mkl 37 | bleach=6.1.0=pyhd8ed1ab_0 38 | blinker=1.7.0=pyhd8ed1ab_0 39 | blosc=1.21.5=hdccc3a2_0 40 | branca=0.7.1=pyhd8ed1ab_0 41 | brotli=1.1.0=hcfcfb64_1 42 | brotli-bin=1.1.0=hcfcfb64_1 43 | brotli-python=1.1.0=py312h53d5487_1 44 | bzip2=1.0.8=hcfcfb64_5 45 | c-ares=1.28.1=hcfcfb64_0 46 | c-blosc2=2.14.3=h183a6f4_0 47 | ca-certificates=2024.3.11=haa95532_0 48 | cached-property=1.5.2=hd8ed1ab_1 49 | cached_property=1.5.2=pyha770c72_1 50 | cachetools=5.3.3=pyhd8ed1ab_0 51 | cartopy=0.22.0=py312h2ab9e98_1 52 | certifi=2024.2.2=py312haa95532_0 53 | cffi=1.16.0=py312he70551f_0 54 | charls=2.4.2=h1537add_0 55 | charset-normalizer=3.3.2=pyhd8ed1ab_0 56 | click=8.1.7=win_pyh7428d3b_0 57 | cloudpickle=3.0.0=pyhd8ed1ab_0 58 | colorama=0.4.6=pyhd8ed1ab_0 59 | comm=0.2.2=pyhd8ed1ab_0 60 | contourpy=1.2.1=py312h0d7def4_0 61 | cpuonly=2.0=0 62 | cryptography=42.0.5=py312h1f4a190_0 63 | cycler=0.12.1=pyhd8ed1ab_0 64 | dash=2.16.1=pyhd8ed1ab_0 65 | dash-bootstrap-components=1.5.0=pyhd8ed1ab_0 66 | datasets=2.18.0=pyhd8ed1ab_0 67 | dav1d=1.2.1=hcfcfb64_0 68 | debugpy=1.8.1=py312h53d5487_0 69 | decorator=5.1.1=pyhd8ed1ab_0 70 | defusedxml=0.7.1=pyhd8ed1ab_0 71 | dill=0.3.8=pyhd8ed1ab_0 72 | docker-py=7.0.0=pyhd8ed1ab_0 73 | entrypoints=0.4=pyhd8ed1ab_0 74 | et_xmlfile=1.1.0=pyhd8ed1ab_0 75 | exceptiongroup=1.2.0=pyhd8ed1ab_2 76 | executing=2.0.1=pyhd8ed1ab_0 77 | filelock=3.13.4=pyhd8ed1ab_0 78 | flask=3.0.3=pyhd8ed1ab_0 79 | flatbuffers=24.3.25=pypi_0 80 | folium=0.16.0=pyhd8ed1ab_0 81 | fonttools=4.51.0=py312he70551f_0 82 | fqdn=1.5.1=pyhd8ed1ab_0 83 | freetype=2.12.1=hdaf720e_2 84 | frozenlist=1.4.1=py312he70551f_0 85 | fsspec=2024.2.0=pyhca7485f_0 86 | gast=0.5.4=pypi_0 87 | geos=3.12.1=h1537add_0 88 | gettext=0.22.5=h5728263_2 89 | gettext-tools=0.22.5=h7d00a51_2 90 | giflib=5.2.1=h64bf75a_3 91 | gitdb=4.0.11=pyhd8ed1ab_0 92 | gitpython=3.1.43=pyhd8ed1ab_0 93 | glib=2.80.0=h39d0aa6_4 94 | glib-tools=2.80.0=h0a98069_4 95 | google-pasta=0.2.0=pypi_0 96 | graphene=3.3=pyhd8ed1ab_0 97 | graphql-core=3.2.3=pyhd8ed1ab_0 98 | graphql-relay=3.2.0=pyhd8ed1ab_0 99 | greenlet=3.0.3=py312h53d5487_0 100 | grpcio=1.62.1=pypi_0 101 | gst-plugins-base=1.24.1=h001b923_1 102 | gstreamer=1.24.1=hb4038d2_1 103 | h11=0.14.0=pyhd8ed1ab_0 104 | h2=4.1.0=pyhd8ed1ab_0 105 | h5py=3.11.0=pypi_0 106 | hpack=4.0.0=pyh9f0ad1d_0 107 | httpcore=1.0.5=pyhd8ed1ab_0 108 | httpx=0.27.0=pyhd8ed1ab_0 109 | huggingface_hub=0.22.2=pyhd8ed1ab_0 110 | hyperframe=6.0.1=pyhd8ed1ab_0 111 | icu=73.2=h63175ca_0 112 | idna=3.6=pyhd8ed1ab_0 113 | imagecodecs=2024.1.1=py312hde2f776_3 114 | imageio=2.34.0=pyh4b66e23_0 115 | imbalanced-learn=0.12.2=pyhd8ed1ab_0 116 | importlib-metadata=7.1.0=pyha770c72_0 117 | importlib_metadata=7.1.0=hd8ed1ab_0 118 | importlib_resources=6.4.0=pyhd8ed1ab_0 119 | intel-openmp=2024.1.0=h57928b3_964 120 | ipykernel=6.29.3=pyha63f2e9_0 121 | ipython=8.22.2=pyh7428d3b_0 122 | ipywidgets=8.1.2=pyhd8ed1ab_0 123 | isoduration=20.11.0=pyhd8ed1ab_0 124 | itsdangerous=2.1.2=pyhd8ed1ab_0 125 | jedi=0.19.1=pyhd8ed1ab_0 126 | jinja2=3.1.3=pyhd8ed1ab_0 127 | joblib=1.4.0=pyhd8ed1ab_0 128 | json5=0.9.24=pyhd8ed1ab_0 129 | jsonpointer=2.4=py312h2e8e312_3 130 | jsonschema=4.21.1=pyhd8ed1ab_0 131 | jsonschema-specifications=2023.12.1=pyhd8ed1ab_0 132 | jsonschema-with-format-nongpl=4.21.1=pyhd8ed1ab_0 133 | jupyter=1.0.0=pyhd8ed1ab_10 134 | jupyter-lsp=2.2.4=pyhd8ed1ab_0 135 | jupyter_client=8.6.1=pyhd8ed1ab_0 136 | jupyter_console=6.6.3=pyhd8ed1ab_0 137 | jupyter_core=5.7.2=py312h2e8e312_0 138 | jupyter_events=0.10.0=pyhd8ed1ab_0 139 | jupyter_server=2.13.0=pyhd8ed1ab_0 140 | jupyter_server_terminals=0.5.3=pyhd8ed1ab_0 141 | jupyterlab=4.1.6=pyhd8ed1ab_0 142 | jupyterlab_pygments=0.3.0=pyhd8ed1ab_1 143 | jupyterlab_server=2.26.0=pyhd8ed1ab_0 144 | jupyterlab_widgets=3.0.10=pyhd8ed1ab_0 145 | jxrlib=1.1=hcfcfb64_3 146 | keras=3.2.1=pypi_0 147 | kiwisolver=1.4.5=py312h0d7def4_1 148 | krb5=1.21.2=heb0366b_0 149 | lame=3.100=hcfcfb64_1003 150 | lazy_loader=0.4=pyhd8ed1ab_0 151 | lcms2=2.16=h67d730c_0 152 | lerc=4.0.0=h63175ca_0 153 | libabseil=20240116.1=cxx17_h63175ca_2 154 | libaec=1.1.3=h63175ca_0 155 | libarrow=15.0.2=h878f99b_1_cpu 156 | libarrow-acero=15.0.2=h63175ca_1_cpu 157 | libarrow-dataset=15.0.2=h63175ca_1_cpu 158 | libarrow-flight=15.0.2=h02312f3_1_cpu 159 | libarrow-flight-sql=15.0.2=h55b4db4_1_cpu 160 | libarrow-gandiva=15.0.2=h3f2ff47_1_cpu 161 | libarrow-substrait=15.0.2=h89268de_1_cpu 162 | libasprintf=0.22.5=h5728263_2 163 | libasprintf-devel=0.22.5=h5728263_2 164 | libavif=1.0.1=h7a9aacb_3 165 | libblas=3.9.0=22_win64_mkl 166 | libbrotlicommon=1.1.0=hcfcfb64_1 167 | libbrotlidec=1.1.0=hcfcfb64_1 168 | libbrotlienc=1.1.0=hcfcfb64_1 169 | libcblas=3.9.0=22_win64_mkl 170 | libclang=18.1.1=pypi_0 171 | libclang13=18.1.3=default_hf64faad_0 172 | libcrc32c=1.1.2=h0e60522_0 173 | libcurl=8.7.1=hd5e4a3a_0 174 | libdeflate=1.20=hcfcfb64_0 175 | libevent=2.1.12=h3671451_1 176 | libexpat=2.6.2=h63175ca_0 177 | libffi=3.4.2=h8ffe710_5 178 | libflac=1.4.3=h63175ca_0 179 | libgettextpo=0.22.5=h5728263_2 180 | libgettextpo-devel=0.22.5=h5728263_2 181 | libglib=2.80.0=h39d0aa6_4 182 | libgoogle-cloud=2.22.0=h9cad5c0_1 183 | libgoogle-cloud-storage=2.22.0=hb581fae_1 184 | libgrpc=1.62.1=h5273850_0 185 | libhwloc=2.9.3=default_haede6df_1009 186 | libiconv=1.17=hcfcfb64_2 187 | libintl=0.22.5=h5728263_2 188 | libintl-devel=0.22.5=h5728263_2 189 | libjpeg-turbo=3.0.0=hcfcfb64_1 190 | liblapack=3.9.0=22_win64_mkl 191 | libogg=1.3.4=h8ffe710_1 192 | libopus=1.3.1=h8ffe710_1 193 | libparquet=15.0.2=h7ec3a38_1_cpu 194 | libpng=1.6.43=h19919ed_0 195 | libprotobuf=4.25.3=h503648d_0 196 | libre2-11=2023.09.01=hf8d8778_2 197 | librosa=0.10.1=pyhd8ed1ab_0 198 | libsndfile=1.2.2=h81429f1_1 199 | libsodium=1.0.18=h8d14728_1 200 | libsqlite=3.45.2=hcfcfb64_0 201 | libssh2=1.11.0=h7dfc565_0 202 | libthrift=0.19.0=ha2b3283_1 203 | libtiff=4.6.0=hddb2be6_3 204 | libutf8proc=2.8.0=h82a8f57_0 205 | libuv=1.44.2=h2bbff1b_0 206 | libvorbis=1.3.7=h0e60522_0 207 | libwebp-base=1.3.2=hcfcfb64_1 208 | libxcb=1.15=hcd874cb_0 209 | libxml2=2.12.6=hc3477c8_1 210 | libxslt=1.1.39=h3df6e99_0 211 | libzlib=1.2.13=hcfcfb64_5 212 | libzopfli=1.0.3=h0e60522_0 213 | llvmlite=0.42.0=py312h7894644_1 214 | lxml=5.1.0=py312hd086842_0 215 | lz4-c=1.9.4=hcfcfb64_0 216 | m2w64-gcc-libgfortran=5.3.0=6 217 | m2w64-gcc-libs=5.3.0=7 218 | m2w64-gcc-libs-core=5.3.0=7 219 | m2w64-gmp=6.1.0=2 220 | m2w64-libwinpthread-git=5.0.0.4634.697f757=2 221 | mako=1.3.3=pyhd8ed1ab_0 222 | markdown=3.6=pyhd8ed1ab_0 223 | markdown-it-py=3.0.0=pyhd8ed1ab_0 224 | markupsafe=2.1.5=py312he70551f_0 225 | matplotlib=3.8.4=py312h2e8e312_0 226 | matplotlib-base=3.8.4=py312h26ecaf7_0 227 | matplotlib-inline=0.1.6=pyhd8ed1ab_0 228 | mdurl=0.1.2=pyhd8ed1ab_0 229 | mistune=3.0.2=pyhd8ed1ab_0 230 | mkl=2024.1.0=h66d3029_692 231 | ml-dtypes=0.3.2=pypi_0 232 | mlflow=2.11.3=h2e8e312_0 233 | mlflow-skinny=2.11.3=py312h2e8e312_0 234 | mlflow-ui=2.11.3=py312h2e8e312_0 235 | mpg123=1.32.6=h63175ca_0 236 | mpmath=1.3.0=py312haa95532_0 237 | msgpack-python=1.0.7=py312h0d7def4_0 238 | msys2-conda-epoch=20160418=1 239 | multidict=6.0.5=py312he70551f_0 240 | multiprocess=0.70.16=py312he70551f_0 241 | munkres=1.1.4=pyh9f0ad1d_0 242 | namex=0.0.7=pypi_0 243 | nbclient=0.10.0=pyhd8ed1ab_0 244 | nbconvert=7.16.3=hd8ed1ab_0 245 | nbconvert-core=7.16.3=pyhd8ed1ab_0 246 | nbconvert-pandoc=7.16.3=hd8ed1ab_0 247 | nbformat=5.10.4=pyhd8ed1ab_0 248 | nest-asyncio=1.6.0=pyhd8ed1ab_0 249 | networkx=3.3=pyhd8ed1ab_1 250 | nltk=3.8.1=pyhd8ed1ab_0 251 | notebook=7.1.2=pyhd8ed1ab_0 252 | notebook-shim=0.2.4=pyhd8ed1ab_0 253 | numba=0.59.1=py312h115d327_0 254 | numpy=1.26.4=py312h8753938_0 255 | openjpeg=2.5.2=h3d672ee_0 256 | openpyxl=3.1.2=py312he70551f_1 257 | openssl=3.2.1=hcfcfb64_1 258 | opt-einsum=3.3.0=pypi_0 259 | optree=0.11.0=pypi_0 260 | orc=2.0.0=heb0c069_0 261 | overrides=7.7.0=pyhd8ed1ab_0 262 | packaging=23.2=pyhd8ed1ab_0 263 | pandas=2.2.1=py312h2ab9e98_0 264 | pandoc=3.1.13=h57928b3_0 265 | pandocfilters=1.5.0=pyhd8ed1ab_0 266 | paramiko=3.4.0=pyhd8ed1ab_0 267 | parso=0.8.4=pyhd8ed1ab_0 268 | patsy=0.5.6=pyhd8ed1ab_0 269 | pcre2=10.43=h17e33f8_0 270 | pickleshare=0.7.5=py_1003 271 | pillow=10.3.0=py312h6f6a607_0 272 | pip=24.0=pyhd8ed1ab_0 273 | pkgutil-resolve-name=1.3.10=pyhd8ed1ab_1 274 | platformdirs=4.2.0=pyhd8ed1ab_0 275 | plotly=5.19.0=pyhd8ed1ab_0 276 | ply=3.11=pyhd8ed1ab_2 277 | pooch=1.8.1=pyhd8ed1ab_0 278 | proj=9.3.1=he13c7e8_0 279 | prometheus_client=0.20.0=pyhd8ed1ab_0 280 | prometheus_flask_exporter=0.23.0=pyhd8ed1ab_0 281 | prompt-toolkit=3.0.42=pyha770c72_0 282 | prompt_toolkit=3.0.42=hd8ed1ab_0 283 | protobuf=4.25.3=py312h5594109_0 284 | psutil=5.9.8=py312he70551f_0 285 | pthread-stubs=0.4=hcd874cb_1001 286 | pthreads-win32=2.9.1=hfa6e2cd_3 287 | pure_eval=0.2.2=pyhd8ed1ab_0 288 | pyarrow=15.0.2=py312h85e32bb_1_cpu 289 | pyarrow-hotfix=0.6=pyhd8ed1ab_0 290 | pycparser=2.22=pyhd8ed1ab_0 291 | pydeck=0.8.0=pyhd8ed1ab_0 292 | pygments=2.17.2=pyhd8ed1ab_0 293 | pynacl=1.5.0=py312hc560f31_3 294 | pyparsing=3.1.2=pyhd8ed1ab_0 295 | pyproj=3.6.1=py312hc725b1e_5 296 | pyqt=5.15.9=py312he09f080_5 297 | pyqt5-sip=12.12.2=py312h53d5487_5 298 | pyreadr=0.5.0=py312h56036e7_0 299 | pyshp=2.3.1=pyhd8ed1ab_0 300 | pysocks=1.7.1=pyh0701188_6 301 | pysoundfile=0.12.1=pyhd8ed1ab_0 302 | python=3.12.2=h2628c8c_0_cpython 303 | python-dateutil=2.9.0=pyhd8ed1ab_0 304 | python-fastjsonschema=2.19.1=pyhd8ed1ab_0 305 | python-json-logger=2.0.7=pyhd8ed1ab_0 306 | python-tzdata=2024.1=pyhd8ed1ab_0 307 | python-xxhash=3.4.1=py312he70551f_0 308 | python_abi=3.12=4_cp312 309 | pytorch=2.2.2=py3.12_cpu_0 310 | pytorch-mutex=1.0=cpu 311 | pytz=2024.1=pyhd8ed1ab_0 312 | pywavelets=1.4.1=py312ha90f08f_1 313 | pywin32=306=py312h53d5487_2 314 | pywin32-on-windows=0.1.0=pyh07e9846_2 315 | pywinpty=2.0.13=py312h53d5487_0 316 | pyyaml=6.0.1=py312he70551f_1 317 | pyzmq=25.1.2=py312h1ac6f91_0 318 | qt-main=5.15.8=hcef0176_21 319 | qtconsole-base=5.5.1=pyha770c72_0 320 | qtpy=2.4.1=pyhd8ed1ab_0 321 | querystring_parser=1.2.4=py_0 322 | rav1e=0.6.6=h975169c_2 323 | re2=2023.09.01=hd3b24a8_2 324 | referencing=0.34.0=pyhd8ed1ab_0 325 | regex=2023.12.25=py312he70551f_0 326 | requests=2.31.0=pyhd8ed1ab_0 327 | retrying=1.3.3=py_2 328 | rfc3339-validator=0.1.4=pyhd8ed1ab_0 329 | rfc3986-validator=0.1.1=pyh9f0ad1d_0 330 | rich=13.7.1=pyhd8ed1ab_0 331 | rpds-py=0.18.0=py312hfccd98a_0 332 | safetensors=0.4.2=py312hfccd98a_0 333 | scikit-image=0.22.0=py312h2ab9e98_2 334 | scikit-learn=1.4.1.post1=py312hcacafb1_0 335 | scipy=1.13.0=py312h8753938_0 336 | seaborn=0.13.2=hd8ed1ab_0 337 | seaborn-base=0.13.2=pyhd8ed1ab_0 338 | send2trash=1.8.3=pyh5737063_0 339 | setuptools=69.2.0=pyhd8ed1ab_0 340 | shapely=2.0.3=py312h7d70906_0 341 | sip=6.7.12=py312h53d5487_0 342 | six=1.16.0=pyh6c4a22f_0 343 | smmap=5.0.0=pyhd8ed1ab_0 344 | snappy=1.1.10=hfb803bf_1 345 | sniffio=1.3.1=pyhd8ed1ab_0 346 | soupsieve=2.5=pyhd8ed1ab_1 347 | soxr=0.1.3=hcfcfb64_3 348 | soxr-python=0.3.7=py312ha90f08f_0 349 | sqlalchemy=2.0.29=py312he70551f_0 350 | sqlite=3.45.2=hcfcfb64_0 351 | sqlparse=0.4.4=pyhd8ed1ab_0 352 | stack_data=0.6.2=pyhd8ed1ab_0 353 | statsmodels=0.14.1=py312ha90f08f_0 354 | streamlit=1.33.0=pyhd8ed1ab_1 355 | svt-av1=1.7.0=h63175ca_0 356 | sympy=1.12=py312haa95532_0 357 | tbb=2021.11.0=h91493d7_1 358 | tenacity=8.2.3=pyhd8ed1ab_0 359 | tensorboard=2.16.2=pypi_0 360 | tensorboard-data-server=0.7.2=pypi_0 361 | tensorflow=2.16.1=pypi_0 362 | tensorflow-intel=2.16.1=pypi_0 363 | termcolor=2.4.0=pypi_0 364 | terminado=0.18.1=pyh5737063_0 365 | threadpoolctl=3.4.0=pyhc1e730c_0 366 | tifffile=2024.2.12=pyhd8ed1ab_0 367 | tinycss2=1.2.1=pyhd8ed1ab_0 368 | tk=8.6.13=h5226925_1 369 | tokenizers=0.15.2=py312h7ac22d7_0 370 | toml=0.10.2=pyhd8ed1ab_0 371 | tomli=2.0.1=pyhd8ed1ab_0 372 | toolz=0.12.1=pyhd8ed1ab_0 373 | tornado=6.4=py312he70551f_0 374 | tqdm=4.66.2=pyhd8ed1ab_0 375 | traitlets=5.14.2=pyhd8ed1ab_0 376 | transformers=4.39.3=pyhd8ed1ab_0 377 | types-python-dateutil=2.9.0.20240316=pyhd8ed1ab_0 378 | typing-extensions=4.11.0=hd8ed1ab_0 379 | typing_extensions=4.11.0=pyha770c72_0 380 | typing_utils=0.1.0=pyhd8ed1ab_0 381 | tzdata=2024a=h0c530f3_0 382 | tzlocal=5.2=py312h2e8e312_0 383 | ucrt=10.0.22621.0=h57928b3_0 384 | uri-template=1.3.0=pyhd8ed1ab_0 385 | urllib3=2.2.1=pyhd8ed1ab_0 386 | validators=0.28.0=pyhd8ed1ab_0 387 | vc=14.3=hcf57466_18 388 | vc14_runtime=14.38.33130=h82b7239_18 389 | vs2015_runtime=14.38.33130=hcb4865c_18 390 | waitress=2.1.2=pyhd8ed1ab_0 391 | watchdog=4.0.0=py312h2e8e312_0 392 | wcwidth=0.2.13=pyhd8ed1ab_0 393 | webcolors=1.13=pyhd8ed1ab_0 394 | webencodings=0.5.1=pyhd8ed1ab_2 395 | websocket-client=1.7.0=pyhd8ed1ab_0 396 | werkzeug=3.0.2=pyhd8ed1ab_0 397 | wheel=0.43.0=pyhd8ed1ab_1 398 | widgetsnbextension=4.0.10=pyhd8ed1ab_0 399 | win_inet_pton=1.1.0=pyhd8ed1ab_6 400 | winpty=0.4.3=4 401 | wrapt=1.16.0=pypi_0 402 | xorg-libxau=1.0.11=hcd874cb_0 403 | xorg-libxdmcp=1.1.3=hcd874cb_0 404 | xxhash=0.8.2=hcfcfb64_0 405 | xyzservices=2024.4.0=pyhd8ed1ab_0 406 | xz=5.2.6=h8d14728_0 407 | yaml=0.2.5=h8ffe710_2 408 | yarl=1.9.4=py312he70551f_0 409 | zeromq=4.3.5=h63175ca_1 410 | zfp=1.0.1=h63175ca_0 411 | zipp=3.17.0=pyhd8ed1ab_0 412 | zlib-ng=2.0.7=hcfcfb64_0 413 | zstd=1.5.5=h12be248_0 414 | --------------------------------------------------------------------------------