class_docstr: Python friendly wrapper of ``vtk.DataSetAttributes``.
  
  This class provides the ability to pick one of the present arrays as the
  currently active array for each attribute type by implementing a
  ``dict`` like interface.
  
  When adding data arrays but not desiring to set them as active
  scalars or vectors, use :func:`DataSetAttributes.set_array`.
  
  When adding directional data (such as velocity vectors), use
  :func:`DataSetAttributes.set_vectors`.
  
  When adding non-directional data (such as temperature values or
  multi-component scalars like RGBA values), use
  :func:`DataSetAttributes.set_scalars`.
  
  .. versionchanged:: 0.32.0
      The ``[]`` operator no longer allows integers.  Use
      :func:`DataSetAttributes.get_array` to retrieve an array
      using an index.
  
  Parameters
  ----------
  vtkobject : vtkFieldData
      The vtk object to wrap as a DataSetAttribute, usually an
      instance of ``vtk.vtkCellData``, ``vtk.vtkPointData``, or
      ``vtk.vtkFieldData``.
  
  dataset : vtkDataSet
      The vtkDataSet containing the vtkobject.
  
  association : FieldAssociation
      The array association type of the vtkobject.
  
  Notes
  -----
  When printing out the point arrays, you can see which arrays are
  the active scalars, vectors, normals, and texture coordinates.
  In the arrays list, ``SCALARS`` denotes that these are the active
  scalars, ``VECTORS`` denotes that these arrays are tagged as the
  active vectors data (i.e. data with magnitude and direction) and
  so on.
  
  Examples
  --------
  Store data with point association in a DataSet.
  
  >>> import pyvista as pv
  >>> mesh = pv.Cube()
  >>> mesh.point_data['my_data'] = range(mesh.n_points)
  >>> data = mesh.point_data['my_data']
  >>> data
  pyvista_ndarray([0, 1, 2, 3, 4, 5, 6, 7])
  
  Change the data array and show that this is reflected in the DataSet.
  
  >>> data[:] = 0
  >>> mesh.point_data['my_data']
  pyvista_ndarray([0, 0, 0, 0, 0, 0, 0, 0])
  
  Remove the array.
  
  >>> del mesh.point_data['my_data']
  >>> 'my_data' in mesh.point_data
  False
  
  Print the available arrays from dataset attributes.
  
  >>> import numpy as np
  >>> mesh = pv.Plane(i_resolution=1, j_resolution=1)
  >>> mesh.point_data.set_array(range(4), 'my-data')
  >>> mesh.point_data.set_array(range(5, 9), 'my-other-data')
  >>> vectors0 = np.random.default_rng().random((4, 3))
  >>> mesh.point_data.set_vectors(vectors0, 'vectors0')
  >>> vectors1 = np.random.default_rng().random((4, 3))
  >>> mesh.point_data.set_vectors(vectors1, 'vectors1')
  >>> mesh.point_data
  pyvista DataSetAttributes
  Association     : POINT
  Active Scalars  : None
  Active Vectors  : vectors1
  Active Texture  : TextureCoordinates
  Active Normals  : Normals
  Contains arrays :
      Normals                 float32    (4, 3)               NORMALS
      TextureCoordinates      float32    (4, 2)               TCOORDS
      my-data                 int64      (4,)
      my-other-data           int64      (4,)
      vectors1                float64    (4, 3)               VECTORS
      vectors0                float64    (4, 3)
