我正在尝试使用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')
,但没有成功。
如何在Fraction模块所需的“Rational实例”中转换numpy数组?
答案 0 :(得分:5)
这似乎是Numpy整数与Python的抽象类交互方式的一个不幸的工件(它还取决于你是运行32位还是64位Python,因为dtype='int'
意味着{ {1}}或np.int32
,但绝不是Python np.int64
)。
明确转换为Python int
应该有效:
int