Skip to main content
 首页 » 编程设计

python之有没有办法在 numpy 上查看某些函数的源代码

2025年05月04日19txw1958

有没有办法更好地理解函数背后的逻辑,而不是仅仅使用它/尝试错误或引用文档?例如 tolist()

我在谷歌上搜索过,没有找到我可以引用或重新创建的源代码。我想了解某些功能的基本构建 block 。或者有更好的建议来理解第 3 方功能/包吗?

请您参考如下方法:

Andrew Bowling 是对的,源代码在 github.com/numpy/numpy 上.但是,还有更简单的方法。

例如,假设我想找到 numpy.cumsum 的实现:

  1. 谷歌搜索。你会发现 documentation page
  2. 点击 [source]在文档页面上。
  3. 请记住,实现可能比阅读文档复杂得多。大部分写在 .

另一种方法是克隆存储库并使用 grep。

$ grep -rnil "cumsum" * --exclude-dir=doc/ --exclude-dir=benchmarks/ 
numpy/random/mtrand/mtrand.pyx 
numpy/lib/recfunctions.py 
numpy/lib/_iotools.py 
numpy/lib/shape_base.py 
numpy/lib/histograms.py 
numpy/lib/arraysetops.py 
numpy/lib/function_base.py 
numpy/lib/nanfunctions.py 
numpy/lib/tests/test_function_base.py 
numpy/lib/tests/test_nanfunctions.py 
numpy/lib/info.py 
numpy/matrixlib/tests/test_interaction.py 
numpy/core/include/numpy/ufuncobject.h 
numpy/core/src/multiarray/methods.c 
numpy/core/src/multiarray/calculation.c 
numpy/core/src/multiarray/calculation.h 
numpy/core/src/multiarray/scalartypes.c.src 
numpy/core/src/umath/_umath_tests.c.src 
numpy/core/fromnumeric.py 
numpy/core/code_generators/numpy_api.py 
numpy/core/tests/test_ufunc.py 
numpy/core/tests/test_regression.py 
numpy/core/info.py 
numpy/core/_add_newdocs.py 
numpy/ma/core.py 
numpy/ma/API_CHANGES.txt 
numpy/ma/README.txt 
numpy/ma/tests/test_core.py 
numpy/ma/tests/test_old_ma.py 

但是请注意:如果您是初学者并且在文档中找不到解释 - 就问吧。那要快得多。举出让你感到困惑的好例子,努力措辞问题。只有当您的问题非常具体并且 StackOverflow/Github 上的 numpy/scipy 问题无济于事时,才值得深入检查 numpy 的实现。 numpy/scipy 社区非常好。