Path: blob/main/py-polars/docs/source/reference/sql/functions/trigonometry.rst
6940 views
Trigonometry ============ .. list-table:: :header-rows: 1 :widths: 20 60 * - :ref:`ACOS <acos>` - Compute inverse cosine of the input column (in radians). * - :ref:`ACOSD <acosd>` - Compute inverse cosine of the input column (in degrees). * - :ref:`ASIN <asin>` - Compute inverse sine of the input column (in radians). * - :ref:`ASIND <asind>` - Compute inverse sine of the input column (in degrees). * - :ref:`ATAN <atan>` - Compute inverse tangent of the input column (in radians). * - :ref:`ATAND <atand>` - Compute inverse tangent of the input column (in degrees). * - :ref:`ATAN2 <atan2>` - Compute the inverse tangent of column_1/column_2 (in radians). * - :ref:`ATAN2D <atan2d>` - Compute the inverse tangent of column_1/column_2 (in degrees). * - :ref:`COT <cot>` - Compute the cotangent of the input column (in radians). * - :ref:`COTD <cotd>` - Compute cotangent of the input column (in degrees). * - :ref:`COS <cos>` - Compute the cosine of the input column (in radians). * - :ref:`COSD <cosd>` - Compute the cosine of the input column (in degrees). * - :ref:`DEGREES <degrees>` - Convert between radians and degrees. * - :ref:`RADIANS <radians>` - Convert between degrees and radians. * - :ref:`SIN <sin>` - Compute the sine of the input column (in radians). * - :ref:`SIND <sind>` - Compute the sine of the input column (in degrees). * - :ref:`TAN <tan>` - Compute the tangent of the input column (in radians). * - :ref:`TAND <tand>` - Compute the tangent of the input column (in degrees). .. _acos: ACOS ---- Compute inverse cosine of the input column (in radians). **Example:** .. code-block:: python df = pl.DataFrame({"rads": [-1.0, -0.5, 0.5, 1.0]}) df.sql("SELECT rads, ACOS(rads) AS acos FROM self") # shape: (4, 2) # ┌──────┬──────────┐ # │ rads ┆ acos │ # │ --- ┆ --- │ # │ f64 ┆ f64 │ # ╞══════╪══════════╡ # │ -1.0 ┆ 3.141593 │ # │ -0.5 ┆ 2.094395 │ # │ 0.5 ┆ 1.047198 │ # │ 1.0 ┆ 0.0 │ # └──────┴──────────┘ .. _acosd: ACOSD ----- Compute inverse cosine of the input column (in degrees). **Example:** .. code-block:: python df = pl.DataFrame({"degs": [-0.5, 0.0, 0.5]}) df.sql("SELECT degs, ACOSD(degs) AS acosd FROM self") # shape: (3, 2) # ┌──────┬───────┐ # │ degs ┆ acosd │ # │ --- ┆ --- │ # │ f64 ┆ f64 │ # ╞══════╪═══════╡ # │ -0.5 ┆ 120.0 │ # │ 0.0 ┆ 90.0 │ # │ 0.5 ┆ 60.0 │ # └──────┴───────┘ .. _asin: ASIN ---- Compute inverse sine of the input column (in radians). **Example:** .. code-block:: python df = pl.DataFrame({"rads": [-1.0, -0.75, -0.0, 0.5]}) df.sql("SELECT rads, ASIN(rads) AS asin FROM self") # shape: (4, 2) # ┌───────┬───────────┐ # │ rads ┆ asin │ # │ --- ┆ --- │ # │ f64 ┆ f64 │ # ╞═══════╪═══════════╡ # │ -1.0 ┆ -1.570796 │ # │ -0.75 ┆ -0.848062 │ # │ -0.0 ┆ -0.0 │ # │ 0.5 ┆ 0.523599 │ # └───────┴───────────┘ .. _asind: ASIND ----- Compute inverse sine of the input column (in degrees). **Example:** .. code-block:: python df = pl.DataFrame({"degs": [-0.5, 0.0, 0.5]}) df.sql("SELECT degs, ASIND(degs) AS asind FROM self") # shape: (3, 2) # ┌──────┬───────┐ # │ degs ┆ asind │ # │ --- ┆ --- │ # │ f64 ┆ f64 │ # ╞══════╪═══════╡ # │ -0.5 ┆ -30.0 │ # │ 0.0 ┆ 0.0 │ # │ 0.5 ┆ 30.0 │ # └──────┴───────┘ .. _atan: ATAN ---- Compute inverse tangent of the input column (in radians). **Example:** .. code-block:: python df = pl.DataFrame({"rads": [-1.0, 0.0, 1.0, 2.0]}) df.sql("SELECT rads, ATAN(rads) AS atan FROM self") # shape: (4, 2) # ┌──────┬───────────┐ # │ rads ┆ atan │ # │ --- ┆ --- │ # │ f64 ┆ f64 │ # ╞══════╪═══════════╡ # │ -1.0 ┆ -0.785398 │ # │ 0.0 ┆ 0.0 │ # │ 1.0 ┆ 0.785398 │ # │ 2.0 ┆ 1.107149 │ # └──────┴───────────┘ .. _atand: ATAND ----- Compute inverse tangent of the input column (in degrees). **Example:** .. code-block:: python df = pl.DataFrame({"degs": [-1.0, 0.0, 1.0]}) df.sql("SELECT degs, ATAND(degs) AS atand FROM self") # shape: (3, 2) # ┌──────┬───────┐ # │ degs ┆ atand │ # │ --- ┆ --- │ # │ f64 ┆ f64 │ # ╞══════╪═══════╡ # │ -1.0 ┆ -45.0 │ # │ 0.0 ┆ 0.0 │ # │ 1.0 ┆ 45.0 │ # └──────┴───────┘ .. _atan2: ATAN2 ----- Compute the inverse tangent of column_1/column_2 (in radians). **Example:** .. code-block:: python df = pl.DataFrame( { "a": [-2.0, -1.0, 1.0, 2.0], "b": [1.5, 1.0, 0.5, 0.0], } ) df.sql("SELECT a, b, ATAN2(a, b) AS atan2_ab FROM self") # shape: (4, 3) # ┌──────┬─────┬───────────┐ # │ a ┆ b ┆ atan2_ab │ # │ --- ┆ --- ┆ --- │ # │ f64 ┆ f64 ┆ f64 │ # ╞══════╪═════╪═══════════╡ # │ -2.0 ┆ 1.5 ┆ -0.927295 │ # │ -1.0 ┆ 1.0 ┆ -0.785398 │ # │ 1.0 ┆ 0.5 ┆ 1.107149 │ # │ 2.0 ┆ 0.0 ┆ 1.570796 │ # └──────┴─────┴───────────┘ .. _atan2d: ATAN2D ------ Compute the inverse tangent of column_1/column_2 (in degrees). **Example:** .. code-block:: python df = pl.DataFrame( { "a": [-1.0, 0.0, 1.0, 1.0], "b": [1.0, 1.0, 0.0, -1.0], } ) df.sql("SELECT a, b, ATAN2D(a, b) AS atan2d_ab FROM self") # shape: (4, 3) # ┌──────┬──────┬───────────┐ # │ a ┆ b ┆ atan2d_ab │ # │ --- ┆ --- ┆ --- │ # │ f64 ┆ f64 ┆ f64 │ # ╞══════╪══════╪═══════════╡ # │ -1 ┆ 1.0 ┆ 135.0 │ # │ 0.0 ┆ 1.0 ┆ 90.0 │ # │ 1.0 ┆ 0.0 ┆ 0.0 │ # │ 1.0 ┆ -1.0 ┆ -45.0 │ # └──────┴──────┴───────────┘ .. _cot: COT --- Compute the cotangent of the input column (in radians). **Example:** .. code-block:: python df = pl.DataFrame({"rads": [-2.0, -1.0, 0.0, 1.0, 2.0]}) df.sql("SELECT rads, COT(rads) AS cot FROM self") # shape: (5, 2) # ┌──────┬───────────┐ # │ rads ┆ cot │ # │ --- ┆ --- │ # │ f64 ┆ f64 │ # ╞══════╪═══════════╡ # │ -2.0 ┆ 0.457658 │ # │ -1.0 ┆ -0.642093 │ # │ 0.0 ┆ inf │ # │ 1.0 ┆ 0.642093 │ # │ 2.0 ┆ -0.457658 │ # └──────┴───────────┘ .. _cotd: COTD ---- Compute cotangent of the input column (in degrees). **Example:** .. code-block:: python df = pl.DataFrame({"degs": [0, 90, 180, 270, 360]}) df.sql("SELECT degs, COTD(degs) AS cotd FROM self") # shape: (5, 2) # ┌──────┬────────────┐ # │ degs ┆ cotd │ # │ --- ┆ --- │ # │ f64 ┆ f64 │ # ╞══════╪════════════╡ # │ -2.0 ┆ -28.636253 │ # │ -1.0 ┆ -57.289962 │ # │ 0.0 ┆ inf │ # │ 1.0 ┆ 57.289962 │ # │ 2.0 ┆ 28.636253 │ # └──────┴────────────┘ .. _cos: COS --- Compute the cosine of the input column (in radians). **Example:** .. code-block:: python df = pl.DataFrame({"rads": [-2.0, -1.0, 0.0, 1.0, 2.0]}) df.sql("SELECT rads, COS(rads) AS cos FROM self") # shape: (5, 2) # ┌──────┬───────────┐ # │ rads ┆ cos │ # │ --- ┆ --- │ # │ f64 ┆ f64 │ # ╞══════╪═══════════╡ # │ -2.0 ┆ -0.416147 │ # │ -1.0 ┆ 0.540302 │ # │ 0.0 ┆ 1.0 │ # │ 1.0 ┆ 0.540302 │ # │ 2.0 ┆ -0.416147 │ # └──────┴───────────┘ .. _cosd: COSD ---- Compute the cosine of the input column (in degrees). **Example:** .. code-block:: python df = pl.DataFrame({"degs": [0, 45, 180, 225]}) df.sql("SELECT degs, COSD(degs) AS cosd FROM self") # shape: (4, 2) # ┌──────┬───────────┐ # │ degs ┆ cosd │ # │ --- ┆ --- │ # │ i64 ┆ f64 │ # ╞══════╪═══════════╡ # │ 0 ┆ 1.0 │ # │ 45 ┆ 0.707107 │ # │ 180 ┆ -1.0 │ # │ 225 ┆ -0.707107 │ # └──────┴───────────┘ .. _degrees: DEGREES ------- Convert between radians and degrees. **Example:** .. code-block:: python import math df = pl.DataFrame({"rads": [0.0, math.pi/2, math.pi, 3*math.pi/2]}) df.sql("SELECT rads, DEGREES(rads) AS degs FROM self") # shape: (4, 2) # ┌──────────┬───────┐ # │ rads ┆ degs │ # │ --- ┆ --- │ # │ f64 ┆ f64 │ # ╞══════════╪═══════╡ # │ 0.0 ┆ 0.0 │ # │ 1.570796 ┆ 90.0 │ # │ 3.141593 ┆ 180.0 │ # │ 4.712389 ┆ 270.0 │ # └──────────┴───────┘ .. _radians: RADIANS ------- Convert between degrees and radians. **Example:** .. code-block:: python df = pl.DataFrame({"degs": [0, 90, 180, 270]}) df.sql("SELECT degs, RADIANS(degs) AS rads FROM self") # shape: (4, 2) # ┌──────┬──────────┐ # │ degs ┆ rads │ # │ --- ┆ --- │ # │ i64 ┆ f64 │ # ╞══════╪══════════╡ # │ 0 ┆ 0.0 │ # │ 90 ┆ 1.570796 │ # │ 180 ┆ 3.141593 │ # │ 270 ┆ 4.712389 │ # └──────┴──────────┘ .. _sin: SIN --- Compute the sine of the input column (in radians). **Example:** .. code-block:: python import math df = pl.DataFrame({"rads": [0.0, 1/4 * math.pi, 1/2 * math.pi, 3/4 * math.pi]}) df.sql("SELECT rads, SIN(rads) AS sin FROM self") # shape: (4, 2) # ┌──────────┬──────────┐ # │ rads ┆ sin │ # │ --- ┆ --- │ # │ f64 ┆ f64 │ # ╞══════════╪══════════╡ # │ 0.0 ┆ 0.0 │ # │ 0.785398 ┆ 0.707107 │ # │ 1.570796 ┆ 1.0 │ # │ 2.356194 ┆ 0.707107 │ # └──────────┴──────────┘ .. _sind: SIND ---- Compute the sine of the input column (in degrees). **Example:** .. code-block:: python df = pl.DataFrame({"degs": [0, 90, 225, 270]}) df.sql("SELECT degs, SIND(degs) AS sind FROM self") # shape: (4, 2) # ┌──────┬───────────┐ # │ degs ┆ sind │ # │ --- ┆ --- │ # │ i64 ┆ f64 │ # ╞══════╪═══════════╡ # │ 0 ┆ 0.0 │ # │ 90 ┆ 1.0 │ # │ 225 ┆ -0.707107 │ # │ 270 ┆ -1.0 │ # └──────┴───────────┘ .. _tan: TAN --- Compute the tangent of the input column (in radians). **Example:** .. code-block:: python import math df = pl.DataFrame({"rads": [0.0, 1/4 * math.pi, 3/4 * math.pi]}) df.sql("SELECT rads, TAN(rads) AS tan FROM self") # shape: (4, 2) # ┌──────────┬───────────┐ # │ rads ┆ tan │ # │ --- ┆ --- │ # │ f64 ┆ f64 │ # ╞══════════╪═══════════╡ # │ 0.0 ┆ 0.0 │ # │ 0.785398 ┆ 1.0 │ # │ 1.570796 ┆ 1.6331e16 │ # │ 2.356194 ┆ -1.0 │ # └──────────┴───────────┘ .. _tand: TAND ---- Compute the tangent of the input column (in degrees). **Example:** .. code-block:: python df = pl.DataFrame({"degs": [0, 45, 135, 225]}) df.sql("SELECT degs, TAND(degs) AS tand FROM self") # shape: (4, 2) # ┌──────┬──────┐ # │ degs ┆ tand │ # │ --- ┆ --- │ # │ i64 ┆ f64 │ # ╞══════╪══════╡ # │ 0 ┆ 0.0 │ # │ 45 ┆ 1.0 │ # │ 135 ┆ -1.0 │ # │ 225 ┆ 1.0 │ # └──────┴──────┘