Spojrzeliśmy na stronach manuala dla numpy
„s eye
i identity
, ja założyć, że identity
był szczególny przypadek eye
, ponieważ ma mniej opcji (np eye
może wypełnić przesunięte przekątnych identity
nie mogą), ale może wiarygodnie uruchomić szybciej. Jednak nie jest to sprawa na małą lub dużą tablic:Jakie są zalety korzystania z numpy.identity przez numpy.eye?
>>> 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
Co zatem jest zaletą korzystania identity
nad eye
?