python - 如何在python中计算ndarray持有Fraction类型变量的倒数?
问题描述
我试图在 python 中计算二维数组的倒数,该数组包含分数并且无法将其转换为浮点数,因为我需要正确保持分子和分母之间的比率。
A = np.array([[Fraction(1), Fraction(-0.5)], [Fraction(-4/9), Fraction(1)]])
当我尝试np.linalg.inv(A)时,我收到以下错误: 'TypeError: No loop match the specified signature and cast was found for ufunc inv'
解决方案
Fraction
是 Python 类型,但不是本机 numpy dtype。换句话说,从 numpy 的角度来看,Fractions
是(不透明的)对象。如果您设法使用 numpy 方法对它们进行操作,它们很可能会自动转换为浮点类型(在 numpy 中是本机的)。
长话短说,没有 numpy 向量化方法能够处理Fraction
对象,因此您不应该使用np.array
来存储它们,而是坚持使用普通的旧列表,或者如果您想处理 2D 数组,则使用列表列表。
推荐阅读
- unit-testing - 组件渲染函数中的Vue无限更新循环
- r - 如何在所有excel文件中找到确切的工作表数
- html - 宽度:最大内容,宽度:适合内容在 Edge 中不起作用
- docker - Docker-compose 级联构建镜像
- firebase - Unity/Firebase Google 登录在 Android 上强制关闭
- docker - docker 容器上的 I2C 设备
- java - BLE 与 MiBand 3
- python - 将 Numpy 数组除以标量,其中 Array-Element 低于某个值
- ios - Apple 是否支持“可编码 Firestore”?
- svg - 谁能告诉我什么
和 在 svg 中?