我正在尝试使用 numpy 数组中的元素作为 Fraction
模块的输入,但出现以下错误:“TypeError: both arguments should be Rational instances”
例如,如果我这样做:
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 数组转换为分数模块所需的“Rational 实例”?
最佳答案
这似乎是 Numpy 整数与 Python 抽象类交互方式的不幸产物之一(它还取决于您运行的是 32 位还是 64 位 Python,因为 dtype='int'
表示 np.int32
或 np.int64
,但绝不表示 Python int
)。
显式转换为 Python int
应该可行:
Fraction(58, int(X))
关于python - 在 Python 的 Fraction 模块中使用 numpy 向量元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16147559/