Python AttributeError:未找到exp
A是由代码创建的邻接矩阵:Python AttributeError:未找到exp,python,numpy,scipy,networkx,exponential,Python,Numpy,Scipy,Networkx,Exponential,A是由代码创建的邻接矩阵: n=sc.shape(A)[0] sim=sc.eye(n) I=sc.eye(n) P= normalize(A, norm='l1', axis=0) Q=P*(1-np.exp(-A)) 我得到的错误是: df=pd.read_csv('training.csv') G=nx.from_pandas_dataframe(df,'node1',
n=sc.shape(A)[0]
sim=sc.eye(n)
I=sc.eye(n)
P= normalize(A, norm='l1', axis=0)
Q=P*(1-np.exp(-A))
我得到的错误是:
df=pd.read_csv('training.csv')
G=nx.from_pandas_dataframe(df,'node1','node2','weight')
A = nx.adjacency_matrix(G)
注意:我也尝试了SO答案建议的解决方案A=A.aType(float)。
A
是一个scipy稀疏矩阵。这样的矩阵不实现exp
函数,因为这会将所有0转换为1,从而导致密集的矩阵
要使用稀疏矩阵进行计算,可以将1-np.exp(-a)
写成-(np.exp(-a)-1)=-np.expm1(-a)
。即更换
File "ROC_final.py", line 36, in ASCOSplus
Q=P*(1-np.exp(-A))
File "C:\Python27\lib\site-packages\scipy\sparse\base.py", line 647, in __getattr__
raise AttributeError(attr + " not found")
AttributeError: exp not found
与
相当于exp(x)-1。该函数将零映射到零,因此它是稀疏矩阵的“安全”元素函数
scipy稀疏矩阵有一个expm1()
方法(它最终调用了np.expm1
),因此您也可以将该行写成
Q = -P*np.expm1(-A)
A
是一个稀疏矩阵。这样的矩阵不实现exp
函数,因为这会将所有0转换为1,从而导致密集的矩阵
要使用稀疏矩阵进行计算,可以将1-np.exp(-a)
写成-(np.exp(-a)-1)=-np.expm1(-a)
。即更换
File "ROC_final.py", line 36, in ASCOSplus
Q=P*(1-np.exp(-A))
File "C:\Python27\lib\site-packages\scipy\sparse\base.py", line 647, in __getattr__
raise AttributeError(attr + " not found")
AttributeError: exp not found
与
相当于exp(x)-1。该函数将零映射到零,因此它是稀疏矩阵的“安全”元素函数
scipy稀疏矩阵有一个expm1()
方法(它最终调用了np.expm1
),因此您也可以将该行写成
Q = -P*np.expm1(-A)