diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:54:28 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:54:28 +0000 |
commit | e6918187568dbd01842d8d1d2c808ce16a894239 (patch) | |
tree | 64f88b554b444a49f656b6c656111a145cbbaa28 /src/arrow/docs/source/python/numpy.rst | |
parent | Initial commit. (diff) | |
download | ceph-e6918187568dbd01842d8d1d2c808ce16a894239.tar.xz ceph-e6918187568dbd01842d8d1d2c808ce16a894239.zip |
Adding upstream version 18.2.2.upstream/18.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/arrow/docs/source/python/numpy.rst')
-rw-r--r-- | src/arrow/docs/source/python/numpy.rst | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/arrow/docs/source/python/numpy.rst b/src/arrow/docs/source/python/numpy.rst new file mode 100644 index 000000000..870f9cb73 --- /dev/null +++ b/src/arrow/docs/source/python/numpy.rst @@ -0,0 +1,75 @@ +.. Licensed to the Apache Software Foundation (ASF) under one +.. or more contributor license agreements. See the NOTICE file +.. distributed with this work for additional information +.. regarding copyright ownership. The ASF licenses this file +.. to you under the Apache License, Version 2.0 (the +.. "License"); you may not use this file except in compliance +.. with the License. You may obtain a copy of the License at + +.. http://www.apache.org/licenses/LICENSE-2.0 + +.. Unless required by applicable law or agreed to in writing, +.. software distributed under the License is distributed on an +.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +.. KIND, either express or implied. See the License for the +.. specific language governing permissions and limitations +.. under the License. + +.. _numpy_interop: + +NumPy Integration +================= + +PyArrow allows converting back and forth from +`NumPy <https://www.numpy.org/>`_ arrays to Arrow :ref:`Arrays <data.array>`. + +NumPy to Arrow +-------------- + +To convert a NumPy array to Arrow, one can simply call the :func:`pyarrow.array` +factory function. + +.. code-block:: pycon + + >>> import numpy as np + >>> import pyarrow as pa + >>> data = np.arange(10, dtype='int16') + >>> arr = pa.array(data) + >>> arr + <pyarrow.lib.Int16Array object at 0x7fb1d1e6ae58> + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + +Converting from NumPy supports a wide range of input dtypes, including +structured dtypes or strings. + +Arrow to NumPy +-------------- + +In the reverse direction, it is possible to produce a view of an Arrow Array +for use with NumPy using the :meth:`~pyarrow.Array.to_numpy` method. +This is limited to primitive types for which NumPy has the same physical +representation as Arrow, and assuming the Arrow data has no nulls. + +.. code-block:: pycon + + >>> import numpy as np + >>> import pyarrow as pa + >>> arr = pa.array([4, 5, 6], type=pa.int32()) + >>> view = arr.to_numpy() + >>> view + array([4, 5, 6], dtype=int32) + +For more complex data types, you have to use the :meth:`~pyarrow.Array.to_pandas` +method (which will construct a Numpy array with Pandas semantics for, e.g., +representation of null values). |