def access_row_tuples_by_indexs *indexes
      return get_sub_dataframe(indexes, by_position: false).map_rows(&:to_a) if
      @index.is_a?(Daru::MultiIndex)
      positions = @index.pos(*indexes)
      if positions.is_a? Numeric
        row = get_rows_for([positions])
        row.first.is_a?(Array) ? row : [row]
      else
        new_rows = get_rows_for(indexes, by_position: false)
        indexes.map { |index| new_rows.map { |r| r[index] } }
      end
    end
@param indexes [Array] index(s) at which row tuples are retrieved
@return [Array] returns array of row tuples at given index(s)
@example Using Daru::Index
df = Daru::DataFrame.new({
a: [1, 2, 3],
b: ['a', 'a', 'b']
})

df.access_row_tuples_by_indexs(1,2)
# => [[2, "a"], [3, "b"]]

df.index = Daru::Index.new([:one,:two,:three])
df.access_row_tuples_by_indexs(:one,:three)
# => [[1, "a"], [3, "b"]]

@example Using Daru::MultiIndex
mi_idx = Daru::MultiIndex.from_tuples [
[:a,:one,:bar],
[:a,:one,:baz],
[:b,:two,:bar],
[:a,:two,:baz],
]
df_mi = Daru::DataFrame.new({
a: 1..4,
b: 'a'..'d'
}, index: mi_idx )

df_mi.access_row_tuples_by_indexs(:b, :two, :bar)
# => [[3, "c"]]
df_mi.access_row_tuples_by_indexs(:a)
# => [[1, "a"], [2, "b"], [4, "d"]]