舍入FieldValueArray中的所有元素

时间:2018-10-12 13:09:40

标签: python numpy abaqus

找到了一些有关此问题的答案,但到目前为止没有一个有效。 我正在尝试将FieldValueArray中的所有数字四舍五入为2个小数。这是我用来获取字段FieldValueArray的Abaqus中的路径。

topCenter=o1.rootAssembly.instances['PART-1-1'].elementSets['SET-1']
stress=session.odbs[path].steps['Step-1'].frames[-1].fieldOutputs['S']
area=stress.getSubset(region=topCenter,position=INTEGRATION_POINT,elementType='C3D20R')
mises= area.getScalarField(invariant=MISES)

我尝试使用np.around进行四舍五入,但是错误提示了此消息。

import numpy as np
mises_round= np.around(mises,2)
File "C:\Abaqus\6.14-1\tools\SMApy\python2.7\lib\site-packages\numpy\core\fromnumeric.py", line 37, in _wrapit
result = getattr(asarray(obj),method)(*args, **kwds)
AttributeError: rint

发生相同的错误
mises_round= np.around(mises.values,2)

感谢任何想法!

1 个答案:

答案 0 :(得分:0)

mises是一个FieldOutput对象,并且around的第一个参数必须是一个“类似于数组”的对象。在FieldOutput中,您将获得如下数据:

mises.values[i].data

因此,即使mises.values也不起作用,因为around不知道从data属性中获取数据。因此,您需要使用数据创建一个新数组:

mises_round = np.around([v.data for v in mises.values], 2)