繁体   English   中英

矩阵乘法和循环遍历之间的根本区别是什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM