使用numpy.identity相比numpy.eye有什么优势?
使用numpy.identity相比numpy.eye有什么优势?
通过查看numpy
的eye
和identity
的手册,我认为identity
是eye
的一个特例,因为它的选项较少(例如,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
有什么优势呢?