class_docstr_tok: ["Python","friendly","wrapper","of","``","vtk.DataSetAttributes","``",".","This","class","provides","the","ability","to","pick","one","of","the","present","arrays","as","the","currently","active","array","for","each","attribute","type","by","implementing","a","``","dict","``","like","interface",".","When","adding","data","arrays","but","not","desiring","to","set","them","as","active","scalars","or","vectors",",","use",":","func",":","`","DataSetAttributes.set_array","`",".","When","adding","directional","data","(","such","as","velocity","vectors",")",",","use",":","func",":","`","DataSetAttributes.set_vectors","`",".","When","adding","non-directional","data","(","such","as","temperature","values","or","multi-component","scalars","like","RGBA","values",")",",","use",":","func",":","`","DataSetAttributes.set_scalars","`",".","..","versionchanged",":",":","0.32.0","The","``","[","]","``","operator","no","longer","allows","integers",".","Use",":","func",":","`","DataSetAttributes.get_array","`","to","retrieve","an","array","using","an","index",".","Parameters","--","--","--","--","--","vtkobject",":","vtkFieldData","The","vtk","object","to","wrap","as","a","DataSetAttribute",",","usually","an","instance","of","``","vtk.vtkCellData","``",",","``","vtk.vtkPointData","``",",","or","``","vtk.vtkFieldData","``",".","dataset",":","vtkDataSet","The","vtkDataSet","containing","the","vtkobject",".","association",":","FieldAssociation","The","array","association","type","of","the","vtkobject",".","Notes","--","--","-","When","printing","out","the","point","arrays",",","you","can","see","which","arrays","are","the","active","scalars",",","vectors",",","normals",",","and","texture","coordinates",".","In","the","arrays","list",",","``","SCALARS","``","denotes","that","these","are","the","active","scalars",",","``","VECTORS","``","denotes","that","these","arrays","are","tagged","as","the","active","vectors","data","(","i.e",".","data","with","magnitude","and","direction",")","and","so","on",".","Examples","--","--","--","--","Store","data","with","point","association","in","a","DataSet",".",">",">",">","import","pyvista","as","pv",">",">",">","mesh","=","pv.Cube","(",")",">",">",">","mesh.point_data","[","'my_data","'","]","=","range","(","mesh.n_points",")",">",">",">","data","=","mesh.point_data","[","'my_data","'","]",">",">",">","data","pyvista_ndarray","(","[","0",",","1",",","2",",","3",",","4",",","5",",","6",",","7","]",")","Change","the","data","array","and","show","that","this","is","reflected","in","the","DataSet",".",">",">",">","data","[",":","]","=","0",">",">",">","mesh.point_data","[","'my_data","'","]","pyvista_ndarray","(","[","0",",","0",",","0",",","0",",","0",",","0",",","0",",","0","]",")","Remove","the","array",".",">",">",">","del","mesh.point_data","[","'my_data","'","]",">",">",">","'my_data","'","in","mesh.point_data","False","Print","the","available","arrays","from","dataset","attributes",".",">",">",">","import","numpy","as","np",">",">",">","mesh","=","pv.Plane","(","i_resolution=1",",","j_resolution=1",")",">",">",">","mesh.point_data.set_array","(","range","(","4",")",",","'my-data","'",")",">",">",">","mesh.point_data.set_array","(","range","(","5",",","9",")",",","'my-other-data","'",")",">",">",">","vectors0","=","np.random.default_rng","(",")",".random","(","(","4",",","3",")",")",">",">",">","mesh.point_data.set_vectors","(","vectors0",",","'vectors0","'",")",">",">",">","vectors1","=","np.random.default_rng","(",")",".random","(","(","4",",","3",")",")",">",">",">","mesh.point_data.set_vectors","(","vectors1",",","'vectors1","'",")",">",">",">","mesh.point_data","pyvista","DataSetAttributes","Association",":","POINT","Active","Scalars",":","None","Active","Vectors",":","vectors1","Active","Texture",":","TextureCoordinates","Active","Normals",":","Normals","Contains","arrays",":","Normals","float32","(","4",",","3",")","NORMALS","TextureCoordinates","float32","(","4",",","2",")","TCOORDS","my-data","int64","(","4",",",")","my-other-data","int64","(","4",",",")","vectors1","float64","(","4",",","3",")","VECTORS","vectors0","float64","(","4",",","3",")"]
docstr: Set the active vectors of this data attribute.
  
  Vectors are a quantity that has magnitude and direction, such
  as normal vectors or a velocity field.
  
  The vectors data must contain three components per cell or point.  Use
  :func:`DataSetAttributes.set_scalars` when adding non-directional data.
  
  Parameters
  ----------
  vectors : Matrix
      Data shaped ``(n, 3)`` where n matches the number of points or cells.
  
  name : str
      Name of the vectors.
  
  deep_copy : bool, default: False
      When ``True`` makes a full copy of the array.  When ``False``, the
      data references the original array without copying it.
  
  Notes
  -----
  PyVista and VTK treats vectors and scalars differently when performing
  operations. Vector data, unlike scalar data, is rotated along with the
  geometry when the DataSet is passed through a transformation filter.
  
  When adding non-directional data (such temperature values or
  multi-component scalars like RGBA values), you can also use
  :func:`DataSetAttributes.set_scalars`.
  
  Examples
  --------
  Add random vectors to a mesh as point data.
  
  >>> import pyvista as pv
  >>> import numpy as np
  >>> mesh = pv.Cube()
  >>> mesh.clear_data()
  >>> vectors = np.random.default_rng().random((mesh.n_points, 3))
  >>> mesh.point_data.set_vectors(vectors, 'my-vectors')
  >>> mesh.point_data
  pyvista DataSetAttributes
  Association     : POINT
  Active Scalars  : None
  Active Vectors  : my-vectors
  Active Texture  : None
  Active Normals  : None
  Contains arrays :
      my-vectors              float64    (8, 3)               VECTORS
