[![PyPI version](https://badge.fury.io/py/fastkde.svg)](https://badge.fury.io/py/fastkde)
![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/lbl-eesa/fastkde/test.yml?event=schedule&label=tests)
<a target="_blank" href="https://colab.research.google.com/github/LBL-EESA/fastkde/blob/main/examples/readme_test.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a>
# fastKDE
## Software Overview
fastKDE calculates a kernel density estimate of arbitrarily dimensioned
data; it does so rapidly and robustly using recently developed KDE
techniques. It does so with statistical skill that is as good as
state-of-the-science 'R' KDE packages, and it does so 10,000 times
faster for bivariate data (even better improvements for higher
dimensionality).
**Please cite the following papers when using this method:**
* O’Brien, T. A., Kashinath, K., Cavanaugh, N. R., Collins, W. D. & O’Brien, J. P. *A fast and objective multidimensional kernel density estimation method: fastKDE.* Comput. Stat. Data Anal. 101, 148–160 (2016). [http://dx.doi.org/10.1016/j.csda.2016.02.014](http://dx.doi.org/10.1016/j.csda.2016.02.014)
* O’Brien, T. A., Collins, W. D., Rauscher, S. A. & Ringler, T. D. *Reducing the computational cost of the ECF using a nuFFT: A fast and objective probability density estimation method.* Comput. Stat. Data Anal. 79, 222–234 (2014). [http://dx.doi.org/10.1016/j.csda.2014.06.002](http://dx.doi.org/10.1016/j.csda.2014.06.002)
### Example usage:
**For a standard PDF**
```python
""" Demonstrate the first README example. """
import numpy as np
import fastkde
import matplotlib.pyplot as plt
#Generate two random variables dataset (representing 100,000 pairs of datapoints)
N = int(1e5)
x = 50*np.random.normal(size=N) + 0.1
y = 0.01*np.random.normal(size=N) - 300
#Do the self-consistent density estimate
PDF = fastkde.pdf(x, y, var_names = ['x', 'y'])
PDF.plot();
```
**For a conditional PDF**
The following code generates samples from a non-trivial joint
distribution
```python
#***************************
# Generate random samples
#***************************
# Stochastically sample from the function underlyingFunction() (a sigmoid):
# sample the absicissa values from a gamma distribution
# relate the ordinate values to the sample absicissa values and add
# noise from a normal distribution
#Set the number of samples
numSamples = int(1e6)
#Define a sigmoid function
def underlyingFunction(x,x0=305,y0=200,yrange=4):
return (yrange/2)*np.tanh(x-x0) + y0
xp1,xp2,xmid = 5,2,305 #Set gamma distribution parameters
yp1,yp2 = 0,12 #Set normal distribution parameters (mean and std)
#Generate random samples of X from the gamma distribution
x = -(np.random.gamma(xp1,xp2,int(numSamples))-xp1*xp2) + xmid
#Generate random samples of y from x and add normally distributed noise
y = underlyingFunction(x) + np.random.normal(loc=yp1,scale=yp2,size=numSamples)
```
Now that we have the x,y samples, the following code calculates the
conditional
```python
#***************************
# Calculate the conditional
#***************************
cPDF = fastkde.conditional(y, x, var_names = ['y', 'x'])
```
The following plot shows the results:
```python
#***************************
# Plot the conditional
#***************************
fig,axs = plt.subplots(1,2,figsize=(10,5), sharex=True, sharey=True)
#Plot a scatter plot of the incoming data
axs[0].plot(x,y,'k.',alpha=0.1)
axs[0].set_title('Original (x,y) data')
axs[0].set_xlabel('x')
axs[0].set_ylabel('y')
#Draw a contour plot of the conditional
cPDF.plot(ax = axs[1], add_colorbar = False)
#Overplot the original underlying relationship
axs[1].plot(cPDF.x,underlyingFunction(cPDF.x),linewidth=3,linestyle='--',alpha=0.5)
axs[1].set_title('P(y|x)')
plt.savefig('conditional_demo.png')
plt.show()
```
![Image of conditional distribution demonstration](conditional_demo.png)
**Kernel Density Estimate for Specific Points**
To see the KDE values at specified points (not necessarily those that were used to generate the KDE):
```python
""" Demonstrate using the pdf_at_points function. """""
import fastkde
train_x = 50*np.random.normal(size=100) + 0.1
train_y = 0.01*np.random.normal(size=100) - 300
test_x = 50*np.random.normal(size=100) + 0.1
test_y = 0.01*np.random.normal(size=100) - 300
test_points = list(zip(test_x, test_y))
test_point_pdf_values = fastkde.pdf_at_points(train_x, train_y, list_of_points = test_points)
```
Note that this method can be significantly slower than calls to `fastkde.pdf()` since it does not benefit from using a fast Fourier transform during the final stage in which the PDF estimate is transformed from spectral space into data space, whereas `fastkde.pdf()` does.
How do I get set up?
--------------------
`python -m pip install fastkde`
Copyright Information
---------------------
See [LICENSE.txt](LICENSE.txt)
Raw data
{
"_id": null,
"home_page": "https://github.com/LBL-EESA/fastkde",
"name": "fastkde",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "statistics, probability, KDE, kernel density estimation",
"author": "Travis A. O'Brien",
"author_email": "obrienta@iu.edu",
"download_url": "https://github.com/LBL-EESA/fastkde/archive/v2.1.3.tar.gz",
"platform": null,
"description": "[![PyPI version](https://badge.fury.io/py/fastkde.svg)](https://badge.fury.io/py/fastkde)\n![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/lbl-eesa/fastkde/test.yml?event=schedule&label=tests)\n<a target=\"_blank\" href=\"https://colab.research.google.com/github/LBL-EESA/fastkde/blob/main/examples/readme_test.ipynb\"> <img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/> </a>\n\n# fastKDE\n\n## Software Overview\n\nfastKDE calculates a kernel density estimate of arbitrarily dimensioned\ndata; it does so rapidly and robustly using recently developed KDE\ntechniques. It does so with statistical skill that is as good as\nstate-of-the-science 'R' KDE packages, and it does so 10,000 times\nfaster for bivariate data (even better improvements for higher\ndimensionality).\n\n**Please cite the following papers when using this method:**\n\n* O\u2019Brien, T. A., Kashinath, K., Cavanaugh, N. R., Collins, W. D. & O\u2019Brien, J. P. *A fast and objective multidimensional kernel density estimation method: fastKDE.* Comput. Stat. Data Anal. 101, 148\u2013160 (2016). [http://dx.doi.org/10.1016/j.csda.2016.02.014](http://dx.doi.org/10.1016/j.csda.2016.02.014)\n* O\u2019Brien, T. A., Collins, W. D., Rauscher, S. A. & Ringler, T. D. *Reducing the computational cost of the ECF using a nuFFT: A fast and objective probability density estimation method.* Comput. Stat. Data Anal. 79, 222\u2013234 (2014). [http://dx.doi.org/10.1016/j.csda.2014.06.002](http://dx.doi.org/10.1016/j.csda.2014.06.002)\n\n### Example usage:\n\n**For a standard PDF**\n\n```python\n\"\"\" Demonstrate the first README example. \"\"\"\nimport numpy as np\nimport fastkde\nimport matplotlib.pyplot as plt\n\n#Generate two random variables dataset (representing 100,000 pairs of datapoints)\nN = int(1e5)\nx = 50*np.random.normal(size=N) + 0.1\ny = 0.01*np.random.normal(size=N) - 300\n\n#Do the self-consistent density estimate\nPDF = fastkde.pdf(x, y, var_names = ['x', 'y'])\n\nPDF.plot();\n```\n\n\n**For a conditional PDF**\n\nThe following code generates samples from a non-trivial joint\ndistribution\n\n```python\n#***************************\n# Generate random samples\n#***************************\n# Stochastically sample from the function underlyingFunction() (a sigmoid):\n# sample the absicissa values from a gamma distribution\n# relate the ordinate values to the sample absicissa values and add\n# noise from a normal distribution\n\n#Set the number of samples\nnumSamples = int(1e6)\n\n#Define a sigmoid function\ndef underlyingFunction(x,x0=305,y0=200,yrange=4):\n return (yrange/2)*np.tanh(x-x0) + y0\n\nxp1,xp2,xmid = 5,2,305 #Set gamma distribution parameters\nyp1,yp2 = 0,12 #Set normal distribution parameters (mean and std)\n\n#Generate random samples of X from the gamma distribution\nx = -(np.random.gamma(xp1,xp2,int(numSamples))-xp1*xp2) + xmid\n#Generate random samples of y from x and add normally distributed noise\ny = underlyingFunction(x) + np.random.normal(loc=yp1,scale=yp2,size=numSamples)\n```\n\nNow that we have the x,y samples, the following code calculates the\nconditional\n\n```python\n#***************************\n# Calculate the conditional\n#***************************\ncPDF = fastkde.conditional(y, x, var_names = ['y', 'x'])\n```\n\nThe following plot shows the results:\n\n```python\n#***************************\n# Plot the conditional\n#***************************\nfig,axs = plt.subplots(1,2,figsize=(10,5), sharex=True, sharey=True)\n\n#Plot a scatter plot of the incoming data\naxs[0].plot(x,y,'k.',alpha=0.1)\naxs[0].set_title('Original (x,y) data')\naxs[0].set_xlabel('x')\naxs[0].set_ylabel('y')\n\n#Draw a contour plot of the conditional\ncPDF.plot(ax = axs[1], add_colorbar = False)\n#Overplot the original underlying relationship\naxs[1].plot(cPDF.x,underlyingFunction(cPDF.x),linewidth=3,linestyle='--',alpha=0.5)\naxs[1].set_title('P(y|x)')\n\nplt.savefig('conditional_demo.png')\nplt.show()\n```\n\n![Image of conditional distribution demonstration](conditional_demo.png)\n\n**Kernel Density Estimate for Specific Points**\n\nTo see the KDE values at specified points (not necessarily those that were used to generate the KDE):\n\n```python\n\"\"\" Demonstrate using the pdf_at_points function. \"\"\"\"\"\nimport fastkde\ntrain_x = 50*np.random.normal(size=100) + 0.1\ntrain_y = 0.01*np.random.normal(size=100) - 300\n\ntest_x = 50*np.random.normal(size=100) + 0.1\ntest_y = 0.01*np.random.normal(size=100) - 300\n\ntest_points = list(zip(test_x, test_y))\ntest_point_pdf_values = fastkde.pdf_at_points(train_x, train_y, list_of_points = test_points)\n```\n\nNote that this method can be significantly slower than calls to `fastkde.pdf()` since it does not benefit from using a fast Fourier transform during the final stage in which the PDF estimate is transformed from spectral space into data space, whereas `fastkde.pdf()` does.\n\nHow do I get set up?\n--------------------\n\n`python -m pip install fastkde`\n\nCopyright Information\n---------------------\n\nSee [LICENSE.txt](LICENSE.txt)\n",
"bugtrack_url": null,
"license": null,
"summary": "Tools for fast and robust univariate and multivariate kernel density estimation",
"version": "2.1.3",
"project_urls": {
"Download": "https://github.com/LBL-EESA/fastkde/archive/v2.1.3.tar.gz",
"Homepage": "https://github.com/LBL-EESA/fastkde"
},
"split_keywords": [
"statistics",
" probability",
" kde",
" kernel density estimation"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e1bd589f0775555090827202ed3d4161a2aceb2a35355fe8dccd26760eb6f624",
"md5": "a4d55d627a73efd1006aef3e7b2089cd",
"sha256": "876b9b23dd4389f9f1e18629db350d1440a2613ee0a9c3abcdcda698de7a6947"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "a4d55d627a73efd1006aef3e7b2089cd",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 606900,
"upload_time": "2024-09-28T14:17:06",
"upload_time_iso_8601": "2024-09-28T14:17:06.220025Z",
"url": "https://files.pythonhosted.org/packages/e1/bd/589f0775555090827202ed3d4161a2aceb2a35355fe8dccd26760eb6f624/fastkde-2.1.3-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c4e395e5560b941c8781d19a9f695959b54d91f7e13ffde150cd34fe579faea3",
"md5": "305b365ea266da6ba603a029345d7f92",
"sha256": "f847d95501e55cb2ded5c2f03a170ee281203ff8114bf796a91e28bfca049423"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "305b365ea266da6ba603a029345d7f92",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 1657998,
"upload_time": "2024-09-28T14:17:08",
"upload_time_iso_8601": "2024-09-28T14:17:08.831171Z",
"url": "https://files.pythonhosted.org/packages/c4/e3/95e5560b941c8781d19a9f695959b54d91f7e13ffde150cd34fe579faea3/fastkde-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ee204ec5e3d719a21a3b160ab6279f8ede7d5c2c4882a3496dcf39ef2a3a27e9",
"md5": "620035cca3fd0df7cbcfb40e1ba81be2",
"sha256": "0d7d593f215f438f562d19b58b980868772bb95c2336d764c2be4cde4122736a"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "620035cca3fd0df7cbcfb40e1ba81be2",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 1694518,
"upload_time": "2024-09-28T14:17:11",
"upload_time_iso_8601": "2024-09-28T14:17:11.030285Z",
"url": "https://files.pythonhosted.org/packages/ee/20/4ec5e3d719a21a3b160ab6279f8ede7d5c2c4882a3496dcf39ef2a3a27e9/fastkde-2.1.3-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "582addb13b4a293266452b848376aa805be930e8be6ef0d14810423335d7a535",
"md5": "e6205b4e834e93751f294f4bf2869660",
"sha256": "a0de2b10a72000860efe7c92448b58f9f8c61510d63cf87c7db26a9085a395af"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "e6205b4e834e93751f294f4bf2869660",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 600221,
"upload_time": "2024-09-28T14:17:13",
"upload_time_iso_8601": "2024-09-28T14:17:13.213792Z",
"url": "https://files.pythonhosted.org/packages/58/2a/ddb13b4a293266452b848376aa805be930e8be6ef0d14810423335d7a535/fastkde-2.1.3-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "faa6827ca4f0019f998a1b023f5c9c7fa37b8100109df16faca9e02873a6e363",
"md5": "5028e7f84e717eae02fed5944ce0d09a",
"sha256": "e0f909ec62b1009d316e0d38d166f4598a705f364df1252cad0c0752894a6af8"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "5028e7f84e717eae02fed5944ce0d09a",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 606361,
"upload_time": "2024-09-28T14:17:14",
"upload_time_iso_8601": "2024-09-28T14:17:14.646674Z",
"url": "https://files.pythonhosted.org/packages/fa/a6/827ca4f0019f998a1b023f5c9c7fa37b8100109df16faca9e02873a6e363/fastkde-2.1.3-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "55922186794eaa90a3c83cb054b0e89aea018227de2ae66fc2b0bf397c715b46",
"md5": "292dc4354b5b9e2f433caf3ad1689684",
"sha256": "70f466a4df6171e9d7c39f40b8bd331fbed4c267438ca95fd08fef92e6041081"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "292dc4354b5b9e2f433caf3ad1689684",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 1752755,
"upload_time": "2024-09-28T14:17:16",
"upload_time_iso_8601": "2024-09-28T14:17:16.184650Z",
"url": "https://files.pythonhosted.org/packages/55/92/2186794eaa90a3c83cb054b0e89aea018227de2ae66fc2b0bf397c715b46/fastkde-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d5ef44bdc1b8d8443d8a301860567500c76e714b7313a919bb5de2ecef134da3",
"md5": "e58394531a9009ac9473828e65241fec",
"sha256": "b4cc712bbce1cb5ef7f805aca1364ebb6293b47a4bf4b7abd0f04353be12b185"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "e58394531a9009ac9473828e65241fec",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 1791444,
"upload_time": "2024-09-28T14:17:18",
"upload_time_iso_8601": "2024-09-28T14:17:18.257155Z",
"url": "https://files.pythonhosted.org/packages/d5/ef/44bdc1b8d8443d8a301860567500c76e714b7313a919bb5de2ecef134da3/fastkde-2.1.3-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4918295c409dcb19181999e367c19d556b05fda33666745956700fa5f588139d",
"md5": "75d206aa59fcb4cae30f57c77dfbaa92",
"sha256": "9dad2d6259a4c54f9c69d48ea427b16a2a90139130cd6551a0dbc6aa83f18810"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "75d206aa59fcb4cae30f57c77dfbaa92",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 600766,
"upload_time": "2024-09-28T14:17:20",
"upload_time_iso_8601": "2024-09-28T14:17:20.065087Z",
"url": "https://files.pythonhosted.org/packages/49/18/295c409dcb19181999e367c19d556b05fda33666745956700fa5f588139d/fastkde-2.1.3-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c6be857d662cbb10d7c8c07772a2f3423800e4e719b8b4f6bc7b475be693fad0",
"md5": "7461479ec2259887270b1d3bc9d73605",
"sha256": "f7fb8e75c88a09770d0286eaffcdbfec5ef21da2111772c31371b757523ae829"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "7461479ec2259887270b1d3bc9d73605",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 605872,
"upload_time": "2024-09-28T14:17:21",
"upload_time_iso_8601": "2024-09-28T14:17:21.870737Z",
"url": "https://files.pythonhosted.org/packages/c6/be/857d662cbb10d7c8c07772a2f3423800e4e719b8b4f6bc7b475be693fad0/fastkde-2.1.3-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f617e0a2d6787f7185d93e9c73c1d212d87525325ed0dac1c228dbe608b522f7",
"md5": "dd37c5478d5d45c3e81f14d189e57903",
"sha256": "118d50acd4cb78832090ac7da19cca747ead69b77542d5aa8bde2ea387fd8558"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "dd37c5478d5d45c3e81f14d189e57903",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 1697224,
"upload_time": "2024-09-28T14:17:23",
"upload_time_iso_8601": "2024-09-28T14:17:23.229084Z",
"url": "https://files.pythonhosted.org/packages/f6/17/e0a2d6787f7185d93e9c73c1d212d87525325ed0dac1c228dbe608b522f7/fastkde-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ac425c45d42cad8c8a6f736017dd51bfcc15b016d2f1c24ae9e2cc4b9e6cdfcf",
"md5": "6e68842a4fcda2b8e24a8aa762c267e3",
"sha256": "e7feafa9d1eac5a706606af0d624391ee4c6ec6dd63259678574bd2ab8934095"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp312-cp312-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "6e68842a4fcda2b8e24a8aa762c267e3",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 1741054,
"upload_time": "2024-09-28T14:17:24",
"upload_time_iso_8601": "2024-09-28T14:17:24.980276Z",
"url": "https://files.pythonhosted.org/packages/ac/42/5c45d42cad8c8a6f736017dd51bfcc15b016d2f1c24ae9e2cc4b9e6cdfcf/fastkde-2.1.3-cp312-cp312-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "87a73234ea4a58335075d6b4a80e2088392c9027c45368886ac85d451af1f4c5",
"md5": "7c6ae47c0ea610cb99dbd4b036c66420",
"sha256": "24c2928836c657be4307271ec9c348892b9200b3042af5592cc9f18e33d290ef"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "7c6ae47c0ea610cb99dbd4b036c66420",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 597119,
"upload_time": "2024-09-28T14:17:26",
"upload_time_iso_8601": "2024-09-28T14:17:26.252998Z",
"url": "https://files.pythonhosted.org/packages/87/a7/3234ea4a58335075d6b4a80e2088392c9027c45368886ac85d451af1f4c5/fastkde-2.1.3-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "62aed343155bf440d86117f45be0c8ca5afd7d34f4f3e4cec6c1803d1a487f0b",
"md5": "265053b4c0e9f3d595b1bc06a9544bb3",
"sha256": "8a5802d8ccb531c8dcaf74b4f327b2e82764190f6c7316b020181b07f2daa119"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "265053b4c0e9f3d595b1bc06a9544bb3",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 603218,
"upload_time": "2024-09-28T14:17:28",
"upload_time_iso_8601": "2024-09-28T14:17:28.015108Z",
"url": "https://files.pythonhosted.org/packages/62/ae/d343155bf440d86117f45be0c8ca5afd7d34f4f3e4cec6c1803d1a487f0b/fastkde-2.1.3-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "700ca6c30f26950ba15bfc8a7008e0c388f9bc0da156c21bb208c6321158572a",
"md5": "9abd22b3fcef0f8a035320bc19ff52c2",
"sha256": "7164bc37e3ef281cb396135cf9f863155e1e8e2f8724a47a4f6d8b8ac2f5a33a"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "9abd22b3fcef0f8a035320bc19ff52c2",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 1705015,
"upload_time": "2024-09-28T14:17:29",
"upload_time_iso_8601": "2024-09-28T14:17:29.871672Z",
"url": "https://files.pythonhosted.org/packages/70/0c/a6c30f26950ba15bfc8a7008e0c388f9bc0da156c21bb208c6321158572a/fastkde-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7eb6f6784b8df7c3fe459b13ba40022e9b9b74e68867bae6ae1eaec42f2e8691",
"md5": "fcf61c00d91e1979389451dcc7d986bd",
"sha256": "ebad75ca41434d9c5d40941b39693df52c14e011aa51cab75ba4282c3ae34b03"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp313-cp313-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "fcf61c00d91e1979389451dcc7d986bd",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 1743133,
"upload_time": "2024-09-28T14:17:31",
"upload_time_iso_8601": "2024-09-28T14:17:31.374725Z",
"url": "https://files.pythonhosted.org/packages/7e/b6/f6784b8df7c3fe459b13ba40022e9b9b74e68867bae6ae1eaec42f2e8691/fastkde-2.1.3-cp313-cp313-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "aecf30c923e8d951cb8fca84a16250434cbf2d4a42365c783225e166d597907b",
"md5": "e619e5f57dbf72d1a4600eb92712a9fd",
"sha256": "f8d086157dcf02df2695ae6771a1ebdef8e7768cbbedc81334803e239190b0e6"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "e619e5f57dbf72d1a4600eb92712a9fd",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 596383,
"upload_time": "2024-09-28T14:17:32",
"upload_time_iso_8601": "2024-09-28T14:17:32.742506Z",
"url": "https://files.pythonhosted.org/packages/ae/cf/30c923e8d951cb8fca84a16250434cbf2d4a42365c783225e166d597907b/fastkde-2.1.3-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "eeae76d226868b4e321585438b2f141f8e56be10a1693ae88bcf0dad1d9329d4",
"md5": "5a74f5ab2e6587335d85b289231bff49",
"sha256": "8bbcc9a8a24521212367f2a575eece6e5d2fda7d8d7d17a33b553ee4cba7444c"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "5a74f5ab2e6587335d85b289231bff49",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 607699,
"upload_time": "2024-09-28T14:17:34",
"upload_time_iso_8601": "2024-09-28T14:17:34.629368Z",
"url": "https://files.pythonhosted.org/packages/ee/ae/76d226868b4e321585438b2f141f8e56be10a1693ae88bcf0dad1d9329d4/fastkde-2.1.3-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "21c42110ab18a4e5e2e3b8a5ec9fd21f46df09f88fa74a522463a8aa8ae27d85",
"md5": "3e860dfa107515036ba0f5dff5477cb8",
"sha256": "0286c66c227db01b636df6c647b30ea6d9a15a84916a4bdc06d2015c5e705a0c"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "3e860dfa107515036ba0f5dff5477cb8",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 1660991,
"upload_time": "2024-09-28T14:17:36",
"upload_time_iso_8601": "2024-09-28T14:17:36.552985Z",
"url": "https://files.pythonhosted.org/packages/21/c4/2110ab18a4e5e2e3b8a5ec9fd21f46df09f88fa74a522463a8aa8ae27d85/fastkde-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7c46aa3cc508be9c9ff4cc6d4fbec8456d7fa57b892dc8344f65f65939a371e5",
"md5": "656148845b9891d8736d27cdc0dcfc0b",
"sha256": "eda1836f1cc8cf290cbff714f42dea8068c0401c5a366c1f8e651cbaa15e0835"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp39-cp39-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "656148845b9891d8736d27cdc0dcfc0b",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 1694394,
"upload_time": "2024-09-28T14:17:38",
"upload_time_iso_8601": "2024-09-28T14:17:38.408808Z",
"url": "https://files.pythonhosted.org/packages/7c/46/aa3cc508be9c9ff4cc6d4fbec8456d7fa57b892dc8344f65f65939a371e5/fastkde-2.1.3-cp39-cp39-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7fc4a8a5537451c0c8dd18c75fa75b41550d936f919fcc107560d20e775e77e9",
"md5": "de21d505e6cc88272b28db74252a2e9d",
"sha256": "aee92c8b7f05daaedfc4c993dc4d50d524f6b99366dcbca870b97b8f82a895ca"
},
"downloads": -1,
"filename": "fastkde-2.1.3-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "de21d505e6cc88272b28db74252a2e9d",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 600903,
"upload_time": "2024-09-28T14:17:39",
"upload_time_iso_8601": "2024-09-28T14:17:39.700954Z",
"url": "https://files.pythonhosted.org/packages/7f/c4/a8a5537451c0c8dd18c75fa75b41550d936f919fcc107560d20e775e77e9/fastkde-2.1.3-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-28 14:17:06",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "LBL-EESA",
"github_project": "fastkde",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "fastkde"
}