5

我正在尝试使用 numpy 数组中的元素作为Fraction模块的输入,但出现以下错误:“TypeError:两个参数都应该是 Rational 实例”

例如,如果我这样做:

Y  =  np.array([7,1], dtype='int64')  
X  =  Y[0]*3+Y[1]

进而:

a = Fraction(58,X)  

我会得到同样的错误。我也试过做 X=X.astype('int'),还是X=X.astype('int32')没有成功。

我需要做什么才能将 numpy 数组转换为 Fraction 模块所需的“Rational 实例”?

4

1 回答 1

5

这似乎是 Numpy 整数与 Python 的抽象类交互方式的不幸产物之一(它还取决于您运行的是 32 位还是 64 位 Python,因为dtype='int'意思是np.int32or np.int64,但绝不是 Python int)。

显式转换为 Pythonint应该可以:

Fraction(58, int(X))
于 2013-04-22T12:59:41.510 回答