{"id":13575185,"url":"https://github.com/comet-ml/kangas","last_synced_at":"2025-05-14T06:13:07.487Z","repository":{"id":62128398,"uuid":"550324241","full_name":"comet-ml/kangas","owner":"comet-ml","description":"🦘 Explore multimedia datasets at scale","archived":false,"fork":false,"pushed_at":"2024-12-07T13:52:25.000Z","size":42250,"stargazers_count":1057,"open_issues_count":1,"forks_count":51,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-05-08T07:54:34.759Z","etag":null,"topics":["data-analysis","data-exploration","dataframe","datagrid","machine-learning"],"latest_commit_sha":null,"homepage":"https://github.com/comet-ml/kangas/wiki","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/comet-ml.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-10-12T15:10:04.000Z","updated_at":"2025-04-26T23:09:22.000Z","dependencies_parsed_at":"2023-02-19T11:31:33.112Z","dependency_job_id":"58ec5bbb-1d58-4344-9fe5-493ae7a207a8","html_url":"https://github.com/comet-ml/kangas","commit_stats":{"total_commits":905,"total_committers":10,"mean_commits":90.5,"dds":"0.23425414364640884","last_synced_commit":"1b68b0eb56a28fd69e02c2bda80cce417ed1f83f"},"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comet-ml%2Fkangas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comet-ml%2Fkangas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comet-ml%2Fkangas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comet-ml%2Fkangas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/comet-ml","download_url":"https://codeload.github.com/comet-ml/kangas/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254081263,"owners_count":22011592,"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","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-analysis","data-exploration","dataframe","datagrid","machine-learning"],"created_at":"2024-08-01T15:00:58.868Z","updated_at":"2025-05-14T06:13:07.467Z","avatar_url":"https://github.com/comet-ml.png","language":"Jupyter Notebook","funding_links":[],"categories":["Jupyter Notebook","Industry Strength Visualisation"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/comet-ml/kangas/main/imgs/kangas-datagrid.png\"\u003e\u003cbr\u003e\n\u003c/div\u003e\n\n-----------------\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://badge.fury.io/py/kangas\"\u003e\n        \u003cimg src=\"https://badge.fury.io/py/kangas.png\" alt=\"PyPI version\" height=\"18\"\u003e\n    \u003c/a\u003e\n    \u003ca rel=\"nofollow\" href=\"https://opensource.org/licenses/Apache-2.0\"\u003e\n        \u003cimg alt=\"GitHub\" src=\"https://img.shields.io/badge/License-Apache%202.0-blue.svg\"\u003e\n    \u003c/a\u003e\n    \u003ca rel=\"nofollow\" href=\"https://colab.research.google.com/github/comet-ml/kangas/blob/main/notebooks/DataGrid-Getting%20Started.ipynb\"\u003e\n        \u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://kangas.comet.com?datagrid=/data/coco-500.datagrid\" rel=\"nofollow\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Kangas-Live%20Demo-blue.svg\" alt=\"Kangas Live Demo\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/comet-ml/kangas/wiki\" rel=\"nofollow\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Kangas-Docs-blue.svg\" alt=\"Kangas Documentation\"\u003e\n    \u003c/a\u003e\n    \u003ca rel=\"nofollow\" href=\"https://pepy.tech/project/kangas\"\u003e\n        \u003cimg style=\"max-width: 100%;\" data-canonical-src=\"https://pepy.tech/badge/kangas\" alt=\"Downloads\"  src=\"https://camo.githubusercontent.com/708e470ec83922035f2189544eb968c8c5bba5c8623b0ebb9cb88c5c370766c4/68747470733a2f2f706570792e746563682f62616467652f6b616e676173\"\u003e\n    \u003c/a\u003e\n    \u003ca rel=\"nofollow\" href=\"https://doi.org/10.5281/zenodo.7410884\"\u003e\n        \u003cimg src=\"https://zenodo.org/badge/DOI/10.5281/zenodo.7410884.svg\" alt=\"DOI\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n# Kangas: Explore Multimedia Datasets at Scale :kangaroo:\n\nKangas is a tool for exploring, analyzing, and visualizing large-scale multimedia data. It provides a straightforward Python API\nfor logging large tables of data, along with an intuitive visual interface for performing complex queries against your dataset.\n\nThe key features of Kangas include:\n\n- **Scalability**. Kangas DataGrid, the fundamental class for representing datasets, can easily store millions of rows of data.\n- **Performance**. Group, sort, and filter across millions of data points in seconds with a simple, fast UI.\n- **Interoperability**. Any data, any environment. Kangas can run in a notebook or as a standalone app, both locally and remotely.\n- **Integrated computer vision support**. Visualize and filter bounding boxes, labels, and metadata without any extra setup.\n\nYou can access a live demo of Kangas at \u003ca href=\"https://kangas.comet.com?datagrid=/data/coco-500.datagrid\"\u003ekangas.comet.com\u003c/a\u003e. \n\n## Getting Started\n\nKangas is accessible as a Python library via pip\n```\npip install kangas\n```\n\nOnce installed, there are many ways to load or create a DataGrid. \n\nWithout writing any code, you can even download a DataGrid and begin exploring the data. At the console:\n\n```\nkangas server https://github.com/caleb-kaiser/kangas_examples/raw/master/coco-500.datagrid.zip\n```\n\nThat's it!\n\nIn the next example, we load a publicly available DataGrid file, but the Kangas API also provides methods for ingesting CSVs, Pandas DataFrames, and for manually constructing a new DataGrid:\n\n```python\nimport kangas as kg\n\n# Load an existing DataGrid\ndg = kg.read_datagrid(\"https://github.com/caleb-kaiser/kangas_examples/raw/master/coco-500.datagrid.zip\")\n```\n\nAfter your DataGrid is initialized, you can render it within the Kangas Viewer directly from Python:\n\n```python\ndg.show()\n```\n\u003cimg width=\"1789\" alt=\"image\" src=\"https://user-images.githubusercontent.com/42076840/197875668-5519d504-2209-472f-952e-ed09554ecb7a.png\"\u003e\n\nFrom the Kangas Viewer, you can group, sort, and filter data. In addition, Kangas will do its best to parse any metadata attached to your assets. For example, if you're using the COCO-500 DataGrid from the quickstart above, Kangas will automatically parse labels and scores for each image:\n\n\u003cimg src=\"https://github.com/caleb-kaiser/kangas_examples/blob/master/Oct-25-2022%2016-43-56.gif\"\u003e\n\nAnd voil\u0026agrave;! Now you're started using Kangas. \n\n### Pandas DataFrames\n\nKangas can also read Pandas DataFrame objects directly:\n\n```python\nimport kangas as kg\nimport pandas as pd\n\ndf = pd.DataFrame({\"hidden_layer_size\": [8, 16, 64], \"loss\": [0.97, 0.53, 0.12]})\ndg = kg.read_dataframe(df)\n```\n### HuggingFace Datasets\n\nHuggingFace's datasets can also be loaded into DataGrid directly because they use\nrows of dictionaries, and images are represented by PIL images. DataGrid will\nautomatically convert PIL images into a [Kangas Image](https://github.com/comet-ml/kangas/wiki/Image#image):\n\n```python\nimport kangas as kg\nfrom datasets import load_dataset\n\ndataset = load_dataset(\"beans\", split=\"train\")\ndg = kg.DataGrid(dataset)\n```\n\n### Parquet files\n\n\u003e **Note**: You will need to have pyarrow installed to read parquet files.\n\n```python\nimport kangas as kg\n\ndg = kg.read_parquet(\"https://github.com/Teradata/kylo/raw/master/samples/sample-data/parquet/userdata5.parquet\")\n```\n\nIf you'd like to explore further, take a look at our example notebooks below:\n\n## Documentation\n\n1. \u003ca href=\"https://github.com/comet-ml/kangas/wiki\"\u003eDocumentation Homepage\u003c/a\u003e\n2. \u003ca href=\"https://github.com/comet-ml/kangas/blob/main/notebooks/DataGrid-Getting%20Started.ipynb\"\u003eQuickstart Notebook\u003c/a\u003e \u003ca href=\"https://colab.research.google.com/github/comet-ml/kangas/blob/main/notebooks/DataGrid-Getting%20Started.ipynb\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\"\u003e\u003c/a\u003e\n3. \u003ca href=\"https://github.com/comet-ml/kangas/blob/main/notebooks/Integrations.ipynb\"\u003eIntegrations Notebook\u003c/a\u003e \u003ca href=\"https://colab.research.google.com/github/comet-ml/kangas/blob/main/notebooks/Integrations.ipynb\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\"\u003e\u003c/a\u003e\n4. \u003ca href=\"https://github.com/comet-ml/kangas/blob/main/examples/mnist_script.py\"\u003e MNIST Classification Example\u003c/a\u003e\n\n## FAQ\n\n### Is Kangas ready for public use?\nKangas is currently in an open beta. We stress test Kangas heavily and often, and are confident in sharing with the public. That being said, it is a very young project, and there will be bugs and rough edges. Additionally, new features will be added at a fast pace, so if you find a bug or have a request, please do not hesitate to open a ticket or start a discussion.\n\n### Does Kangas support _____ system?\nKangas can be run as a standalone application on newer versions of Windows, MacOS, and most popular Linux distributions. In addition, Kangas can run remotely via Google Colab, or within any Jupyter notebook environment.\n\n### When should I use Kangas instead of _____?\n#### Pandas\nKangas and Pandas are complimentary tools. When you've wrangled your data into a Pandas DataFrame, Kangas can ingest that DataFrame via the `DataGrid.read_dataframe()` method, making it easy to visualize and explore your tabular data. Additionally, if your data is too large to process in Pandas or involves multimedia assets, Kangas is a strong alternative.\n\n#### Tensorboard\nTensorBoard is one of several tools (including Kangas parent organization, [Comet](https://www.comet.com/site/?utm_source=kangas\u0026utm_medium=referral\u0026utm_campaign=kangas_datagrids_2022\u0026utm_content=github) that specializes in experiment management and monitoring). Like Kangas, it provides charting and visualizations out of the box, but is specifically designed for analyzing training workflows. Kangas, in contrast, is designed to analyze any dataset. For example, even if you use a tool like TensorBoard for analyzing training runs, you may still use Kangas before training for exploratory data analysis, or for prediction analysis post-deployment.\n\n### What is Kangas relationship with Comet?\nKangas is developed and maintained by the Research team at [Comet](https://www.comet.com/site/?utm_source=kangas\u0026utm_medium=referral\u0026utm_campaign=kangas_datagrids_2022\u0026utm_content=github). It began life as a prototype for Comet users who needed to visualize large computer vision datasets, and was later spun out into a standalone open source project. Kangas is and always will be free and open source software, and we are more than happy to accept community contributions.\n\n## Contributing\nKangas has only recently been released, and as such, we don't have much of a formal process for contributions. If you have an idea or would like to make a contribution, we recommend opening a ticket describing your proposed contribution so that we can collaborate directly. We love working with community contributors.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomet-ml%2Fkangas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcomet-ml%2Fkangas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomet-ml%2Fkangas/lists"}