def get_sub_vector(keys, by_position: true)
      return Daru::Vector.new([]) if keys == []

      keys = @index.pos(*keys) unless by_position

      sub_vect = at(*keys)
      sub_vect = Daru::Vector.new([sub_vect]) unless sub_vect.is_a?(Daru::Vector)

      sub_vect
    end
@param keys [Array] can be positions (if by_position is true) or indexes (if by_position if false)
@return [Daru::Vector]