pyarrow.compute.take#

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.

Parameters
dataArray, ChunkedArray, RecordBatch, or Table
indicesArray, ChunkedArray

Must be of integer type

boundscheckbool, 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_poolMemoryPool, optional

If not passed, will allocate memory from the default memory pool.

Returns
resultdepends on inputs

Examples

>>> 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>
[
  "a",
  null,
  "e",
  null
]