Skip to main content

CKmeans: Optimal Univariate Clustering

Ckmeans clustering is an improvement on 1-dimensional (univariate) heuristic-based clustering approaches such as Jenks. The algorithm was developed by Haizhou Wang and Mingzhou Song (2011) as a dynamic programming approach to the problem of clustering numeric data into groups with the least within-group sum-of-squared-deviations.

Minimising the difference within groups – what Wang & Song refer to as withinss, or within sum-of-squares – means that groups are optimally homogeneous within and the data is split into representative groups. This is useful for visualisation, where one may wish to represent a continuous variable in discrete colour or style groups.

Being a dynamic approach, this algorithm is based on two matrices that store incrementally-computed values for squared deviations and backtracking indexes.

If you do not know the number of clusters, ckmeans_optimal chooses it with the Bayesian Information Criterion (BIC), following Song & Zhong (2020).

Implementation

This library uses the ckmeans Rust crate, by the same author.

All functions accept any one-dimensional array-like input (a NumPy array of any numeric dtype, a list or a tuple), and convert it to float64. They release the GIL during the calculation.

ckmeans(data, k)

Cluster data into k groups with the least within-group sum of squares. Returns a list of float64 arrays, one for each cluster, in ascending order of value. Each cluster is sorted.

If data has fewer than k distinct values, there is one cluster for each distinct value.

breaks(data, k)

Calculate the breaks between k clusters, for labels and legends. Returns one break fewer than the number of clusters.

The lower bounds of the clusters from ckmeans can have many decimal places, which makes them unsuitable for a legend. Rounding them can be too loose (spurious decimal places) or too strict (classes ranging "from x to x"). Each break b is instead the roundest number between the highest value of a cluster (last) and the lowest value of the next cluster (first), so that last < b <= first. It is a multiple of the largest power of ten that has a multiple in that interval; of those multiples, it is the one nearest the midpoint.

This method is based on the visionscarto method of the same name.

ckmeans_optimal(data, k_min=1, k_max=9)

Find the best number of clusters for data, and cluster the data. Use this function when you do not know how many clusters the data has.

The function clusters data once for each number of clusters k from k_min to k_max. It then chooses the k with the lowest Bayesian Information Criterion (BIC), which balances how closely the clusters fit the data against the number of clusters. k_max is capped at the number of distinct values in data.

The default range of 1 to 9 is the same as in the R package Ckmeans.1d.dp. If the data can have more than 9 clusters, set a higher k_max (up to 255).

Returns an OptimalResult, with these attributes:

Attribute Type Content
k int The chosen number of clusters
clusters list of float64 arrays The clusters, as returned by ckmeans
centers float64 array The mean of each cluster
sizes intp array The number of values in each cluster
withinss float64 array The within-cluster sum of squares of each cluster
ks intp array The candidate numbers of clusters
bic float64 array The BIC of each candidate number of clusters

Errors

All functions raise CkmeansError, a subclass of ValueError, if:

  • k (or k_min) is less than 1
  • k, k_min or k_max is greater than 255
  • k is greater than the number of values, or k_min is greater than the number of distinct values
  • k_min is greater than k_max
  • data contains NaN

Numerical limits

  • Infinite values are accepted, but a cluster that contains one has no finite sum of squares. The result is then a partition of the input with no optimality guarantee. ckmeans_optimal returns NaN BIC values for such input and uses k_min.
  • The costs are calculated in float64 from cumulative sums. If the data spans a very large range (for example, values that differ by 1 alongside values of order 1e8), cost differences below float64 resolution are lost. The result can then be sub-optimal by that amount, and equal values can be put in adjacent clusters. breaks then returns the first value of the upper cluster as the break.

Upgrading from 0.2

  • Invalid input raises CkmeansError, a subclass of ValueError. Version 0.2 raised RuntimeError, or PanicException for NaN input, k greater than 255 and non-contiguous arrays.
  • breaks uses the method of version 2.0 of the crate, and can return different values. For example, breaks([1.0, 2.0, 3.0, 4.0, 100.0, 101.0, 102.0, 103.0], 2) returns [100.0], not [50.0].
  • The clusters from ckmeans are views of one sorted copy of the input.
  • data and k can be given as keyword arguments.
  • Python 3.11 or later is required.

