在Python的Fraction模块中使用numpy向量元素

gab*_*aiz 5 python numpy fractions

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

例如,如果我这样做:

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

然后:

a = Fraction(58,X)  
Run Code Online (Sandbox Code Playgroud)

我会得到同样的错误.我也尝试过 X=X.astype('int'),或者X=X.astype('int32')没有成功.

我需要做什么才能在Fraction模块所需的"Rational实例"中转换numpy数组?

Fre*_*Foo 5

这似乎是Numpy整数与Python的抽象类交互方式的一个不幸的工件(它还取决于你是运行32位还是64位Python,因为它dtype='int'意味着np.int32或者np.int64,但不是Python int).

显式转换为Python int应该工作:

Fraction(58, int(X))
Run Code Online (Sandbox Code Playgroud)