NumPy:源代码中哪里定义了"arange"和"array"函数?



我一直在 NumPy 中寻找arangearray函数的源代码,但我找不到它:https://github.com/numpy/numpy/search?utf8=%E2%9C%93&q=%22def+arange%22+path%3Anumpy%2Fcore&type=

谁能开导我?

numpy.arraynumpy.arange是用C语言编写的。你可以分辨出来,因为他们在看它们时说"内置":

>>> numpy.array
<built-in function array>
>>> numpy.arange
<built-in function arange>

这意味着没有def声明。相反,我们看看它们来自哪个模块:

>>> numpy.array.__module__
'numpy.core.multiarray'
>>> numpy.arange.__module__
'numpy.core.multiarray'

导航到相应的源文件,并查看控制模块导出函数的数组:

{"array",
(PyCFunction)_array_fromobject,
METH_VARARGS|METH_KEYWORDS, NULL},
...
{"arange",
(PyCFunction)array_arange,
METH_VARARGS|METH_KEYWORDS, NULL},

numpy.arraynumpy.arange对应于该文件中的_array_fromobjectarray_arange。不过,这并不是所有工作发生的地方。您需要不断挖掘以找到所有相关代码。

这些在multiarraymodule.c中定义:

https://github.com/numpy/numpy/blob/820765d762513510a8e46f108e8bc8b366127f8f/numpy/core/src/multiarray/multiarraymodule.c#L4279

Python 中的array

函数在 C 中_array_fromobject(),Python 中的arange函数在 C 中array_arange()

最新更新