code: def validate(self, instance, value):
          
          if not isinstance(value, (tuple, list, np.ndarray)):
              self.error(instance, value)
          if isinstance(value, (tuple, list)):
              for i, val in enumerate(value):
                  if isinstance(val, string_types):
                      if val.upper() not in VECTOR_DIRECTIONS:
                          self.error(
                              instance=instance,
                              value=val,
                              extra='This is an invalid Vector3 representation.',
                          )
                      value[i] = VECTOR_DIRECTIONS[val.upper()]
  
          return super(Vector3Array, self).validate(instance, value)
docs: Check shape and dtype of vector
  
          validate also coerces the vector from valid strings (these
          include ZERO, X, Y, Z, -X, -Y, -Z, EAST, WEST, NORTH, SOUTH, UP,
          and DOWN) and scales it to the given length.