舍入 FieldValueArray 中的所有元素
Rounding all elements in a FieldValueArray
找到了一些关于此的答案,但 none 到目前为止有效。
我正在尝试将 FieldValueArray 中的所有数字四舍五入为 2 位小数。这是我用来获取 mises 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.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)
感谢任何想法!!
mises
是一个 FieldOutput 对象,around
的第一个参数必须是一个 "array like" 对象。在 FieldOutput 中,您会得到这样的数据:
mises.values[i].data
所以即使mises.values
也不行,因为around
不知道从data
属性中抓取数据。因此,您需要用数据创建一个新数组:
mises_round = np.around([v.data for v in mises.values], 2)
找到了一些关于此的答案,但 none 到目前为止有效。 我正在尝试将 FieldValueArray 中的所有数字四舍五入为 2 位小数。这是我用来获取 mises 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.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)
感谢任何想法!!
mises
是一个 FieldOutput 对象,around
的第一个参数必须是一个 "array like" 对象。在 FieldOutput 中,您会得到这样的数据:
mises.values[i].data
所以即使mises.values
也不行,因为around
不知道从data
属性中抓取数据。因此,您需要用数据创建一个新数组:
mises_round = np.around([v.data for v in mises.values], 2)