在python中导入scipy.spatial.distance时出错

时间:2018-11-29 07:42:03

标签: python numpy scipy-spatial

虽然我在ubuntu 14.04中运行此代码,但我想使用scipy.spatial.distance计算数组的余弦距离。但这使我在导入scipy.spatial.distance时出错。

symmin=@(x)feval(symengine,'min',x); % or 

symmin=@(x)feval(symengine,'min',x(1:10));

a=1:10;

symmin(a)

error using mupadengine/feval (line 187)

Missing domain attribute 'min'.

它抛出此错误,

import numpy as np
import scipy
from scipy.spatial.distance import pdist


x=np.array([[[-0.22008298,  0.28819615,  0.09895946,  0.16789497,  0.02379252,
   -0.25700486,  0.1628186,   0.12296761,  0.01750283]],

 [[ 0.29891527,  0.17249978, -0.10084602, -0.16522293,  0.06811064,
    0.07434326, -0.19697316, -0.22199543,  0.07647966]],

 [[-0.04112297,  0.13392878, -0.06575392,  0.0893533,   0.22577047,
    0.00289264,  0.09996213,  0.17324321,  0.08673526]]])


B =x.transpose(1,2,0).reshape(-1,x.shape[0])
print(B.shape) 
print (B.ndim)
#array.astype(int)
print(B)
y=1-(pdist(B, metric='cosine'))
print(y)

我正在通过pip使用虚拟环境。 有人能帮我吗。预先感谢。

1 个答案:

答案 0 :(得分:0)

pip install -U scipy

这将解决您的问题。我已经尝试过了,它为我做了。您可能会收到一个错误消息,说明scikit-learn没有正确安装。如果遇到该错误,则可以先运行:

pip install -U scikit-learn

,然后重新运行上面的代码。