内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
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
?