hypertools

A Python toolbox for gaining geometric insights into high-dimensional data

https://github.com/contextlab/hypertools

Science Score: 46.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
    4 of 22 committers (18.2%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (19.2%) to scientific vocabulary

Keywords

data-visualization data-wrangling high-dimensional-data python text-vectorization time-series topic-modeling visualization

Keywords from Contributors

docstring memory tensor parsing datetimes closember pandas-profiling pandas-dataframe html-report exploratory-data-analysis
Last synced: 6 months ago · JSON representation

Repository

A Python toolbox for gaining geometric insights into high-dimensional data

Basic Info
Statistics
  • Stars: 1,855
  • Watchers: 59
  • Forks: 163
  • Open Issues: 67
  • Releases: 22
Topics
data-visualization data-wrangling high-dimensional-data python text-vectorization time-series topic-modeling visualization
Created over 9 years ago · Last pushed 7 months ago
Metadata Files
Readme Contributing License

readme.md

Hypertools logo

"To deal with hyper-planes in a 14 dimensional space, visualize a 3D space and say 'fourteen' very loudly. Everyone does it." - Geoff Hinton

Hypertools example

Overview

HyperTools is designed to facilitate dimensionality reduction-based visual explorations of high-dimensional data. The basic pipeline is to feed in a high-dimensional dataset (or a series of high-dimensional datasets) and, in a single function call, reduce the dimensionality of the dataset(s) and create a plot. The package is built atop many familiar friends, including matplotlib, scikit-learn and seaborn. Our package was recently featured on Kaggle's No Free Hunch blog. For a general overview, you may find this talk useful (given as part of the MIND Summer School at Dartmouth).

Try it!

Click the badge to launch a binder instance with example uses:

Binder

or

Check the repo of Jupyter notebooks from the HyperTools paper.

Installation

To install the latest stable version run:

pip install hypertools

To install the latest unstable version directly from GitHub, run:

pip install -U git+https://github.com/ContextLab/hypertools.git

Or alternatively, clone the repository to your local machine:

git clone https://github.com/ContextLab/hypertools.git

Then, navigate to the folder and type:

pip install -e .

(These instructions assume that you have pip installed on your system)

NOTE: If you have been using the development version of 0.5.0, please clear your data cache (/Users/yourusername/hypertools_data).

Requirements

  • python>=3.6
  • PPCA>=0.0.2
  • scikit-learn>=0.24.0
  • pandas>=0.18.0
  • seaborn>=0.8.1
  • matplotlib>=1.5.1
  • scipy>=1.0.0
  • numpy>=1.10.4
  • umap-learn>=0.4.6
  • requests
  • pytest (for development)
  • ffmpeg (for saving animations)

Documentation

Check out our readthedocs page for further documentation, complete API details, and additional examples.

Citing

We wrote a short JMLR paper about HyperTools, which you can read here, or you can check out a (longer) preprint here. We also have a repository with example notebooks from the paper here.

Please cite as:

Heusser AC, Ziman K, Owen LLW, Manning JR (2018) HyperTools: A Python toolbox for gaining geometric insights into high-dimensional data. Journal of Machine Learning Research, 18(152): 1--6.

Here is a bibtex formatted reference:

bibtex @ARTICLE {, author = {Andrew C. Heusser and Kirsten Ziman and Lucy L. W. Owen and Jeremy R. Manning}, title = {HyperTools: a Python Toolbox for Gaining Geometric Insights into High-Dimensional Data}, journal = {Journal of Machine Learning Research}, year = {2018}, volume = {18}, number = {152}, pages = {1-6}, url = {http://jmlr.org/papers/v18/17-434.html} }

Contributing

Join the chat at https://gitter.im/hypertools/Lobby

If you'd like to contribute, please first read our Code of Conduct.

For specific information on how to contribute to the project, please see our Contributing page.

Testing

Build Status

To test HyperTools, install pytest (pip install pytest) and run pytest in the HyperTools folder

Examples

See here for more examples.

Plot

python import hypertools as hyp hyp.plot(list_of_arrays, '.', group=list_of_labels)

Plot example

Align

python import hypertools as hyp hyp.plot(list_of_arrays, align='hyper')

BEFORE

Align before example

AFTER

Align after example

Cluster

python import hypertools as hyp hyp.plot(array, '.', n_clusters=10)

Cluster Example

Describe

python import hypertools as hyp hyp.tools.describe(list_of_arrays, reduce='PCA', max_dims=14) Describe Example

Owner

  • Name: Contextual Dynamics Laboratory
  • Login: ContextLab
  • Kind: organization
  • Email: contextualdynamics@gmail.com
  • Location: Hanover, NH

Contextual Dynamics Laboratory at Dartmouth College

GitHub Events

Total
  • Release event: 1
  • Watch event: 43
  • Issue comment event: 1
  • Push event: 9
  • Pull request event: 4
  • Fork event: 3
  • Create event: 1
Last Year
  • Release event: 1
  • Watch event: 43
  • Issue comment event: 1
  • Push event: 9
  • Pull request event: 4
  • Fork event: 3
  • Create event: 1

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 1,503
  • Total Committers: 22
  • Avg Commits per committer: 68.318
  • Development Distribution Score (DDS): 0.341
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
andrewheusser a****r@g****m 991
paxtonfitzpatrick p****9@d****u 112
Kirsten Ziman k****n@g****m 105
Jeremy R. Manning j****g@d****u 85
“KirstensGitHub“ “****n@g****” 37
Kirsten j****6@g****m 37
Andy Heusser a****r@A****l 36
Andy Heusser a****r@a****u 28
Ryan Arredondo s****n@g****m 22
Leland McInnes l****s@g****m 12
Swaroop Guntupalli s****j@g****m 8
Chase Williams b****s@g****m 8
Aly Sivji a****i@g****m 6
Lucy Owen l****n@g****m 4
Taylor Miller t****r@h****m 3
Dave Willmer d****r@g****m 2
Stephanie Wright s****e@m****g 2
Feilong Ma m****g@g****m 1
cclauss c****s@b****h 1
Tim Gates t****s@i****m 1
ljchang l****g@d****u 1
matko.soric.at s****o@g****m 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 71
  • Total pull requests: 35
  • Average time to close issues: 9 months
  • Average time to close pull requests: 3 months
  • Total issue authors: 24
  • Total pull request authors: 13
  • Average comments per issue: 1.63
  • Average comments per pull request: 3.66
  • Merged pull requests: 31
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: about 4 hours
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 1.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jeremymanning (24)
  • andrewheusser (15)
  • paxtonfitzpatrick (9)
  • mhlr (3)
  • svadams (1)
  • logic1988 (1)
  • flashpixx (1)
  • jjstrydom (1)
  • hungtuchen (1)
  • lrq3000 (1)
  • manybooks (1)
  • rob-miller (1)
  • RobinYang125 (1)
  • themeditatingbrain (1)
  • matkosoric (1)
Pull Request Authors
  • paxtonfitzpatrick (17)
  • andrewheusser (6)
  • jeremymanning (3)
  • dwillmer (2)
  • terrafying (2)
  • ljchang (2)
  • feilong (1)
  • timgates42 (1)
  • Aylr (1)
  • cclauss (1)
  • alokkumary2j (1)
  • matkosoric (1)
  • lmcinnes (1)
Top Labels
Issue Labels
bug (11) enhancement (10) help wanted (7) easy(ish) (4) awesome (4) wish list (3) high priority (2) mozilla sprint (1) pie in the sky (1)
Pull Request Labels

Packages

  • Total packages: 3
  • Total downloads:
    • pypi 296 last-month
  • Total docker downloads: 990
  • Total dependent packages: 1
    (may contain duplicates)
  • Total dependent repositories: 72
    (may contain duplicates)
  • Total versions: 64
  • Total maintainers: 1
proxy.golang.org: github.com/contextlab/hypertools
  • Versions: 21
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 1.8%
Forks count: 2.3%
Average: 3.8%
Dependent packages count: 5.4%
Dependent repos count: 5.7%
Last synced: 6 months ago
proxy.golang.org: github.com/ContextLab/hypertools
  • Versions: 21
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 1.8%
Forks count: 2.3%
Average: 3.8%
Dependent packages count: 5.4%
Dependent repos count: 5.7%
Last synced: 6 months ago
pypi.org: hypertools

A python package for visualizing and manipulating high-dimensional data

  • Versions: 22
  • Dependent Packages: 1
  • Dependent Repositories: 72
  • Downloads: 296 Last month
  • Docker Downloads: 990
Rankings
Docker downloads count: 1.6%
Stargazers count: 1.6%
Dependent repos count: 1.8%
Forks count: 3.9%
Average: 4.7%
Downloads: 9.3%
Dependent packages count: 9.7%
Maintainers (1)
Last synced: 6 months ago

Dependencies

docs/doc_requirements.txt pypi
  • deepdish *
  • jupyter_client *
  • nbsphinx *
  • numpydoc *
  • sphinx ==2.3.0
  • sphinx-gallery *
  • sphinx_bootstrap_theme ==0.6.4
  • wikipedia *
requirements.txt pypi
  • PPCA >=0.0.2
  • matplotlib >=1.5.1
  • numpy >=1.10.4
  • pandas >=0.18.0
  • requests *
  • scikit-learn >=0.24
  • scipy >=1.0.0
  • seaborn >=0.8.1
  • umap-learn >=0.4.6