{"id":51468665,"url":"https://github.com/gperdrizet/datascience-devcontainer","last_synced_at":"2026-07-06T14:30:34.398Z","repository":{"id":365588627,"uuid":"1232089737","full_name":"gperdrizet/datascience-devcontainer","owner":"gperdrizet","description":"Containerized development environment for data science projects","archived":false,"fork":false,"pushed_at":"2026-06-18T01:15:44.000Z","size":10,"stargazers_count":0,"open_issues_count":0,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-18T03:14:52.145Z","etag":null,"topics":["data-science","jupyter","matplotlib","numpy","pandas","plotly","python","scikit-learn","scipy","seaborn","statsmodels","xgboost"],"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/gperdrizet.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-07T15:21:10.000Z","updated_at":"2026-06-18T01:15:48.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gperdrizet/datascience-devcontainer","commit_stats":null,"previous_names":["gperdrizet/datascience-devcontainer"],"tags_count":1,"template":true,"template_full_name":null,"purl":"pkg:github/gperdrizet/datascience-devcontainer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gperdrizet%2Fdatascience-devcontainer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gperdrizet%2Fdatascience-devcontainer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gperdrizet%2Fdatascience-devcontainer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gperdrizet%2Fdatascience-devcontainer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gperdrizet","download_url":"https://codeload.github.com/gperdrizet/datascience-devcontainer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gperdrizet%2Fdatascience-devcontainer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35195590,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-06T02:00:07.184Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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","jupyter","matplotlib","numpy","pandas","plotly","python","scikit-learn","scipy","seaborn","statsmodels","xgboost"],"created_at":"2026-07-06T14:30:33.398Z","updated_at":"2026-07-06T14:30:34.359Z","avatar_url":"https://github.com/gperdrizet.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Data science development environment\n\n[![Sync release](https://github.com/gperdrizet/datascience-devcontainer/actions/workflows/sync-release.yml/badge.svg)](https://github.com/gperdrizet/datascience-devcontainer/actions/workflows/sync-release.yml)\n[![Python](https://img.shields.io/badge/Python-3.12-3776AB?logo=python\u0026logoColor=white)](https://www.python.org/)\n[![scikit-learn](https://img.shields.io/badge/scikit--learn-latest-F7931E?logo=scikit-learn\u0026logoColor=white)](https://scikit-learn.org/)\n[![XGBoost](https://img.shields.io/badge/XGBoost-latest-189fdd)](https://xgboost.readthedocs.io/)\n[![Plotly](https://img.shields.io/badge/Plotly-latest-3F4F75?logo=plotly\u0026logoColor=white)](https://plotly.com/)\n[![CUDA](https://img.shields.io/badge/CUDA-12.8-76B900?logo=nvidia\u0026logoColor=white)](https://developer.nvidia.com/cuda-toolkit)\n[![Docker Pulls datascience-nvidia](https://img.shields.io/docker/pulls/gperdrizet/datascience-nvidia?label=datascience-nvidia\u0026logo=docker)](https://hub.docker.com/r/gperdrizet/datascience-nvidia)\n[![Docker Pulls datascience-cpu](https://img.shields.io/docker/pulls/gperdrizet/datascience-cpu?label=datascience-cpu\u0026logo=docker)](https://hub.docker.com/r/gperdrizet/datascience-cpu)\n[![Docker Pulls datascience-mac](https://img.shields.io/docker/pulls/gperdrizet/datascience-mac?label=datascience-mac\u0026logo=docker)](https://hub.docker.com/r/gperdrizet/datascience-mac)\n\nA ready-to-use data science environment for VS Code, designed for data science and ML bootcamp students. Covers data visualization, data cleaning, feature engineering, and traditional machine learning.\n\n## Requirements\n\n**All users**\n- [Docker Desktop](https://docs.docker.com/desktop/) (Windows / Mac) or [Docker Engine](https://docs.docker.com/engine/install/) (Linux)\n- [VS Code](https://code.visualstudio.com/) with the [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)\n\n**NVIDIA GPU users** (also required)\n- NVIDIA driver ≥570 ([download](https://www.nvidia.com/Download/index.aspx))\n- [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) *(Linux only, not needed on Windows)*\n\n\u003e **Mac users:** GPU acceleration (Metal/MPS) does not pass through to Docker containers. The Mac configuration uses native ARM64 CPU, no extra setup needed beyond Docker Desktop.\n\n## Quick start\n\n1. **Fork** this repository (click **Fork** at the top of this page)\n\n2. **Clone** your fork:\n   ```bash\n   git clone https://github.com/\u003cyour-username\u003e/datascience-devcontainer.git\n   ```\n\n3. **Open the folder in VS Code**, then open the Command Palette (`Ctrl+Shift+P` / `Cmd+Shift+P`) and run **Dev Containers: Open Folder in Container**\n\n   \u003e VS Code will ask which configuration to use, pick the one that matches your machine (see table below).\n\n4. **Verify** your setup by running `notebooks/environment_test.ipynb`\n\n## Which configuration should I use?\n\n| If you have... | Choose this |\n|----------------|-------------|\n| NVIDIA GPU (GTX 10xx / RTX / Quadro / Tesla) | **DataScience NVIDIA** |\n| Windows or Linux machine, no NVIDIA GPU | **DataScience CPU** |\n| Apple Silicon Mac (M1 / M2 / M3 / M4) | **DataScience Mac** |\n\nNot sure if your GPU is compatible? Check: [NVIDIA CUDA GPUs](https://developer.nvidia.com/cuda-gpus) (need compute capability ≥6.0).\n\n## Using as a template for new projects\n\nFork this repo once, then use it as a GitHub template to spin up new projects instantly.\n\n### One-time setup\n\n1. Go to your fork on GitHub\n2. Click **Settings** → scroll to **Template repository** → enable it\n\n### Creating a new project\n\n1. Go to your fork and click **Use this template** → **Create a new repository**\n2. Name your new repo and click **Create repository**\n3. Clone it and start working:\n   ```bash\n   git clone https://github.com/\u003cyour-username\u003e/my-new-project.git\n   ```\n\n4. **Clean it up** - remove anything that doesn't belong to your project:\n   - Update `README.md` to describe your project\n   - Delete unused devcontainer configs (e.g. if you only use CPU, remove `nvidia/` and `mac/`)\n   - Remove or replace `notebooks/environment_test.ipynb` with your own notebooks\n   - Delete test data from `data/`\n   ```bash\n   git add -A \u0026\u0026 git commit -m \"Initial project setup\" \u0026\u0026 git push\n   ```\n\n## Adding Python packages\n\n### Temporary (lost on container rebuild)\n\n```bash\npip install \u003cpackage-name\u003e\n```\n\n### Permanent (recommended)\n\n1. Create a `requirements.txt` in the repository root:\n   ```\n   lightgbm\n   shap\n   ```\n\n2. Add a `postCreateCommand` to the relevant `.devcontainer/*/devcontainer.json`:\n   ```json\n   \"postCreateCommand\": \"pip install -r requirements.txt\"\n   ```\n\n3. Rebuild the container (`Ctrl+Shift+P` → **Dev Containers: Rebuild Container**)\n\n## Keeping your fork updated\n\n```bash\n# Add upstream once\ngit remote add upstream https://github.com/gperdrizet/datascience-devcontainer.git\n\n# Pull in updates\ngit fetch upstream \u0026\u0026 git merge upstream/main\n```\n\n## What's included\n\n| Package | Purpose |\n|---------|---------|\n| numpy, pandas, scipy | Core data science stack |\n| scikit-learn, xgboost, statsmodels | Machine learning and statistics |\n| matplotlib, seaborn, plotly | Visualization |\n| optuna | Hyperparameter optimization |\n| jupyterlab | Interactive notebooks |\n| cupy-cuda12x | GPU-accelerated arrays (NVIDIA only) |\n| python-dotenv | Environment variable management |\n\n## GPU compatibility (NVIDIA)\n\nRequires compute capability ≥6.0 (Pascal / GTX 10xx or newer):\n\n| Architecture | Example GPUs | Compute Capability |\n|--------------|--------------|-------------------|\n| Pascal | GTX 1050–1080, Tesla P100 | 6.0–6.1 |\n| Volta | Tesla V100, Titan V | 7.0 |\n| Turing | RTX 2060–2080, GTX 1660 | 7.5 |\n| Ampere | RTX 3060–3090, A100 | 8.0–8.6 |\n| Ada Lovelace | RTX 4060–4090 | 8.9 |\n| Hopper | H100, H200 | 9.0 |\n| Blackwell | RTX 5070–5090, B100, B200 | 10.0 |\n\n## Project structure\n\n```\ndatascience-devcontainer/\n├── .devcontainer/\n│   ├── nvidia/\n│   │   └── devcontainer.json   # NVIDIA GPU configuration\n│   ├── cpu/\n│   │   └── devcontainer.json   # CPU configuration\n│   └── mac/\n│       └── devcontainer.json   # Mac (ARM64) configuration\n├── data/                       # Store datasets here\n├── notebooks/\n│   └── environment_test.ipynb  # Verify your setup\n├── .gitignore\n├── LICENSE\n└── README.md\n```\n\n## Troubleshooting\n\n| Problem | Solution |\n|---------|----------|\n| Docker won't start | Enable virtualization in BIOS / enable WSL2 on Windows |\n| Permission denied (Linux) | Add your user to the docker group, then log out and back in |\n| GPU not detected | Update NVIDIA drivers (≥570); Linux: install [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) |\n| Container build fails | Check your internet connection |\n| Module not found | Add the package to `requirements.txt` and rebuild the container |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgperdrizet%2Fdatascience-devcontainer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgperdrizet%2Fdatascience-devcontainer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgperdrizet%2Fdatascience-devcontainer/lists"}