![](/img/trans.png)
[英]What is the difference between multiplying an array and looping to create one?
[英]What is the underlying difference between multiplying a matrix and looping through?
当您有两个numPy矩阵时,可以调用点函数将它们相乘。 或者,您可以手动遍历每个值并手动乘以每个值。 速度差异为何?差异为何? 当然,点功能仍然必须这样做,但是较低级别?
是的,两种方法都必须遍历两个矩阵中的值。 但是,python是动态类型的,因此循环主体需要检查用于迭代的三个索引的类型,确保支持对两个输入矩阵进行索引,确定从矩阵中提取的值的类型,...
如您所说,numpy实现是较低级别的,并且对输入和输出进行了更强的假设。 特别是,矩阵乘法是以静态类型的语言(C或Fortran,我不太记得)实现的,这样类型检查的开销就消失了。 此外,在较低级语言中建立索引是一个相对简单的操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.