{"id":29643364,"url":"https://github.com/leriomaggio/develer-data-science","last_synced_at":"2025-07-21T23:32:18.192Z","repository":{"id":40630372,"uuid":"153104359","full_name":"leriomaggio/develer-data-science","owner":"leriomaggio","description":"Deep dive into Data Science with Python @ Develer","archived":false,"fork":false,"pushed_at":"2023-10-03T21:54:16.000Z","size":19212,"stargazers_count":6,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-05T16:41:24.520Z","etag":null,"topics":["data-science","deep-learning","keras","keras-tensorflow","lecture-notes","machine-learning","numpy","python","python3","scikit-learn","tutorial"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leriomaggio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-15T11:52:59.000Z","updated_at":"2022-06-27T06:51:42.000Z","dependencies_parsed_at":"2022-09-08T21:51:10.314Z","dependency_job_id":null,"html_url":"https://github.com/leriomaggio/develer-data-science","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/leriomaggio/develer-data-science","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leriomaggio%2Fdeveler-data-science","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leriomaggio%2Fdeveler-data-science/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leriomaggio%2Fdeveler-data-science/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leriomaggio%2Fdeveler-data-science/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leriomaggio","download_url":"https://codeload.github.com/leriomaggio/develer-data-science/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leriomaggio%2Fdeveler-data-science/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266403053,"owners_count":23923403,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-21T11:47:31.412Z","response_time":64,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-science","deep-learning","keras","keras-tensorflow","lecture-notes","machine-learning","numpy","python","python3","scikit-learn","tutorial"],"created_at":"2025-07-21T23:32:17.102Z","updated_at":"2025-07-21T23:32:18.164Z","avatar_url":"https://github.com/leriomaggio.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Develer turns to Data Science\n\n## Lecture notes for the \"Data Science, the Pythonic way\" @ [Develer](https://www.develer.com/)\n\n\u003cimg src=\"http://bit.ly/develer_logo\" title=\"Develer Logo\" width=\"20%\" /\u003e\n\n### Author: Valerio Maggio\n\n#### _PostDoc Data Scientist @ FBK/MPBA_\n\n#### Contacts:\n\n\u003ctable style=\"border: 0px; display: inline-table\"\u003e\n    \u003ctbody\u003e\n        \u003ctr style=\"border: 0px;\"\u003e\n            \u003ctd style=\"border: 0px;\"\u003e\n                \u003cimg src=\"images/twitter_small.png\" style=\"display: inline-block;\" /\u003e\n                \u003ca href=\"http://twitter.com/leriomaggio\" target=\"\\_blank\"\u003e@leriomaggio\u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd style=\"border: 0px;\"\u003e\n                \u003cimg src=\"images/linkedin_small.png\" style=\"display: inline-block;\" /\u003e\n                \u003ca href=\"it.linkedin.com/in/valeriomaggio\" target=\"\\_blank\"\u003evaleriomaggio\u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd style=\"border: 0px;\"\u003e\n                \u003cimg src=\"images/gmail_small.png\" style=\"display: inline-block;\" /\u003e\n                valeriomaggio_at_gmail_dot_com\n            \u003c/td\u003e\n       \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n# Materials:\n\n![github](./images/github.jpg)\n\n```shell\ngit clone https://github.com/leriomaggio/develer-data-science.git\n```\n\n# Outline at a glance:\n(from _apprentice_ to _doctor strange_)\n\n- **Level I**) _Apprentice_:  **Pythonic tools for Data Science**\n\n    * _Dev Tools_ for Data Scientist and Jupyter notebooks\n    * Numerical computation in Python: `numpy`\n    * Working with data: `pandas`\n\n\n- **Level II**) _Alchemist_: **Data Visualisation**\n\n    * Basic principles of data visualisation\n    * Introduction to `matplotlib`\n    * interactive data visualisation using `bokeh`\n\n\n- **Level III**) _Mage_: **Crash course on Machine Learning**\n\n    * What is _Machine Learning_\n    * Introduction to `sklearn`\n    * _Supervised_ and _**Un**supervised_ Machine learning\n    * Robust Machine Learning: _selection bias and cross-validation_\n\n\n- **Level IV**) _Arch-Mage_ : **Deep Learning \u0026 Pythonic perspectives**\n    * What is _Deep Learning_\n    * Deep Learning frameworks\n    * Introduction to Keras\n\n### Description\n\nThe course will be organised in **four** different parts,\nmostly covering the basics (plus some more advanced topics)\nrelated to Machine Learning and Data Science.\n\nWe will start by introducing the basics of data science in Python,\nand the (development) tools and frameworks to be used.\nThen we will start working with real data (in different formats)\nto have a very general feeling of what does it _mean_ to be\na _data scientist_. There will also be a section specifically\nfocused on basic principles (and tools) of\ndata visualisation.\nFinally, more advanced concepts will be introduced.\nIn particular, a general introduction to Machine Learning models\nand settings (i.e. _supervised_ and _unsupervised_) will be\nprovided, along with a glimpse of Deep learning models and\nframeworks.\n\nAll these parts will be presented always considering the\nperspective of the developer and practitioner who wants to\nlearn (and understand) _Data Science_ in a very practical way.\nFor this aim, the materials will contain lots of\nexercises and challenges along the way to test your\nskills.\n\n---\n\n# Technical Requirements\n\nThis tutorial requires the following packages:\n\n- Python version 3.6\n    - Python 3.4+ should be fine as well\n    - likely Python 2.7 would be also fine, but *who knows*? :P\n- `numpy`: http://www.numpy.org/\n- `scipy`: http://www.scipy.org/\n- `matplotlib`: http://matplotlib.org/\n- `pandas`: http://pandas.pydata.org\n- `scikit-learn` : http://scikit-learn.org\n- `jupyter` \u0026 `notebook`: http://jupyter.org\n\nPlus - for the last Deep learning section:\n- `keras`: http://keras.io\n- `tensorflow`: https://www.tensorflow.org\n- (optional) `torch`: http://pytorch.org\n\nThe easiest way to get (most of) these is to use an all-in-one installer\nsuch as [Anaconda](https://www.anaconda.com/download/) from Continuum,\nwhich is available for multiple computer platforms, namely Linux,\nWindows, and OSX.\n\n---\n\n### Python Version\n\nI'm currently running this tutorial with **Python 3** on **Anaconda**\n\n\n```shell\n$ python --version\nPython 3.6.6\n```\n\n---\n\n# Accessing the materials\n\nIf you want to access the materials, you have several options:\n\n## Jupyter Notebook\n\nMost of the materials in this course is provided as a collection of\nJupyter Notebooks.\n\nIn case you don't know **what is** a Jupyter notebook, here is a good\nreference for a quick introduction:\n[Jupyter Notebook Beginner Guide](https://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/what_is_jupyter.html).\n\nOn the other hand, if you also want to know (_and you should_) **what is NOT**\na Jupyter notebook - *spoiler alert:* **it is NOT an IDE** -\nhere is a very nice reference:\n\n\u0026rightarrow; [I Don't like Notebooks,](https://twitter.com/joelgrus/status/1033035196428378113)\nby _Joel Grus_ @ JupyterCon 2018.\n\nIf you **already have all the environment setup** on your machine,\nall you need to do is to run the Jupyter notebook server:\n\n```shell\n$ jupyter notebook\n```\n\nAlternatively, I suggest you to try the new **Jupyter Lab** environment:\n```shell\n$ jupyter lab\n```\n\n**NOTE**: Before running Jupyter server, it is mandatory to enable\nthe (Python) virtual environment.\n\nPlease refer to the section [Setting the Environment](#setup) for\ndetailed instructions on how to install all the required\npackages and libraries.\n\n\n## Binder\n\n(Consider this option only if your WiFi is stable)\n\nIf you don't want the hassle of setting up all the environment and\nlibraries on your machine, or simply you want to avoid doing\n\"_too much computation_\" on your hardware setup,\nI strongly suggest you to use the **Binder** service.\n\nThe primary goal of Binder is to turn a GitHub repo into a collection of\ninteractive Jupyter notebooks\n\nTo start using Binder, just click on the button below:\n[![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/leriomaggio/develer-data-science/master)\n\n## Google Colaboratory\n\n[Colaboratory](https://colab.research.google.com/) is a free Jupyter\nnotebook environment that\nrequires no setup and runs entirely in the Google cloud.\nMoreover, **GPU** and **TPU** runtime environments are available,\nand completely for free.\n(This last option will be worthwhile mentioning in the very\nlast part of the course, when we will talk\nabout Deep Learning networks).\n\n[Here](https://colab.research.google.com/notebooks/welcome.ipynb)\nis an overview of the main features offered by Colaboratory.\n\nTo start using Colaboratory, just click on the button below:\n[![Colab](https://img.shields.io/badge/launch-colaboratory-yellow.svg)](https://colab.research.google.com/)\n\n---\n\n\u003ca name='setup'\u003e\u003c/a\u003e\n# Setting the Environment\n\nIn this repository, files to install the required packages are provided.\nThe first step to setup the environment is to create a\nPython [Virtual Environment](https://docs.python.org/3.6/tutorial/venv.html).\n\nWhether you are using [Anaconda](https://www.anaconda.com/download/)\nPython Distribution or the **Standard\nPython framework** (from [python.org](https://www.python.org/downloads/)),\nbelow are reported the instructions for the two cases, respectively.\n\n## (a) Conda Environment\n\nThis repository includes a `conda-environment.yml` file that is necessary\nto re-create the Conda virtual environment.\n\nTo re-create the virtual environments:\n\n```shell\n$ conda env create -f conda-environment.yml\n```\n\nThen, to **activate** the virtual environment:\n\n```shell\n$ conda activate develer-science\n```\n\n## (b) `pyenv` \u0026 `virtualenv`\n\nAlternatively, if you don't want to install (yet) another Python\ndistribution on your machine, or you prefer not to use the full-stack Anaconda\nPython, I strongly suggest to give a try to the new `pyenv` project.\n\n### 1. Setup `pyenv`\n\n`pyenv` is a new package that lets you easily switch between multiple\nversions of Python.\nIt is simple, unobtrusive, and follows the UNIX tradition of single-purpose\ntools that do one thing well.\n\nTo **setup** `pyenv`, please follow the instructions reported on the\n[GitHub Repository](https://github.com/pyenv/pyenv) of the project,\naccording to the specific platform and operating system.\n\nThere exists a `pyenv` plugin named `pyenv-virtualenv` which comes with various\nfeatures to help `pyenv` users to manage virtual environments created by\n`virtualenv` or Anaconda.\n\n### 2. Installing `pyenv-virtualenv`\n\nI would recommend to install `pyenv-virtualenv` as reported in\nthe official\n[documentation](https://github.com/pyenv/pyenv-virtualenv/blob/master/README.md).\n\n### 3. Setting up the virtual environment\n\nOnce `pyenv` and `pyenv-virtualenv` have been correctly installed and\nconfigured, these are the instructions to\nset up the virtual environment for this tutorial:\n\n```shell\n$ pyenv install 3.6.6  # downloads and enables Python 3.6\n$ pyenv virtualenv 3.6.6 develer-science  # create virtual env using Py3.6\n$ pyenv activate develer-science  # activate the environment\n$ pip install -r requirements.txt  # install requirements\n\n```\n\n### Installing Jupyter Kernel (Optional)\n\nAll the notebooks in this tutorial have been saved using a Jupyter Kernel\ndefined on the created virtual environment, named \"Python 3.6 (DL Keras TF)\".\n\nIn case you got a warning of _non-existent kernel_ when you open the\nnotebooks on your machine, you need to create the corresponding\n`IPython` kernel:\n\n```shell\n$ python -m ipykernel install --user --name develer-science --display-name \"Python 3.6 (Develer Science)\"\n```\n\n---\n\n## Test if everything is up\u0026running\n\n### 1. Check import\n\n\n```Python\n\u003e\u003e\u003e import numpy as np\n\u003e\u003e\u003e import scipy as sp\n\u003e\u003e\u003e import pandas as pd\n\u003e\u003e\u003e import matplotlib.pyplot as plt\n\u003e\u003e\u003e import sklearn\n\u003e\u003e\u003e import keras\nUsing TensorFlow backend.\n```\n\n### 2. Check installed Versions\n\n\n```Python\n\u003e\u003e\u003e import numpy\n\u003e\u003e\u003e print('numpy:', numpy.__version__)\n\u003e\u003e\u003e import scipy\n\u003e\u003e\u003e print('scipy:', scipy.__version__)\n\u003e\u003e\u003e import matplotlib\n\u003e\u003e\u003e print('matplotlib:', matplotlib.__version__)\n\u003e\u003e\u003e import sklearn\n\u003e\u003e\u003e print('scikit-learn:', sklearn.__version__)\n```\n```\n    numpy: 1.15.2\n    scipy: 1.1.0\n    matplotlib: 3.0.0\n    scikit-learn: 0.20.0\n```\n\n\u003cbr\u003e\n\u003ch2 style=\"text-align: center;\"\u003eIf everything worked till down here, you're ready to start!\u003c/h2\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleriomaggio%2Fdeveler-data-science","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleriomaggio%2Fdeveler-data-science","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleriomaggio%2Fdeveler-data-science/lists"}