集成cython和python Spyder anaconda
我是python和Spyder的新手,我正在尝试对for循环进行Cythonization。我使用的是anaconda navigator中的Spyder 3.2.7,所以我只需按下绿色三角形按钮即可运行代码 我的pyx文件看起来像:集成cython和python Spyder anaconda,python,loops,cython,spyder,Python,Loops,Cython,Spyder,我是python和Spyder的新手,我正在尝试对for循环进行Cythonization。我使用的是anaconda navigator中的Spyder 3.2.7,所以我只需按下绿色三角形按钮即可运行代码 我的pyx文件看起来像: import numpy as np def saluti(): print('hello world') def new_sum(double[:] X, double[:] beta, double[:,:] theta): cdef int
import numpy as np
def saluti():
print('hello world')
def new_sum(double[:] X, double[:] beta, double[:,:] theta):
cdef int N = X.shape[0]
cdef double[:] Y = np.zeros(N)
cdef int i, j
for i in range(N):
for j in range(i):
Y[i] += beta[j] * np.exp(-theta[i, j]*(X[i] - X[j]))
return Y
而我的py文件:
import numpy as np
import pyximport
pyximport.install()
from prova_cythonn import saluti, new_sum
def old_sum (x, beta, theta):
N = x.shape[0]
y = np.zeros(N)
for i in range(N):
for j in range(i):
y[i] = y[i] + beta[j]*np.exp(-theta[i, j]*(x[i] - x[j]))
return y
... do stuff (like print(np.sum(old_sum) or print(np.sum(new_sum)) ...
仅导入“sallti”时,我没有收到任何错误,并获得在Ipython控制台中打印的“hello world”消息。如果我尝试导入新的求和函数
ImportError:无法导入名称“new\u sum”
在我看来,问题在于,如果我在启动py时修改并保存pyx节省的内容不被“读取”您是否可以编辑该问题以包含您收到的确切错误消息?我想答案是:既然已经有人问过,我是否应该删除它?可能是这样。也可以将其标记为副本,但删除它可能更容易