最近我遇到了有人使用numpy.transpose
而不是numpy.ndarray.T
,于是我很好奇并测试了一下时间:
from timeit import timeit
import numpy as np
array1015 = np.random.rand(10,15)
def nptrans():
np.transpose(array1015)
def npt():
array1015.T
print(timeit(nptrans))
print(timeit(npt))
结果如下:
np.transpose: 1.25864219666
np.ndarray.T: 0.720939874649
为什么呢?它们在底层不应该执行相同的操作吗?也许 np.transpose
执行了某种错误检查或其他减慢速度的操作?