1

目标是处理以“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只是被忽略。知道如何解决这个问题吗?任何解决方法?

(该要求源于该领域遵循的标准做法。)

4

1 回答 1

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

这是我所要求的。

这是唯一的方法吗?或者现有的单位也可以达到同样的效果(哪个更好)?

于 2017-06-14T16:06:12.220 回答