使用numpy.identity相比numpy.eye有什么优势?

7 浏览
0 Comments

使用numpy.identity相比numpy.eye有什么优势?

通过查看numpyeyeidentity的手册,我认为identityeye的一个特例,因为它的选项较少(例如,eye可以填充偏移对角线,identity不能),但可能运行得更快。然而,无论是在小数组还是大数组上都不是这种情况:

>>> np.identity(3)                                                  
array([[ 1.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])
>>> np.eye(3)                                                       
array([[ 1.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])
>>> timeit.timeit("import numpy; numpy.identity(3)", number = 10000)
0.05699801445007324
>>> timeit.timeit("import numpy; numpy.eye(3)", number = 10000)     
0.03787708282470703
>>> timeit.timeit("import numpy", number = 10000)                   
0.00960087776184082
>>> timeit.timeit("import numpy; numpy.identity(1000)", number = 10000)
11.379066944122314
>>> timeit.timeit("import numpy; numpy.eye(1000)", number = 10000)     
11.247124910354614

那么,使用identity相比于eye有什么优势呢?

0