今天我意识到,在optimize.minimize过程中,向量中的sympy的矩阵符号(对于协方差矩阵上的多个部分元素式导数)与scipy的cdist不兼容,因为它假设在进行函数调用时实际使用数字(公平足够)。

它首先遇到表达式不能转换为浮点数的问题,因为它包含sympy符号

TypeError: can't convert expression to a float


其次是很长的重复列表:

During handling of the above exception, another exception occurred:
SystemError: <built-in function hasattr> returned a result with an error set


是否有通过sympy的符号同时使用cdist和替代的内置方法,还是这里是实现可以处理符号的cdist的自定义实现的唯一选择?没关系,但是我使用的cdist方法是平方欧几里得。

谢谢。

最佳答案

如您所见,scipy.distance.cdist不处理任意对象。您需要自己实施欧几里得准则。

09-27 08:31