Skip to main content

k-Medoids Clustering in Python with FasterPAM

Project description

k-Medoids Clustering in Python with FasterPAM

PyPI version Conda Version Conda Platforms

This python package implements k-medoids clustering with PAM and variants of clustering by direct optimization of the (Medoid) Silhouette. It can be used with arbitrary dissimilarites, as it requires a dissimilarity matrix as input.

This software package has been introduced in JOSS:

Erich Schubert and Lars Lenssen
Fast k-medoids Clustering in Rust and Python
Journal of Open Source Software 7(75), 4183
https://doi.org/10.21105/joss.04183 (open access)

For further details on the implemented algorithm FasterPAM, see:

Erich Schubert, Peter J. Rousseeuw
Fast and Eager k-Medoids Clustering:
O(k) Runtime Improvement of the PAM, CLARA, and CLARANS Algorithms
Information Systems (101), 2021, 101804
https://doi.org/10.1016/j.is.2021.101804 (open access)

an earlier (slower, and now obsolete) version was published as:

Erich Schubert, Peter J. Rousseeuw:
Faster k-Medoids Clustering: Improving the PAM, CLARA, and CLARANS Algorithms
In: 12th International Conference on Similarity Search and Applications (SISAP 2019), 171-187.
https://doi.org/10.1007/978-3-030-32047-8_16
Preprint: https://arxiv.org/abs/1810.05691

This is a port of the original Java code from ELKI to Rust. The Rust version is then wrapped for use with Python.

For further details on medoid Silhouette clustering with automatic cluster number selection (FasterMSC, DynMSC), see:

Lars Lenssen, Erich Schubert:
Medoid silhouette clustering with automatic cluster number selection
Information Systems (120), 2024, 102290
https://doi.org/10.1016/j.is.2023.102290
Preprint: https://arxiv.org/abs/2309.03751

the basic FasterMSC method was first published as:

Lars Lenssen, Erich Schubert:
Clustering by Direct Optimization of the Medoid Silhouette
In: 15th International Conference on Similarity Search and Applications (SISAP 2022)
https://doi.org/10.1007/978-3-031-17849-8_15

If you use this code in scientific work, please cite above papers. Thank you.

Documentation

Full python documentation is included, and available on python-kmedoids.readthedocs.io

Installation

Installation with pip or conda

Pre-built packages for many Linux, Windows, and OSX systems are available in PyPI and conda-forge can be installed with

  • pip install kmedoids respectively
  • conda install -c conda-forge kmedoids.

On uncommon architectures, you may need to first install Cargo (i.e., the Rust programming language) first, and a subsequent pip install kmedoids will try to compile the package for your CPU architecture and operating system.

Compilation from source

You need to have Python 3 installed.

Unless you already have Rust, install Rust/Cargo.

Installation uses maturin for compiling and installing the Rust extension. Maturin is best used within a Python virtual environment:

# activate your desired virtual environment first, then:
pip install maturin
git clone https://github.com/kno10/python-kmedoids.git
cd python-kmedoids
# build and install the package:
maturin develop --release

Integration test to validate the installation.

pip install numpy
python -m unittest discover tests

This procedure uses the latest git version from https://github.com/kno10/rust-kmedoids. If you want to use local modifications to the Rust code, you need to provide the source folder of the Rust module in Cargo.toml by setting the path= option of the kmedoids dependency.

Example

Given a distance matrix distmatrix, cluster into k = 5 clusters:

import kmedoids
c = kmedoids.fasterpam(distmatrix, 5)
print("Loss is:", c.loss)

Using the sklearn-compatible API

Note that KMedoids defaults to the "precomputed" metric, expecting a pairwise distance matrix. If you have sklearn installed, you can also use metric="euclidean" and other distances supported by sklearn.

import kmedoids
km = kmedoids.KMedoids(5, method='fasterpam')
c = km.fit(distmatrix)
print("Loss is:", c.inertia_)

MNIST (10k samples)

