def at *positions
      # to be used to form index
      original_positions = positions
      positions = coerce_positions(*positions)
      validate_positions(*positions)

      if positions.is_a? Integer
        @data[positions]
      else
        values = positions.map { |pos| @data[pos] }
        Daru::Vector.new values, index: @index.at(*original_positions), dtype: dtype
      end
    end
def at *positions
      # to be used to form index
      original_positions = positions
      positions = coerce_positions(*positions)
      validate_positions(*positions)

      if positions.is_a? Integer
        @data[positions]
      else
        values = positions.map { |pos| @data[pos] }
        Daru::Vector.new values, index: @index.at(*original_positions), dtype: dtype
      end
    end
Returns vector of values given positional values
 @param positions [Array<object>] positional values
 @return [object] vector
 @example
   dv = Daru::Vector.new 'a'..'e'
   dv.at 0, 1, 2
   # => #<Daru::Vector(3)>
   #   0   a
   #   1   b
   #   2   c