Install for local development

  1. Ensure that maturin and a recent Rust toolchain are installed
  2. maturin develop --release (you will need to re-run this command if you're hacking on the source and want to e.g. benchmark your changes). uv run rebuilds the extension when the Rust sources change.

Benchmarks

Benchmarks can be run using uv run pytest --benchmark-only.

The benchmarks compare this Rust implementation against ckmeans-1d-dp (C++ implementation) across different data sizes and cluster counts:

  • 110k samples with 5 or 20 clusters
  • 1M samples with 5 or 20 clusters

Results are grouped for meaningful comparison between implementations with identical parameters. Benchmark results also generate histogram visualisations saved as SVG files.

Results

ckmeans is around 10 % faster than ckmeans.1d.dp, and around 20 % faster than the original R package that wraps the same CPP library ckmeans.1d.dp.

Note: The ckmeans-1d-dp Python package only returns indices identifying each cluster to which the input belongs. If you want to cluster your data, you need to do that yourself.

Examples

import numpy as np
from ckmeans import ckmeans

data = np.array([1.0, 2.0, 3.0, 4.0, 100.0, 101.0, 102.0, 103.0])
result = ckmeans(data, 2)
np.testing.assert_array_equal(result[0], [1.0, 2.0, 3.0, 4.0])
np.testing.assert_array_equal(result[1], [100.0, 101.0, 102.0, 103.0])
from ckmeans import breaks

result = breaks([0.12, 0.13, 0.21, 0.24, 0.87, 0.91], k=2)
assert result.tolist() == [0.6]
from ckmeans import ckmeans_optimal

data = [1.0, 1.1, 1.2, 50.0, 51.0, 52.0, 100.0, 101.0, 102.0]
result = ckmeans_optimal(data)
assert result.k == 3
assert result.sizes.tolist() == [3, 3, 3]

License

Blue Oak Model License 1.0.0

Metadata

Release files for ckmeans 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ckmeans 1.0.1
File Size Uploaded
ckmeans-1.0.1.tar.gz 24.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for ckmeans 1.0.1
File
ckmeans-1.0.1-cp314-cp314t-win_arm64.whl CPython 3.14 CPython 3.14 free-threading Windows ARM64 Details
ckmeans-1.0.1-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
ckmeans-1.0.1-cp314-cp314t-win32.whl CPython 3.14 CPython 3.14 free-threading Windows x86-32 Details
ckmeans-1.0.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
ckmeans-1.0.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
ckmeans-1.0.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.5+ x86-32 Details
ckmeans-1.0.1-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
ckmeans-1.0.1-cp314-cp314t-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 Details
ckmeans-1.0.1-cp311-abi3-win_arm64.whl CPython 3.11 abi3 Windows ARM64 Details
ckmeans-1.0.1-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
ckmeans-1.0.1-cp311-abi3-win32.whl CPython 3.11 abi3 Windows x86-32 Details
ckmeans-1.0.1-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 abi3 Linux glibc 2.17+ x86-64 Details
ckmeans-1.0.1-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 abi3 Linux glibc 2.17+ ARM64 Details
ckmeans-1.0.1-cp311-abi3-manylinux_2_5_i686.manylinux1_i686.whl CPython 3.11 abi3 Linux glibc 2.5+ x86-32 Details
ckmeans-1.0.1-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details
ckmeans-1.0.1-cp311-abi3-macosx_10_12_x86_64.whl CPython 3.11 abi3 macOS 10.12+ x86-64 Details

Total release size: 3.8 MB

Release files / ckmeans-1.0.1.tar.gz

Download URL ckmeans-1.0.1.tar.gz
Size 24.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b3ca634e26eb75c029d12519bd2756070cd34616148cec4ccfb73094976e97a5
BLAKE2b-256 checksum
How to use checksums
4f06a13528d8fbb170748d66e21b40b2248062fefeb2357a4b7797b5ff95054d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ckmeans-1.0.1-cp314-cp314t-win_arm64.whl

Download URL ckmeans-1.0.1-cp314-cp314t-win_arm64.whl
Size 163.3 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
ef54f2fb04577f82f525d86d9457302384e3fe4d1084f42bfc1fe4fa49a04ee8
BLAKE2b-256 checksum
How to use checksums
58e2979bf40b3e98c21c289e09b28153730e2a47149808523499295743fa3c25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ckmeans-1.0.1-cp314-cp314t-win_amd64.whl

Download URL ckmeans-1.0.1-cp314-cp314t-win_amd64.whl
Size 170.9 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
48e32805e5fa736599552283ca330e326cb3d7b9f3c42274b81682e2c33db5af
BLAKE2b-256 checksum
How to use checksums
e7244259e0e83e63d317593057f6db1d470dfe63b4b4696408a62bf39b2ef3a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ckmeans-1.0.1-cp314-cp314t-win32.whl

Download URL ckmeans-1.0.1-cp314-cp314t-win32.whl
Size 159.8 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-32
SHA-256 checksum
How to use checksums
936411c0f94bc41aaa878bb1b40dffbc78aa055a8492a94efd79af0fd2dc3f08
BLAKE2b-256 checksum
How to use checksums
db67b7d3041fb48937add3697434f9d8223051fb1e7b569294162a7d318aebe4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ckmeans-1.0.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ckmeans-1.0.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 286.3 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
efde9ec4b12959e798e71819a9f8bb4108baba93be0b4c3d380f8af85562bfb5
BLAKE2b-256 checksum
How to use checksums
37188298844cf3cb1258e357990d81669a4cd72de74e5c9c7990a9e505dbc18d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ckmeans-1.0.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL ckmeans-1.0.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 282.8 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
33ffcbf08261392aa77e3f35d3d29af4d174a77904942b15cd1b6f1bc962b9ce
BLAKE2b-256 checksum
How to use checksums
604ae8b274ea6b3f9bf938a3a6ea907a4c4386796cffe770944328c20dfba9d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ckmeans-1.0.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl

Download URL ckmeans-1.0.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl
Size 304.9 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
87befadb2e0fadfb550d5a366380df7822ac2797bfd50a9cadf3e344080d87d2
BLAKE2b-256 checksum
How to use checksums
0e6e6fd4c2b81d0052388b412f9dda6b8f44b56c7ce8568bfba78f0b411c7760
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ckmeans-1.0.1-cp314-cp314t-macosx_11_0_arm64.whl

Download URL ckmeans-1.0.1-cp314-cp314t-macosx_11_0_arm64.whl
Size 259.1 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
52a675fb0fe5d230a8a6d9fa6964372e7f576edd58522af07d0b4c8e488cb959
BLAKE2b-256 checksum
How to use checksums
c5a72c984986a3174cc2a94365595ebd3e8e0e5e291c5b63b0ec1b0ed13fcd75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ckmeans-1.0.1-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL ckmeans-1.0.1-cp314-cp314t-macosx_10_12_x86_64.whl
Size 270.0 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
334554edf631cec5c0942d3a30f1cf66c9b87562888790734c218bcdc054c15c
BLAKE2b-256 checksum
How to use checksums
3b62c68c3fee185f12f4c45dd68e9f481cf5457a374bc1f192106b0e39c7a155
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ckmeans-1.0.1-cp311-abi3-win_arm64.whl

Download URL ckmeans-1.0.1-cp311-abi3-win_arm64.whl
Size 166.6 kB
Tags CPython 3.11 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
6e0beaa8d90b5a4384923e57f962ad6c03007e719540ed78e942c2b5b2d9e66f
BLAKE2b-256 checksum
How to use checksums
385420cbca9db030843fb7966db6bc41cc5bc56678ce8827be447fe2392cf3ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ckmeans-1.0.1-cp311-abi3-win_amd64.whl

Download URL ckmeans-1.0.1-cp311-abi3-win_amd64.whl
Size 174.0 kB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
b430b66b232fb92d0c82c1288a2776a47f6f2643bcc2a591665fda3f3c286596
BLAKE2b-256 checksum
How to use checksums
38140d2e69680359b3e28ed3e14a8856f356f0a2f3ffceb4c581b1d03e1ba378
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ckmeans-1.0.1-cp311-abi3-win32.whl

Download URL ckmeans-1.0.1-cp311-abi3-win32.whl
Size 162.5 kB
Tags CPython 3.11 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
0cc7107857a3f65b9234ab2f5aa99452e287675589d136bcc3afa70df48adea4
BLAKE2b-256 checksum
How to use checksums
02a19c8c2abdbcdc605cdce425ac00cf49f2224000cc71e9430f2071e396cdb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ckmeans-1.0.1-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ckmeans-1.0.1-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 288.1 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
c69417f4d7bdce3831f60a374054a6def3d465ea898c9b8ebcd29120d4e310a6
BLAKE2b-256 checksum
How to use checksums
91d15f0e58fa094676aba1cbe155a3d64bbca32e1babbd73011e7b257d05426d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ckmeans-1.0.1-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL ckmeans-1.0.1-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 284.3 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
2dae33e98e3eb2f45b06f9befcf94fe34728a1e15cf677967222c067af9c2e21
BLAKE2b-256 checksum
How to use checksums
b44168fc3bbc9ea2a3828ac2d91d4d43634da2acf11354b0c5a16185a345202d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ckmeans-1.0.1-cp311-abi3-manylinux_2_5_i686.manylinux1_i686.whl

Download URL ckmeans-1.0.1-cp311-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Size 308.0 kB
Tags CPython 3.11 Linux glibc 2.5+ x86-32 abi3
SHA-256 checksum
How to use checksums
d0dda90d1fca925aa5b6e9e9633175c34dcc98caafcda94b5e5b7e045ae705e9
BLAKE2b-256 checksum
How to use checksums
c6ee32e1227eb427dee5c3adff3dc82de688a24a03c6b06055dd0b4954399719
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ckmeans-1.0.1-cp311-abi3-macosx_11_0_arm64.whl

Download URL ckmeans-1.0.1-cp311-abi3-macosx_11_0_arm64.whl
Size 263.3 kB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
04e21a94e873ae5ee03d444e112fe74105a487f6a728c11079a46e922400e846
BLAKE2b-256 checksum
How to use checksums
0f9f3a6c171578400df9888617527fe282135c8f475b1dd5de2f8fe401056709
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ckmeans-1.0.1-cp311-abi3-macosx_10_12_x86_64.whl

Download URL ckmeans-1.0.1-cp311-abi3-macosx_10_12_x86_64.whl
Size 270.2 kB
Tags CPython 3.11 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
0ab3852a885de63195a09a84bf19b978ee7cf60c5471c437a0acc27d2649af06
BLAKE2b-256 checksum
How to use checksums
66c8860191d26f7f0f342be96eb80effb3fa03711031b07c75c9cfdca5d51130
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

1.0.1 This release

17 release files

1.0.0

17 release files

0.2.10

7 release files

0.2.7

8 release files

0.2.6

8 release files

0.2.5

8 release files

0.2.3

65 release files

0.2.2

65 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page