这个问题来自post。
我正在挖掘numpy.linalg.eig
的基本逻辑。
w, v = np.linalg.eig(C.T*C)
v
matrix([[-0.9486833 , -0.31622777],
[ 0.31622777, -0.9486833 ]])
np.linalg.eig的实现
w, vt = _umath_linalg.eig(a, signature=signature, extobj=extobj)
已链接here,后者链接到_umath_linalg.py
_umath_linalg.py对应于<python3.6>/site-packages/numpy/linalg/_umath_linalg.cpython-36m-darwin.so
我在cpython源代码gh repo上搜索了许多来自_umath_linalg.eig的关键字,但没有任何关联。
在这种情况下,如何找到_umath_linalg.cpython-36m-darwin.so或_umath_linalg.eig
的cpython源代码文件?
答案 0 :(得分:1)
不同库在PyPi之外的确切位置并不是所有模块的共同位置,但通常它们位于github上。在这种情况下,您不是要查找cpython本身的源,而是numpy中的linalg模块的源。向搜索引擎询问numpy linalg github
将give you the location。
您也可以use pip download
将PyPi上可用的任何模块的源代码下载到您选择的目录中。这对于获取特定版本以及查看已上传到PyPi的内容很有用:
pip download numpy -d <directory>