import kmedoids, numpy, time
from sklearn.datasets import fetch_openml
from sklearn.metrics.pairwise import euclidean_distances
X, _ = fetch_openml('mnist_784', version=1, return_X_y=True, as_frame=False)
X = X[:10000]
diss = euclidean_distances(X)
start = time.time()
fp = kmedoids.fasterpam(diss, 100)
print("FasterPAM took: %.2f ms" % ((time.time() - start)*1000))
print("Loss with FasterPAM:", fp.loss)
start = time.time()
pam = kmedoids.pam(diss, 100)
print("PAM took: %.2f ms" % ((time.time() - start)*1000))
print("Loss with PAM:", pam.loss)

Choose the optimal number of clusters

This package includes DynMSC, an algorithm that optimizes the Medoid Silhouette, and chooses the "optimal" number of clusters in a range of kmin..kmax. Beware that if you allow a too large kmax, the optimum result will likely have many one-elemental clusters. A too high kmax may mask more desirable results, hence it is recommended that you choose only 2-3 times the number of clusters you expect as maximum.

import kmedoids, numpy
from sklearn.datasets import fetch_openml
from sklearn.metrics.pairwise import euclidean_distances
X, _ = fetch_openml('mnist_784', version=1, return_X_y=True, as_frame=False)
X = X[:10000]
diss = euclidean_distances(X)
kmin, kmax = 10, 20
dm = kmedoids.dynmsc(diss, kmax, kmin)
print("Optimal number of clusters according to the Medoid Silhouette:", dm.bestk)
print("Medoid Silhouette over range of k:", dm.losses)
print("Range of k:", dm.rangek)

Full Colab notebook example.

Memory Requirements

Because the algorithms require a distance matrix as input, you need O(N²) memory to use these implementations. With single precision, this matrix needs 4·N² bytes, so a typical laptop with 8 GB of RAM could handle data sets of over 40.000 instances, but if your computation of the distance matrix incurs copying the matrix, only 30.000 or less may be feasible.

The majority of run time usually is the distance matrix computation, so it is recommended you only compute it once, then experiment with different algorithm settings. Avoid recomputing it repeatedly.

For larger data sets, it is recommended to only cluster a representative sample of the data. Usually, this will still yield sufficient result quality.

Implemented Algorithms

  • FasterPAM (Schubert and Rousseeuw, 2020, 2021)
  • FastPAM1 (Schubert and Rousseeuw, 2019, 2021)
  • PAM (Kaufman and Rousseeuw, 1987) with BUILD and SWAP
  • Alternating optimization (k-means-style algorithm)
  • Silhouette index for evaluation (Rousseeuw, 1987)
  • FasterMSC (Lenssen and Schubert, 2022)
  • FastMSC (Lenssen and Schubert, 2022)
  • DynMSC (Lenssen and Schubert, 2023)
  • PAMSIL (Van der Laan and Pollard, 2003)
  • PAMMEDSIL (Van der Laan and Pollard, 2003)
  • Medoid Silhouette index for evaluation (Van der Laan and Pollard, 2003)

Note that the k-means-like algorithm for k-medoids tends to find much worse solutions.

Contributing to python-kmedoids

Third-party contributions are welcome. Please use pull requests to submit patches.

Reporting issues

Please report errors as an issue within the repository's issue tracker.

Support requests

If you need help, please submit an issue within the repository's issue tracker.

License: GPL-3 or later

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

kmedoids-0.5.3.1-cp313-none-win_amd64.whl (378.7 kB view details)

Uploaded CPython 3.13Windows x86-64

