如题所述
不一定会一模一样,这还跟你的操作系统的环境配置有关。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2014-12-31
我们将NumPy中的det()和slogdet()的运算放在一起,并对程序做了如下改动:
删除对输入矩阵的检测,直接将其当作是满足条件的双精度浮点数组。
无须对输入矩阵进行转置,因为转置矩阵的行列式与原始矩阵的行列式相同。
不对输入矩阵进行复制,lapack_lite.dgetrf()的计算结果将覆盖输入矩阵。如果需要保留原始矩阵,可以在调用dets_fast()之前复制数据。
创建一个形状为MxN的整数数组pivots,用来保存每次调用lapack_lite.dgetrf()时所得到的pivot数组。
将取对象线元素的diagonal(a)转换为使用高级下标存取:idx = np.arange(n); d = a[:, idx, idx]
采用NumPy的矢量运算,省略Python级别的循环。本回答被提问者和网友采纳
删除对输入矩阵的检测,直接将其当作是满足条件的双精度浮点数组。
无须对输入矩阵进行转置,因为转置矩阵的行列式与原始矩阵的行列式相同。
不对输入矩阵进行复制,lapack_lite.dgetrf()的计算结果将覆盖输入矩阵。如果需要保留原始矩阵,可以在调用dets_fast()之前复制数据。
创建一个形状为MxN的整数数组pivots,用来保存每次调用lapack_lite.dgetrf()时所得到的pivot数组。
将取对象线元素的diagonal(a)转换为使用高级下标存取:idx = np.arange(n); d = a[:, idx, idx]
采用NumPy的矢量运算,省略Python级别的循环。本回答被提问者和网友采纳