SciPy的压缩距离矩阵的格式/结构是否稳定?

时间:2012-02-22 12:11:44

标签: python data-structures scipy

将几个SciPy函数记录为采用“scipy.spatial.distance.pdist返回的精简距离矩阵”。现在,检查显示pdist返回的是距离矩阵的上部非对角线部分的行主要1D阵列形式。这一切都很好,很自然而且很明显,但它是在任何地方记录或定义的吗?我宁愿不假设任何关于突然改变的数据结构。 (当然,它可能没有很多东西可以改变,但我想有一种可能性就是将数组包装在允许类似矩阵索引的对象中。)

1 个答案:

答案 0 :(得分:1)

老实说,对于scipy用户或dev列表来说这是一个更好的问题,因为它是关于scipy的未来计划。

但是,scipy.spatial.pdistscipy.spatial.squareform的文档字符串中都严格记录了该结构。

E.g。 pdist

Returns a condensed distance matrix Y.  For
    each :math:`i` and :math:`j` (where :math:`i<j<n`), the
    metric ``dist(u=X[i], v=X[j])`` is computed and stored in the
    :math:`ij`th entry.

    See ``squareform`` for information on how to calculate the index of
    this entry or to convert the condensed distance matrix to a
    redundant square matrix.

由于这一点,以及scipy.spatial中的许多其他功能都希望以这种形式存在距离矩阵,我会严重怀疑它会在没有一些折旧警告和公告的情况下发生变化。

scipy本身的模块(与scipy的scikits相对)是相当稳定的,并且在进行更改时会对向后兼容性进行大量考虑(因此,有很多scipy中遗留下来的“遗骸”:例如,核心scipy模块只是在几个函数上具有不同的默认值的事实。)。