参考这篇文章。
Numpy多层结构体数组
pos = np.dtype({'names': ['x', 'y','z'],
'formats': ['f','f','f']})
vertex = np.dtype({'names': ['pos', 'normal'],
'formats': [pos,pos]})
node = np.dtype({'names': ['vertex', 'pos','normal','angle'],
'formats': [vertex*20,pos,pos,'f']})
Yarn = np.dtype({'names': ['node', 'start', 'end'],
'formats': [node * 20,pos, pos, ]})
没找到方法,可以直接将变量的type设置为np.array(),所有对于三维数组还是用了一个结构体去设置。
要操作其中一个变量的话,比较麻烦。
a = yarn[1]["node"][0]["vertex"][10]["pos"]['x']
显的太乱了。
在python中没有直接用class定义结构体看起来和操作起来舒服。但numpy的话速度应该会快很多。因为要修改大量代码,所以没试验,只是坐下numpy结构体数组的笔记。