python - np.prod 与 pint.UnitRegistry() 的单位 - python
问题描述
我正在尝试使用pint.UnitRegistry()
错误示例找到具有给定边长的体素的体积:
import pint
import numpy as np
ureg = pint.UnitRegistry()
voxel_size = (81.3, 30.2, 45.3) * ureg.micrometer
volume = np.prod(voxel_size)
结果是:
TypeError: no implementation found for 'numpy.prod' on types
that implement __array_function__: [<class 'pint.quantity.build_quantity_class.<locals>.Quantity'>]
我该如何解决这个问题?
解决方案
基本pint
不支持numpy.prod
。有关支持的功能,请参阅文档。numpy
问题是pint.UnitRegistry()
返回的对象类型pint.quantity.build_quantity_class.<locals>.Quantity
不是数字数组,因此numpy.prod
无法识别。
要pint
用于您正在尝试做的事情,请尝试以下...
import pint
import numpy as np
ureg = pint.UnitRegistry()
vox_volume = voxel_size = [81.3] * ureg.micrometer * [30.2] * ureg.micrometer * [45.3] * ureg.micrometer
print(vox_volume)
推荐阅读
- flyway - 移动现有数据库使用flyway时,基线迁移是否需要包含所有现有表的DDL?
- flutter - 如何更改 CircularProgressIndicator 的 Valuecolor
- c# - C# NewtonSoft 单个对象或数组 JsonConverter 不工作,没有错误
- java - 如何打印出类对象的 ArrayList?
- java - 为什么我会收到 NoClassDefFoundError?我的代码在 IDE 上运行良好
- nfc - 如何在单个 NFC 记录中包含多个文本字段?
- c# - 如何锁定dataGridView的实际水平位置
- email - 将 MailEnable 邮箱导出到另一个邮件服务
- python - 根据预先指定的总和缩放数组
- vue.js - 在 Vue 3 中只选中一个复选框