Issues (#8 and #11) have been raised about the flexibility of the current std::vector<std::array<T, N>> pattern used for passing data matrices in and out of this library.
A more flexible alternative is to have a dedicated N-dimensional array class (dkm::ndarray<T>) which has convenient constructors that take both the existing std::vector<std::array<T, N>> and std::vector<std::vector<T>>, which has been requested for some use cases. This class would also have methods to explicitly convert back to these data types after running the kmeans algorithm.