docstr_tok: ["Set","the","active","vectors","of","this","data","attribute",".","Vectors","are","a","quantity","that","has","magnitude","and","direction",",","such","as","normal","vectors","or","a","velocity","field",".","The","vectors","data","must","contain","three","components","per","cell","or","point",".","Use",":","func",":","`","DataSetAttributes.set_scalars","`","when","adding","non-directional","data",".","Parameters","--","--","--","--","--","vectors",":","Matrix","Data","shaped","``","(","n",",","3",")","``","where","n","matches","the","number","of","points","or","cells",".","name",":","str","Name","of","the","vectors",".","deep_copy",":","bool",",","default",":","False","When","``","True","``","makes","a","full","copy","of","the","array",".","When","``","False","``",",","the","data","references","the","original","array","without","copying","it",".","Notes","--","--","-","PyVista","and","VTK","treats","vectors","and","scalars","differently","when","performing","operations",".","Vector","data",",","unlike","scalar","data",",","is","rotated","along","with","the","geometry","when","the","DataSet","is","passed","through","a","transformation","filter",".","When","adding","non-directional","data","(","such","temperature","values","or","multi-component","scalars","like","RGBA","values",")",",","you","can","also","use",":","func",":","`","DataSetAttributes.set_scalars","`",".","Examples","--","--","--","--","Add","random","vectors","to","a","mesh","as","point","data",".",">",">",">","import","pyvista","as","pv",">",">",">","import","numpy","as","np",">",">",">","mesh","=","pv.Cube","(",")",">",">",">","mesh.clear_data","(",")",">",">",">","vectors","=","np.random.default_rng","(",")",".random","(","(","mesh.n_points",",","3",")",")",">",">",">","mesh.point_data.set_vectors","(","vectors",",","'my-vectors","'",")",">",">",">","mesh.point_data","pyvista","DataSetAttributes","Association",":","POINT","Active","Scalars",":","None","Active","Vectors",":","my-vectors","Active","Texture",":","None","Active","Normals",":","None","Contains","arrays",":","my-vectors","float64","(","8",",","3",")","VECTORS"]
code: def set_vectors(self, vectors: Matrix, name: str, deep_copy=False):
      """Set the active vectors of this data attribute.
  
      Vectors are a quantity that has magnitude and direction, such
      as normal vectors or a velocity field.
  
      The vectors data must contain three components per cell or point.  Use
      :func:`DataSetAttributes.set_scalars` when adding non-directional data.
  
      Parameters
      ----------
      vectors : Matrix
          Data shaped ``(n, 3)`` where n matches the number of points or cells.
  
      name : str
          Name of the vectors.
  
      deep_copy : bool, default: False
          When ``True`` makes a full copy of the array.  When ``False``, the
          data references the original array without copying it.
  
      Notes
      -----
      PyVista and VTK treats vectors and scalars differently when performing
      operations. Vector data, unlike scalar data, is rotated along with the
      geometry when the DataSet is passed through a transformation filter.
  
      When adding non-directional data (such temperature values or
      multi-component scalars like RGBA values), you can also use
      :func:`DataSetAttributes.set_scalars`.
  
      Examples
      --------
      Add random vectors to a mesh as point data.
  
      >>> import pyvista as pv
      >>> import numpy as np
      >>> mesh = pv.Cube()
      >>> mesh.clear_data()
      >>> vectors = np.random.default_rng().random((mesh.n_points, 3))
      >>> mesh.point_data.set_vectors(vectors, 'my-vectors')
      >>> mesh.point_data
      pyvista DataSetAttributes
      Association     : POINT
      Active Scalars  : None
      Active Vectors  : my-vectors
      Active Texture  : None
      Active Normals  : None
      Contains arrays :
          my-vectors              float64    (8, 3)               VECTORS
  
      """
      # prepare the array and add an attribute so that we can track this as a vector
      vtk_arr = self._prepare_array(vectors, name, deep_copy)
  
      n_comp = vtk_arr.GetNumberOfComponents()
      if n_comp != 3:
          raise ValueError(
              f"Vector array should contain 3 components, got {n_comp}"
          )
  
      # check if there are current vectors, if so, we need to keep
      # this array around since setting active vectors will remove
      # this array.
      current_vectors = self.GetVectors()
  
      # now we can set the active vectors and add back in the old vectors as an array
      self.VTKObject.SetVectors(vtk_arr)
      if current_vectors is not None:
          self.VTKObject.AddArray(current_vectors)
  
      self.VTKObject.Modified()
  
imports: from typing import TYPE_CHECKING, Any, Dict, Iterator, List, Optional, Tuple, Union
  import warnings
  import numpy
  from .None import _vtk_core
  from ._typing_core import Array, Matrix
  from .errors import PyVistaDeprecationWarning
  from .pyvista_ndarray import pyvista_ndarray
  from .utilities.arrays import FieldAssociation, convert_array, copy_vtk_array
label_desc: Use image node_id 22 for calling the DataSetAttributes obj's underlying member method code with example usage: obj.set_vectors(vectors, name, deep_copy) without return types