pyarrow.compute.take(data, indices, *, boundscheck=True, memory_pool=None)[source]

Select values (or records) from array- or table-like data given integer selection indices.

The result will be of the same type(s) as the input, with elements taken from the input array (or record batch / table fields) at the given indices. If an index is null then the corresponding value in the output will be null.

  • data (Array, ChunkedArray, RecordBatch, or Table) –

  • indices (Array, ChunkedArray) – Must be of integer type

  • boundscheck (boolean, default True) – Whether to boundscheck the indices. If False and there is an out of bounds index, will likely cause the process to crash.

  • memory_pool (MemoryPool, optional) – If not passed, will allocate memory from the default memory pool.


result (depends on inputs)


>>> import pyarrow as pa
>>> arr = pa.array(["a", "b", "c", None, "e", "f"])
>>> indices = pa.array([0, None, 4, 3])
>>> arr.take(indices)
<pyarrow.lib.StringArray object at 0x7ffa4fc7d368>