【发布时间】:2017-04-15 22:03:56
【问题描述】:
当你有两个 numPy 矩阵时,你可以调用一个点函数来将它们相乘。或者您可以手动遍历每个值并手动乘以每个值。为什么和什么是速度差异?当然点功能仍然必须这样做,但较低级别?
【问题讨论】:
标签: python performance numpy processing-efficiency
当你有两个 numPy 矩阵时,你可以调用一个点函数来将它们相乘。或者您可以手动遍历每个值并手动乘以每个值。为什么和什么是速度差异?当然点功能仍然必须这样做,但较低级别?
【问题讨论】:
标签: python performance numpy processing-efficiency
是的,这两种方法都必须遍历两个矩阵中的值。但是,python 是动态类型的,因此循环体需要检查用于迭代的三个索引的类型,确保支持对两个输入矩阵进行索引,确定从矩阵中提取的值的类型,...
正如您所说,numpy 实现是较低级别的,并且对输入和输出做出了更强的假设。特别是,矩阵乘法是用静态类型语言(C 或 Fortran——我不太记得)实现的,这样类型检查的开销就消失了。此外,低级语言的索引是一个相对简单的操作。
【讨论】: