首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向yt数组添加标量值?

如何向yt数组添加标量值?
EN

Stack Overflow用户
提问于 2014-09-26 17:22:46
回答 1查看 236关注 0票数 2

我试图在yt中的一个导出字段中添加一个数字地板。然而,当我尝试: new_field = 1.0e-10 +数据‘金属_密度’

我得到以下错误:

代码语言:javascript
复制
In [1]: ad = ds.all_data()

In [2]: floored_density = 1.0e-10 + ad['density'] yt : [INFO     ] 2014-09-26 10:15:21,901 Gathering a field list (this may take a moment.) yt : [INFO     ] 2014-09-26 10:15:22,275 Loading field plugins. yt : [INFO     ] 2014-09-26 10:15:22,275 Loaded angular_momentum (8 new fields) yt : [INFO     ] 2014-09-26 10:15:22,276 Loaded astro (14 new fields) yt : [INFO     ] 2014-09-26 10:15:22,276 Loaded cosmology (20 new fields) yt : [INFO     ] 2014-09-26 10:15:22,276 Loaded fluid (56 new fields) yt : [INFO     ] 2014-09-26 10:15:22,277 Loaded fluid_vector (88 new fields) yt : [INFO ] 2014-09-26 10:15:22,278 Loaded geometric (102 new fields) yt : [INFO ] 2014-09-26 10:15:22,278 Loaded local (102 new fields) yt : [INFO     ] 2014-09-26 10:15:22,278 Loaded magnetic_field (108 new fields) yt : [INFO     ] 2014-09-26 10:15:22,278 Loaded species (108 new fields)
--------------------------------------------------------------------------- YTUnitOperationError                      Traceback (most recent call last) /home/skillman/yt-x86_64/src/yt-3.0/yt/mods.pyc in <module>()
----> 1 floored_density = 1.0e-10 + ad['density']

/home/skillman/yt-x86_64/src/yt-3.0/yt/units/yt_array.pyc in
__radd__(self, left_object)
    674     def __radd__(self, left_object):
    675         """ See __add__. """
--> 676         lo = sanitize_units_add(self, left_object, "addition")
    677         return YTArray(super(YTArray, self).__radd__(lo))
    678 

/home/skillman/yt-x86_64/src/yt-3.0/yt/units/yt_array.pyc in sanitize_units_add(this_object, other_object, op_string)
    159     else:
    160         if not inp.units.is_dimensionless:
--> 161             raise YTUnitOperationError(op_string, inp.units, dimensionless)
    162     return ret
    163 

YTUnitOperationError: The addition operator for YTArrays with units (g/cm**3) and (1) is not well defined.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-26 17:26:10

只要您注意要添加的标量与yt数组的单位相同,就可以执行以下操作:

代码语言:javascript
复制
ad = ds.all_data()

floored_density = 1.0e-10 * ad['density'].uq + ad['density']

.uq代表“单位数量”,在所述字段的单位中等于1.0。在这种情况下,ad‘密度’..uq等于1.0g/cm**3。

挂起yt数组的其他有用属性在这里描述:quantity#Creating-arrays-and-quantities

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26065032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档