aver preso visione delle pagine man per numpy
s' eye
e identity
, avevo supposto che identity
era un caso speciale di eye
, dal momento che ha meno opzioni (ad esempio eye
diagonali possono riempire spostato, identity
non può), ma potrebbe plausibilmente correre più velocemente. Tuttavia, questo non è il caso su entrambi gli array di piccole o grandi:Quali sono i vantaggi dell'uso di numpy.identity su 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
Qual è, allora, è il vantaggio di utilizzare identity
sopra eye
?