【发布时间】:2017-07-23 12:02:11
【问题描述】:
我正在尝试在 Python 中实现单纯形法,因此我需要对数组使用高斯消元法。分数经常出现,为了更清晰和精确,我想保留分数形式而不是使用浮点数。 我知道“分数”模块,但我很难使用它。我使用这个模块编写了我的代码,但数组总是以浮点数返回。是不是可以打印一个里面有分数的数组? 在这个基本示例上:
>>> A
array([[-1., 1.],
[-2., -1.]])
>>> A[0][0] = Fraction(2, 3)
>>> A
array([[ 0.66666667, 1. ],
[-2. , -1. ]])
我想要
array([[2/3, 1. ],
[-2., -1. ]])
似乎 numpy 总是切换到浮点数
【问题讨论】:
-
如果您想使用精确有理数矩阵,sympy 可能会更好。
-
感谢您的回答,但我不会使用 sympy,因为我已经使用 numpy 开始了我的代码。我不知道 sympy,所以我在下一个代码中记住了这一点!
-
我在矩阵上测试了 sympy,它非常非常慢:stackoverflow.com/questions/45796747/…
标签: python arrays numpy fractions