【问题标题】:What is the fastest way for matrix multiplication in Python?Python中矩阵乘法的最快方法是什么?
【发布时间】:2021-04-19 14:38:55
【问题描述】:

我正在用 Python 编写一个以速度为主要驱动力的应用程序。在优化我的代码时,我发现主要的瓶颈在于用于计算的代码

在我的代码中,这个矩阵乘法计算为

POW = np.arange(4)
y = C @ (x ** POW)

我尝试使用不同的方法(例如,for cycle 等),但现在这是我找到的最快的方法。您对提高计算时间有什么建议吗?

【问题讨论】:

  • 可能使用numpy
  • 这很小,应该几乎不需要时间。
  • “用 Python 编写一个以速度为主要驱动力的应用程序”——呃,别这样。
  • 是的,我已经在使用numpy了(见代码中的命令np.arange

标签: python time matrix-multiplication


【解决方案1】:

绝对使用 Numpy。 Numpy 在高度优化的 C 代码中执行实际的数学运算。使用 Numpy 比编写自己的非优化 C 代码要快。

【讨论】:

  • 我已经在使用numpy了(见代码中的命令np.arange
  • 我是说你正在做的事情——使用 Numpy——是最快的方法。你正在做的应该是 ~ 1000 毫秒。
  • 这么小的计算需要 1 秒?
  • 抱歉,应该是 ~ 1000 ns。 IE。 1 微秒。
【解决方案2】:

首先,使用 float 代替 int。其次,如果您不需要双精度,请使用 np.float32。

POW = np.arange(4, dtype='f')
# C = C.astype('f', copy=False) # ensure that C.dtype == np.float32
y = C @ (x ** POW)

【讨论】:

    猜你喜欢
    • 2016-02-06
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 2021-02-11
    • 2011-11-12
    • 2012-11-30
    • 2011-04-08
    • 2013-12-21
    相关资源
    最近更新 更多