在Cython文档的教程中,有numpy模块的cimport和import语句:
import numpy as np
cimport numpy as np
我发现这种约定在numpy/cython用户中非常流行。
这对我来说看起来很奇怪,因为它们都被命名为np。 在代码的哪个部分,导入/ cimport的np被使用? 为什么cython编译器不会混淆它们?
在Cython文档的教程中,有numpy模块的cimport和import语句:
import numpy as np
cimport numpy as np
我发现这种约定在numpy/cython用户中非常流行。
这对我来说看起来很奇怪,因为它们都被命名为np。 在代码的哪个部分,导入/ cimport的np被使用? 为什么cython编译器不会混淆它们?
cimport my_module
可以访问my_module
下的C函数、属性,甚至子模块。
import my_module
可以访问my_module
下的Python函数、属性和子模块。
在您的情况下:
cimport numpy as np
让你可以访问Numpy C API,从而可以声明数组缓冲区、变量类型等等...
还有:
import numpy as np
为您提供NumPy-Python函数的访问,如np.array
、np.linspace
等。
Cython在内部处理此歧义,使用户无需使用不同的名称。
Includes
文件夹。在那里,您将找到 Cython 导入的 .pxd
文件。 - m00am
cimport
并不真正导入一个(Python)模块。它导入了(C)定义。我不知道,但我可以想象,如果你把第二行改成只有cimport numpy
,事情可能会出错:它很可能需要实际在脚本中使用的Python模块名称与定义命名空间之间的对应关系。 - user707650cimport numpy
,就像使用import numpy
一样,它的工作方式完全相同,但是cimport
可以访问导入模块下的C函数或属性,而import
则是Python函数或属性。 - Saullo G. P. Castro