首页 > 解决方案 > 在python中修改vtk数组而不复制它

问题描述

我希望能够在 python 中修改 vtk 数组,而无需复制它们,修改它们,然后将它们添加回 vtk polydata。在 C++ 中,我假设使用引用是可行的。python中是否有类似的解决方案?

MWE如下

from os import read
import vtk as vtk
import numpy as np
from helpers.numpy_support import *
def main():
    sphere = vtk.vtkPolyDataReader()
    sphere.SetFileName('sphere.vtk')
    sphere.Update()
    polyData=sphere.GetOutput()
    array = vtk_to_numpy(polyData.GetPointData().GetAbstractArray('Result'))
    for a in array:
        a*=5.0
    writer = vtk.vtkPolyDataWriter()
    writer.SetFileName('modifiedSphere.vtk')
    writer.SetInputData(polyData)
    writer.Write()

main()

标签: pythonnumpyvtk

解决方案


在迭代中使用索引可以解决问题!

for i in range(len(array)):
   array[i]*=5

推荐阅读