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数组?
这似乎是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)