18
说完看了看man页面numpy
的eye
和identity
,我认为identity
是的eye
一个特例,因为它具有较小的选项(例如eye
可以填写转移对角线,identity
不能),但可以振振有词地运行更快速。然而,这不是小或大的数组的情况:在numpy.eye上使用numpy.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
的优势在哪里?