kmedoids-0.5.3.1-cp313-cp313-musllinux_1_2_x86_64.whl (587.8 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

kmedoids-0.5.3.1-cp313-cp313-musllinux_1_2_aarch64.whl (555.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

kmedoids-0.5.3.1-cp313-cp313-manylinux_2_28_x86_64.whl (527.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

kmedoids-0.5.3.1-cp313-cp313-manylinux_2_28_aarch64.whl (510.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

kmedoids-0.5.3.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (915.2 kB view details)

Uploaded CPython 3.13macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

kmedoids-0.5.3.1-cp312-none-win_amd64.whl (379.0 kB view details)

Uploaded CPython 3.12Windows x86-64

kmedoids-0.5.3.1-cp312-cp312-musllinux_1_2_x86_64.whl (587.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

kmedoids-0.5.3.1-cp312-cp312-musllinux_1_2_aarch64.whl (555.3 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

kmedoids-0.5.3.1-cp312-cp312-manylinux_2_28_x86_64.whl (527.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

kmedoids-0.5.3.1-cp312-cp312-manylinux_2_28_aarch64.whl (511.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

kmedoids-0.5.3.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (915.7 kB view details)

Uploaded CPython 3.12macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

kmedoids-0.5.3.1-cp311-none-win_amd64.whl (379.4 kB view details)

Uploaded CPython 3.11Windows x86-64

kmedoids-0.5.3.1-cp311-cp311-musllinux_1_2_x86_64.whl (589.0 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

kmedoids-0.5.3.1-cp311-cp311-musllinux_1_2_aarch64.whl (556.2 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

kmedoids-0.5.3.1-cp311-cp311-manylinux_2_28_x86_64.whl (528.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

kmedoids-0.5.3.1-cp311-cp311-manylinux_2_28_aarch64.whl (512.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

kmedoids-0.5.3.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (921.6 kB view details)

Uploaded CPython 3.11macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

kmedoids-0.5.3.1-cp310-none-win_amd64.whl (379.0 kB view details)

Uploaded CPython 3.10Windows x86-64

kmedoids-0.5.3.1-cp310-cp310-musllinux_1_2_x86_64.whl (588.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

kmedoids-0.5.3.1-cp310-cp310-musllinux_1_2_aarch64.whl (556.5 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

kmedoids-0.5.3.1-cp310-cp310-manylinux_2_28_x86_64.whl (527.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

kmedoids-0.5.3.1-cp310-cp310-manylinux_2_28_aarch64.whl (512.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

kmedoids-0.5.3.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (921.6 kB view details)

Uploaded CPython 3.10macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

kmedoids-0.5.3.1-cp39-none-win_amd64.whl (380.0 kB view details)

Uploaded CPython 3.9Windows x86-64

kmedoids-0.5.3.1-cp39-cp39-musllinux_1_2_x86_64.whl (589.5 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

kmedoids-0.5.3.1-cp39-cp39-musllinux_1_2_aarch64.whl (557.6 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

kmedoids-0.5.3.1-cp39-cp39-manylinux_2_28_x86_64.whl (528.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

kmedoids-0.5.3.1-cp39-cp39-manylinux_2_28_aarch64.whl (512.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

kmedoids-0.5.3.1-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (921.3 kB view details)

Uploaded CPython 3.9macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

kmedoids-0.5.3.1-cp38-none-win_amd64.whl (380.0 kB view details)

Uploaded CPython 3.8Windows x86-64

kmedoids-0.5.3.1-cp38-cp38-musllinux_1_2_x86_64.whl (588.8 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

kmedoids-0.5.3.1-cp38-cp38-musllinux_1_2_aarch64.whl (557.3 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ ARM64

kmedoids-0.5.3.1-cp38-cp38-manylinux_2_28_x86_64.whl (528.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

kmedoids-0.5.3.1-cp38-cp38-manylinux_2_28_aarch64.whl (512.7 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ ARM64

kmedoids-0.5.3.1-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (921.4 kB view details)

Uploaded CPython 3.8macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file kmedoids-0.5.3.1-cp313-none-win_amd64.whl.

File metadata

  • Download URL: kmedoids-0.5.3.1-cp313-none-win_amd64.whl
  • Upload date:
  • Size: 378.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for kmedoids-0.5.3.1-cp313-none-win_amd64.whl
Algorithm Hash digest
SHA256 310273843091960798f27dd2087e9f375dcd78db71e8cfb3ee0004e7b7d7a54c
MD5 d7173d4a54c402cfa53c44f0eb15f9e4
BLAKE2b-256 35614c0b98f0c220322e8ec07d7f0efa98bc2484dc841b073c688ca716149712

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp313-none-win_amd64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 001653add88e79f657995ee0b45cf5499b259211f67639a7dbed4e0eeef23b28
MD5 379cf74916c4ef43d63e3123235c5c30
BLAKE2b-256 1300db275119d948dfc0209ee0c553eb5563c1ea000222b34662ed732b8d1dc8

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 51aa773b0198247d0b7e4c34f46222c4171cce2f08350398a2114be75cf2fe88
MD5 fe9af090d566715a3159f545b0866edf
BLAKE2b-256 18f3dd4a3a597f8873a5f5d210347c91700120b2164bffe45a4447c19a0ee961

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0d8ced64fb5a66910bd8b7a63d7d7de1c1bcc0ec5875bd1817751b5ba37ad98d
MD5 b438fb5c1e6de605294c98236c2c576a
BLAKE2b-256 cdbde644a7044560817058b7a2f1bad40803341c081f80c05a5960e2239645e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 068e7d73cbcb4a001c156c9b7a3a6b35acf754a557c0af00db867c6d1f2d336f
MD5 503dcd242c305cd8e04d22348f39c263
BLAKE2b-256 97c69fc8225f32310806186c88ae61ab9006c61b346baf49f278a1ece5b591bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 d53c1f8109e1d760382dee40e91ea317e7ec121cb30f671eaf4180784838457e
MD5 c6804d127eabe58545db283374151b21
BLAKE2b-256 d2e8dadb494ced371630e266c793488ac7e2b99962d25ca3da8afa0e872f2afa

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp312-none-win_amd64.whl.

File metadata

  • Download URL: kmedoids-0.5.3.1-cp312-none-win_amd64.whl
  • Upload date:
  • Size: 379.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for kmedoids-0.5.3.1-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 fd10336ecc339b3c0c162c19089b6405836cc6c3eaf65ec3bf93b13012aaee51
MD5 acee07ba931223c89b8f19cf678d39b5
BLAKE2b-256 df71338fefe93616236ffa179d428329140cbeedd018d4603ad880f752f8f9a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp312-none-win_amd64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 91227e2e49f7a41186cc9255c93c386966eb1f48975e14116b945a47f62f1f39
MD5 bd144fc34699005fcb7d814491639dfb
BLAKE2b-256 72fd4da1cb16c2ea80bead54e4abc28df9434e6c10c30bdb18ca97fd6e58eaa9

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c32ecac5d8e386b806ef726050588c6661d4eb937e9c8ebe1c024e015a10344e
MD5 bca109066e1f0d8dcfcec0a260dbe2fe
BLAKE2b-256 2c0f906d6334ca9b790b6bcd699ac4251beec851d08e61c250caa5200e1d1b00

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 05fbe399707be0b8657fcdf67a5fa474cb43d4dae37832304710bd2b88be3e66
MD5 f0f16d7a13b6b4514a19a5c20186fc63
BLAKE2b-256 be1ee246a82bc2f4c0b64dbe2e9d22b812f04be1e76561ac7dc57134bb5a2eff

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3d74217511e9f8ba1d7a4ffdf4a910a9e7378aaeb344b2807e748963b594c97c
MD5 d38fa6f0fb566d5f02f23965a943bff0
BLAKE2b-256 757c978f448934eeb6ed61843bf251c55440a4e2f3e6a25a1d0aa278191b1eaa

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 6938b62b2dfd5ea13de22b9b04bbf60377966a7882a2900a7502baa2037afacf
MD5 89400518872ad18593a73658d6cd1227
BLAKE2b-256 6eb4457e552aa362cc746fbf0c461ab1a9bd7794db3321f82586601769f27112

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp311-none-win_amd64.whl.

File metadata

  • Download URL: kmedoids-0.5.3.1-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 379.4 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for kmedoids-0.5.3.1-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 f2ebf6719683b48171b7f26b6d9bcceeea1936bc67c9a7ac6a028e691800ece0
MD5 5c45f2f01030022e4aff610e68846543
BLAKE2b-256 4bae01600f35ab993f186f92f588d4fa26568f425c9a9c8d6dad5589c8836124

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp311-none-win_amd64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d8cb4b2362067860652e92ea093bddc5bb0812d2d3ed08f8fcddcdfadfca8d41
MD5 ad46baa32145995a22f649276e414cf4
BLAKE2b-256 0d86105598fc5c0d298934bdad8907f9e761497f361f9e5b90642010fdd73b75

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 69bfd604342fb7f7032a8e7f1a58d8c8b142e4c933c6ea13e29a97bc08cc8034
MD5 e05c1cc94072e739e69166852d3a4a20
BLAKE2b-256 ba3baad3fedbb58e495c1f07ba73fde428b9a17378f4b685aa65d96ae27f8f3f

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1abc674ccff68990d50217be262baa62ec6dfb00a96bff837122bee0e0d54be9
MD5 ff0f7f02f6524516807062680464be45
BLAKE2b-256 d6b9da1c3c372fcb6f345fb207b39e71277a9a3a2115dba2bb5f27bda50bac22

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 91826b67755b9fa61239978f577b35cf84de184a30fc685a6e506efc62bfabd2
MD5 398dac630f66e2dad623bbca2b5af4ec
BLAKE2b-256 e4e533d635ae977585e5b22c04f07c4c151aee9826bf00efb0a80f023a45013a

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 4da99721d298a7eb6886d44a3aa783a36ac5f967155c4b8dfde2ae4abdce6c50
MD5 08b8fbb63af4c4eb9fb195ee11c09290
BLAKE2b-256 4eadfe637593b59d29bd21cee985063848c3f29944b59382b5aa69905c30867d

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp310-none-win_amd64.whl.

File metadata

  • Download URL: kmedoids-0.5.3.1-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 379.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for kmedoids-0.5.3.1-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 c93f27832a5dad108377b78ca285146fa03d7f02eafe3753ee8fa020d14eae11
MD5 87d4c4d76c02216691e8c5283491d7ab
BLAKE2b-256 81d0a78e94ebd0e2c438b44df1e2064cf50cd8541002c80deb5967a384a04ad1

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp310-none-win_amd64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e410f315df244a2f86944c806ce7a695d3f534a98f0e567882ec4369486d1b25
MD5 2c81adc5978e5c4d370d7491ce8f740f
BLAKE2b-256 72d6d2165b751c8bad6b87ac1377125a906f4d8f0b6bfdad44f403f637c5a888

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 653cc976e4cf406282fd54f8131409f9f2815d5422b5da968b100af1c8a2bf43
MD5 412fe3203b246430075a043cf216f65c
BLAKE2b-256 478b485336e8d6a7ac613b940a02f0c9288a441e4776e785224548a437d5de58

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bbe2f1339a4e5107cc3d79a0f58275610cddf71951495cd732192cb3127162a4
MD5 2c886c359d3f5e3ff25ea65a699aff4a
BLAKE2b-256 465b2eaf2e6f66a208aaeeaf928f2335190a8e741a2347b00396d56560bfa9c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fc3362b71b6944b4e94a4a39106b394cf83669b69e6e39d9cf5f8751c9997b0b
MD5 4655a4f8f46a81bb94e07b81e0c9cd9d
BLAKE2b-256 851d8e74602ac3fdf9b355f623aa7800195fee4a758f666882228522d7101062

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 f16769d2b68cbaa14d5aa0f2f04ca9ae0d633958e259abd36b87bf729ca54807
MD5 714a194de6460b821fe6ddc02700f48f
BLAKE2b-256 3cb636a00d8dd96e1f76d99d68d1e1b2d0792303aa71384b52f128ea512738a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp39-none-win_amd64.whl.

File metadata

  • Download URL: kmedoids-0.5.3.1-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 380.0 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for kmedoids-0.5.3.1-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 3a881081f041bae4336862e09a7c814011a8f3a7ea29502ce604e8cb7b72dea7
MD5 5272a9458b7bdf4c2fcae9d76d23c1da
BLAKE2b-256 c647ad7b54db07180534c92f6edcc66b9ed356311d6f7bb9a51c2340db88f317

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp39-none-win_amd64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0755acbac63f109885f9c52fa7b83160d0eb458d26b256781c4ada7c086c5517
MD5 5d4a642b5b7b46b249e3a8748b790c9b
BLAKE2b-256 75860f45832c1839bd8c04ae4dad0d44832975fcd6a6086c04b51d8aff46d579

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fe4fcf5fd4fd1dd007205f14abd3b0716ef83adb73724eaa11c3dbc9f74b963a
MD5 a17969a53a7d78479b8e956d83543942
BLAKE2b-256 9cc3baf4f964120744c6299e27b3a6d05abe3da94c54ea95ff177ad37fd98747

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp39-cp39-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 76760368eb1d654e36a3c1b13dfde9c8b432c995d57f0ede21e4e362ffbd00c8
MD5 838cf8c33f0dbdbf12a08b76ccb7204b
BLAKE2b-256 793cc98cf02ce0d4492f423fbb5f3e0f5abf2fe7ab5fb5e5d65d14ec3f44be6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp39-cp39-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e1fa0357cce07f5e3c77c7a8b2a71dae9e56afe46da7a1a69a451b169a1b468f
MD5 73f8e95c2c63ca5ec1344037e098b5c5
BLAKE2b-256 6072e12c7ace2c38faedcd8d244a74937bd3e45c0e512e6cb083e0f54bdccb1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp39-cp39-manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 478a1d009b275247c10dfee5156abcd1690bebe8976593416b2d59f35b052773
MD5 22ed25f2cb442f8c31f1db5d4c28f6c4
BLAKE2b-256 3e30c968f198d016e8b05bf986593645ee1139506e2c6b2cecc075fd21cf2609

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp38-none-win_amd64.whl.

File metadata

  • Download URL: kmedoids-0.5.3.1-cp38-none-win_amd64.whl
  • Upload date:
  • Size: 380.0 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for kmedoids-0.5.3.1-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 98d1b456f486be619d074d6af54a7504f4a34bab8bc8951990f5375adf679e71
MD5 d54c393a5b3e46201872945198504d02
BLAKE2b-256 59f432a39a2fa9b4d00b1f2edf534253fec34c92651bf97831b911891484ed55

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp38-none-win_amd64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9937948f658fdf5cbb4de23515154cd7ffccfb66bec3142a1b0e3b7460a27106
MD5 6c3b0c58db8974531590cfe21454c046
BLAKE2b-256 454bf321f44eebe15f772d2ab7a561b534030e2cfebc9a1c810f91809d6b87b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp38-cp38-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c135ad2e0de5586c008495acb21d8024e70a112e0d438c902ef3bff16f82a3c7
MD5 654636a34687bae1aa69b8719d9ddc45
BLAKE2b-256 391faa803e529ef3527b9eee8ad20d35565ba7790057d1cd7575f6a7e2164055

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp38-cp38-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f168bd49f83351e94f98430062a38f6e56d618877f31783029e1af755ea05177
MD5 c2fe42a029746f9d1e336a09f0e6649a
BLAKE2b-256 9acead37b7a03e98a2d926cda92210a0c8f2ce0cb2e54284a8f05e7238698803

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp38-cp38-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9766008bb2c2b61898af3b483bc9a858f8f9a147116f2461972ac2d4b7fb4810
MD5 529b83e18ff81004137c347428787b60
BLAKE2b-256 8620931bdafa95560fe41c8122d224252e079e2e86d1f8d8ed4f7f4639b82e51

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp38-cp38-manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kmedoids-0.5.3.1-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for kmedoids-0.5.3.1-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 be05d09b036fd25663ab5ee5a504c9c099b9bf9701ac6a65d4ce28e352b6d530
MD5 908cc7bec1e2d3c6d863bfe9768f7f41
BLAKE2b-256 ce175b44d9d9c9d4211b8278e84a36b9eec9cc935c46cdf67e287c94dceeaadd

See more details on using hashes here.

Provenance

The following attestation bundles were made for kmedoids-0.5.3.1-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: wheels.yml on kno10/python-kmedoids

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page