numpy上不支持带有mkl的对象数组吗?

问题描述 投票:0回答:1

我最近从使用open blas编译的numpy转换为使用mkl编译的numpy。在纯数值运算中,矩阵乘法的速度明显加快。但是,当我运行一些代码时,我一直在使用这些代码乘以包含sympy变量的矩阵,现在出现错误

'当前不支持对象数组'

有人知道为什么mkl是这种情况而不是open blas是这种情况吗?

numpy sympy intel-mkl openblas
1个回答
0
投票

1.17.0发行说明

Support of object arrays in matmul
It is now possible to use matmul (or the @ operator) with object arrays. For instance, it is now possible to do:

from fractions import Fraction
a = np.array([[Fraction(1, 2), Fraction(1, 3)], [Fraction(1, 3), Fraction(1, 2)]])
b = a @ a

您是否正在使用@matmuldot)?包含numpy对象的sympy数组将是对象dtype。对象数组上的数学取决于将操作委派给对象自己的方法。快速编译库无法执行此操作,该库仅适用于cfloat之类的double类型。

作为一般规则,您不应该尝试混合numpysympy。数学是命中注定的,而且永远不会很快。使用sympy's自己的Matrix模块,或使用lambdify sympy表达式进行数字运算。

什么是mkl版本?您可能需要与该编译器的创建者一起探讨。

© www.soinside.com 2019 - 2024. All rights reserved.