Numpy 中函數(shù) eye 和 identity 的區(qū)別

環(huán)境:Anaconda3-5.2.0-Linux (Python3.6.5)

? 我們知道,np.eye() 和 np.identity() 都是用來(lái)創(chuàng)建 NxN 的單位矩陣,既然函數(shù)功能相同,那兩者有什么區(qū)別呢 ? 先來(lái)看兩組演示:

>>> import numpy as np
>>> np.eye(3) == np.identity(3)
Out: 
array([[ True,  True,  True],
       [ True,  True,  True],
       [ True,  True,  True]])
>>> import numpy as np
>>> np.eye(3) is np.identity(3)
Out: False

? 結(jié)論:數(shù)據(jù)類型相同,存儲(chǔ)地址不同。但還不能做出明確的區(qū)別判斷,再來(lái)看看函數(shù)的源代碼:

# eye() 
@set_module('numpy')
def eye(N, M=None, k=0, dtype=float, order='C'):
    """
    Return a 2-D array with ones on the diagonal and zeros elsewhere.
    """
    ......
    return m

# identity() 
@set_module('numpy')
def identity(n, dtype=None):
    """
    Return the identity array
    """
    ......
    from numpy import eye
    return eye(n, dtype=dtype)

? 區(qū)別很明顯,函數(shù) eye 和 indetity 都經(jīng)過 set_module 裝飾器裝飾,而函數(shù) identity 的返回值是經(jīng)過 eye() 處理后返回的。

? 希望我的文章對(duì)你有所幫助。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容