{ "info": { "author": "Nikesh Bajaj", "author_email": "bajaj.nikey@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Signal Processing toolkit\n\n### Links: **[Github](https://github.com/Nikeshbajaj/spkit)** | **[PyPi - project](https://pypi.org/project/spkit/)**\n\n\n-----\n## Table of contents\n- [**Installation**](#installation)\n- [**Signal Processing & ML function list**](#functions-list)\n- [**Examples**](#examples)\n - [**Information Theory**](#information-theory)\n - [**Machine Learning**](#machine-learning)\n - [**ICA**](#ica)\n - [**LFSR**](#lfsr)\n-----\n\n\n## Installation\n\n**Requirement**: numpy, matplotlib, scipy.stats, scikit-learn\n\n### with pip\n\n```\npip install spkit\n```\n\n### Build from the source\nDownload the repository or clone it with git, after cd in directory build it from source with\n\n```\npython setup.py install\n```\n\n## Functions list\n#### Signal Processing Techniques\n**Information Theory functions** for real valued signals\n* Entropy : Shannon entropy, R\u00e9nyi entropy of order \u03b1, Collision entropy\n* Joint entropy\n* Conditional entropy\n* Mutual Information\n* Cross entropy\n* Kullback\u2013Leibler divergence\n* Computation of optimal bin size for histogram using FD-rule\n* Plot histogram with optimal bin size\n\n**Matrix Decomposition**\n* SVD\n* ICA using InfoMax, Extended-InfoMax, FastICA & **Picard**\n\n**Linear Feedback Shift Register**\n* pylfsr\n\n**Continuase Wavelet Transform** and other functions comming soon..\n\n#### Machine Learning models - with visualizations\n* Logistic Regression\n* Naive Bayes\n* Decision Trees\n* DeepNet (to be updated)\n\n\n# Examples\n## Information Theory\n### [View in notebook](https://nbviewer.jupyter.org/github/Nikeshbajaj/spkit/blob/master/notebooks/1.1_Entropy_Example.ipynb)\n\n```\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport spkit as sp\n\nx = np.random.rand(10000)\ny = np.random.randn(10000)\n\n#Shannan entropy\nH_x= sp.entropy(x,alpha=1)\nH_y= sp.entropy(y,alpha=1)\n\n#R\u00e9nyi entropy\nHr_x= sp.entropy(x,alpha=2)\nHr_y= sp.entropy(y,alpha=2)\n\nH_xy= sp.entropy_joint(x,y)\n\nH_x1y= sp.entropy_cond(x,y)\nH_y1x= sp.entropy_cond(y,x)\n\nI_xy = sp.mutual_Info(x,y)\n\nH_xy_cross= sp.entropy_cross(x,y)\n\nD_xy= sp.entropy_kld(x,y)\n\n\nprint('Shannan entropy')\nprint('Entropy of x: H(x) = ',H_x)\nprint('Entropy of y: H(y) = ',H_y)\nprint('-')\nprint('R\u00e9nyi entropy')\nprint('Entropy of x: H(x) = ',Hr_x)\nprint('Entropy of y: H(y) = ',Hr_y)\nprint('-')\nprint('Mutual Information I(x,y) = ',I_xy)\nprint('Joint Entropy H(x,y) = ',H_xy)\nprint('Conditional Entropy of : H(x|y) = ',H_x1y)\nprint('Conditional Entropy of : H(y|x) = ',H_y1x)\nprint('-')\nprint('Cross Entropy of : H(x,y) = :',H_xy_cross)\nprint('Kullback\u2013Leibler divergence : Dkl(x,y) = :',D_xy)\n\n\n\nplt.figure(figsize=(12,5))\nplt.subplot(121)\nsp.HistPlot(x,show=False)\n\nplt.subplot(122)\nsp.HistPlot(y,show=False)\nplt.show()\n```\n\n## ICA\n### [View in notebook](https://nbviewer.jupyter.org/github/Nikeshbajaj/spkit/blob/master/notebooks/1.2_ICA_Example.ipynb)\n```\nfrom spkit import ICA\nfrom spkit.data import load_data\nX,ch_names = load_data.eegSample()\n\nx = X[128*10:128*12,:]\nt = np.arange(x.shape[0])/128.0\n\nica = ICA(n_components=14,method='fastica')\nica.fit(x.T)\ns1 = ica.transform(x.T)\n\nica = ICA(n_components=14,method='infomax')\nica.fit(x.T)\ns2 = ica.transform(x.T)\n\nica = ICA(n_components=14,method='picard')\nica.fit(x.T)\ns3 = ica.transform(x.T)\n\nica = ICA(n_components=14,method='extended-infomax')\nica.fit(x.T)\ns4 = ica.transform(x.T)\n```\n\n## Machine Learning\n### [Logistic Regression](https://nbviewer.jupyter.org/github/Nikeshbajaj/spkit/blob/master/notebooks/2.1_LogisticRegression_examples.ipynb) - *View in notebook*\n

\n\n### [Naive Bayes](https://nbviewer.jupyter.org/github/Nikeshbajaj/spkit/blob/master/notebooks/2.2_NaiveBayes_example.ipynb) - *View in notebook*\n

\n\n### [Decision Trees](https://nbviewer.jupyter.org/github/Nikeshbajaj/spkit/blob/master/notebooks/2.3_Tree_Example_Classification_and_Regression.ipynb) - *View in notebook*\n

\n\n[**view in repository **](https://github.com/Nikeshbajaj/spkit/tree/master/notebooks)\n\n## LFSR\n```\nimport numpy as np\nfrom spkit.pylfsr import LFSR\n## Example 1 ## 5 bit LFSR with x^5 + x^2 + 1\nL = LFSR() \nL.info()\nL.next()\nL.runKCycle(10)\nL.runFullCycle()\nL.info()\ntempseq = L.runKCycle(10000) # generate 10000 bits from current state\n```\n______________________________________\n\n# Contacts:\n\n* **Nikesh Bajaj**\n* http://nikeshbajaj.in\n* n.bajaj@qmul.ac.uk\n* bajaj.nikkey@gmail.com\n### PhD Student: Queen Mary University of London & University of Genoa\n______________________________________\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/Nikeshbajaj/spkit/tarball/0.0.3", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Nikeshbajaj/spkit", "keywords": "Signal processing entropy R\u00e9nyi entropy Kullback\u2013Leibler divergence Mutual Information", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "spkit", "package_url": "https://pypi.org/project/spkit/", "platform": "", "project_url": "https://pypi.org/project/spkit/", "project_urls": { "Download": "https://github.com/Nikeshbajaj/spkit/tarball/0.0.3", "Homepage": "https://github.com/Nikeshbajaj/spkit" }, "release_url": "https://pypi.org/project/spkit/0.0.3/", "requires_dist": [ "numpy", "matplotlib", "scipy", "scikit-learn", "python-picard" ], "requires_python": "", "summary": "SpKit: Signal Processing toolkit", "version": "0.0.3" }, "last_serial": 5859385, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "123d3f3809bfa9d2833b7272189f2675", "sha256": "4e22957366f0a9e0d437e9b8cb9e9cf60cc8adab64dd0ad4ca30cfce43638437" }, "downloads": -1, "filename": "spkit-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "123d3f3809bfa9d2833b7272189f2675", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4981, "upload_time": "2019-04-19T01:30:30", "url": "https://files.pythonhosted.org/packages/d2/d0/ddeb220bed5be093655cc8472aea746788d8cb53177447633b1a296ed625/spkit-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b645a910e24112130d070cc8bcfa1a37", "sha256": "0358481c1cab6397259a3a61538ed68e035a42118df251e2fc6413b21f0088f6" }, "downloads": -1, "filename": "spkit-0.0.1.tar.gz", "has_sig": false, "md5_digest": "b645a910e24112130d070cc8bcfa1a37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4831, "upload_time": "2019-04-19T01:30:32", "url": "https://files.pythonhosted.org/packages/59/ac/d1234d4a8ca25c97908397862b8011de22db69b3cb117178612942b56417/spkit-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "36b779f9d469b4d200680d56ae4e0194", "sha256": "41b6959cced82cc28cef320b40ec3ff93fd4b7d93d0f906dc5e37160bd535153" }, "downloads": -1, "filename": "spkit-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "36b779f9d469b4d200680d56ae4e0194", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30629, "upload_time": "2019-09-19T16:48:23", "url": "https://files.pythonhosted.org/packages/ef/7e/770a754649de701e8254adcfc414f320a88ea495467666baad61e3aa459e/spkit-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b2fac5b3a50d5046218fb34a51712b25", "sha256": "33d96c406871f120291d764c7f5b2f3ccb98fdb84c2090560cb0a1fab375a91d" }, "downloads": -1, "filename": "spkit-0.0.2.tar.gz", "has_sig": false, "md5_digest": "b2fac5b3a50d5046218fb34a51712b25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31325, "upload_time": "2019-09-19T16:48:25", "url": "https://files.pythonhosted.org/packages/35/2e/94e178632850ce6f796efeca232ea8121a5ebe867fefdb6ea0b06c98d509/spkit-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "4c118f50229edac7b5d24876e4810510", "sha256": "52a33b6bf724c863b18c532582315061adb22dbea19fa3caf203c1ce6ca68379" }, "downloads": -1, "filename": "spkit-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "4c118f50229edac7b5d24876e4810510", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30838, "upload_time": "2019-09-20T00:07:44", "url": "https://files.pythonhosted.org/packages/ee/2b/3f12a86bd01ee0c1de3970baaf2c34dca14f656d2d31668d700d3aa9ff38/spkit-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9e83626e01de0c75ce810e4f4c42127d", "sha256": "d6d41174b7a83112d484bfb59f8c470d17e30a92a195f285418ef52bb7bb3e7d" }, "downloads": -1, "filename": "spkit-0.0.3.tar.gz", "has_sig": false, "md5_digest": "9e83626e01de0c75ce810e4f4c42127d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31458, "upload_time": "2019-09-20T00:07:46", "url": "https://files.pythonhosted.org/packages/dc/38/0c5ac8f205acd267a9dd6d810d3977643b242fb5dd9a918babb4be66905e/spkit-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4c118f50229edac7b5d24876e4810510", "sha256": "52a33b6bf724c863b18c532582315061adb22dbea19fa3caf203c1ce6ca68379" }, "downloads": -1, "filename": "spkit-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "4c118f50229edac7b5d24876e4810510", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30838, "upload_time": "2019-09-20T00:07:44", "url": "https://files.pythonhosted.org/packages/ee/2b/3f12a86bd01ee0c1de3970baaf2c34dca14f656d2d31668d700d3aa9ff38/spkit-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9e83626e01de0c75ce810e4f4c42127d", "sha256": "d6d41174b7a83112d484bfb59f8c470d17e30a92a195f285418ef52bb7bb3e7d" }, "downloads": -1, "filename": "spkit-0.0.3.tar.gz", "has_sig": false, "md5_digest": "9e83626e01de0c75ce810e4f4c42127d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31458, "upload_time": "2019-09-20T00:07:46", "url": "https://files.pythonhosted.org/packages/dc/38/0c5ac8f205acd267a9dd6d810d3977643b242fb5dd9a918babb4be66905e/spkit-0.0.3.tar.gz" } ] }