目标是处理以" 1000 / mm ^ 3"表示的细胞密度,即每立方毫米数千个。
目前我这样做是为了处理" 1 / mm ^ 3":
import quantities as pq
d1 = pq.Quantity(500000, "1/mm**3")
给出:
array(500000) * 1/mm**3
但我真正需要做的是接受单位为" 1000 / mm ^ 3"的值。这也应该是打印值的形式。当我尝试类似的东西时:
d1 = pq.Quantity(5, 1000/pq.mm**3)
我收到以下错误:
ValueError: units must be a scalar Quantity with unit magnitude, got 1000.0 1/mm**3
如果我尝试:
a = pq.Quantity(500, "1000/mm**3")
输出结果为:
array(500) * 1/mm**3
即。 1000
只会被忽略。
知道我该如何解决这个问题?任何解决方法?
(该要求来自该领域的标准做法。)
答案 0 :(得分:1)
我找到的一个可能的解决方案是创建新单位,例如:
k_per_mm3 = pq.UnitQuantity('1000/mm3', 1e3/pq.mm**3, symbol='1000/mm3')
d1 = pq.Quantity(500, k_per_mm3)
然后在打印'd1'时,我得到:
array(500) * 1000/mm3
这就是我的要求。
这是唯一的方法吗?或者可以用现有单位实现同样的目标(这是优选的)?