# 5 Best Ways to Get the Trigonometric Tangent of an Array of Angles Given in Degrees with Python

Rate this post

π‘ Problem Formulation: In this article, we are going to solve a common problem in computational mathematics – how to calculate the tangent of multiple angles provided in degrees using Python. Specifically, we’ll demonstrate how to transform an array of angles from degrees to radians and then obtain their tangents. For instance, given an input array of angles like [0, 30, 45, 60, 90], we aim to compute the array of tangents for these angles.

## Method 1: Using math Module and for Loop

This method involves utilizing Python’s built-in `math` module which provides access to the mathematical functions defined by the C standard. We will first convert angles from degrees to radians using the `math.radians` function, and then apply the `math.tan` function to get the tangent of each angle within a for loop.

Here’s an example:

```import math

angles_degrees = [0, 30, 45, 60, 90]
tangents = []

for angle in angles_degrees:

print(tangents)
```

Output:

`[0.0, 0.5773502691896257, 1.0, 1.7320508075688772, 16331239353195370.0]`

This snippet converts each angle from the `angles_degrees` list to radians and then calculates the tangent using a for loop. The results are added to a list called `tangents`. Note that the tangent of 90 degrees is a very large number due to the nature of the tangent function nearing a vertical asymptote at this angle.

## Method 2: Using numpy for Vectorized Operations

In this method, we leverage the power of the NumPy library, which is highly optimized for numerical computations. We can perform a vectorized transformation of an entire array of angles from degrees to radians using `numpy.radians`, and then directly compute the tangents with `numpy.tan`, without explicitly writing a loop.

Here’s an example:

```import numpy as np

angles_degrees = np.array([0, 30, 45, 60, 90])

print(tangents)
```

Output:

`[0.         0.57735027 1.         1.73205081        inf]`

The code utilizes NumPy’s array operations to efficiently convert and compute the tangents of all angles in one go. Here, `np.radians` and `np.tan` apply the operations element-wise to the array. The tangent of 90 degrees is represented as `inf` (infinity), illustrating the limits of this function at that particular angle.

## Method 3: Using List Comprehensions with math Module

List comprehensions provide a concise way to perform operations on list items. In this method, we combine list comprehensions with the `math` module to calculate tangents in a single line of code after converting degrees to radians.

Here’s an example:

```import math

angles_degrees = [0, 30, 45, 60, 90]
tangents = [math.tan(math.radians(angle)) for angle in angles_degrees]

print(tangents)
```

Output:

`[0.0, 0.5773502691896257, 1.0, 1.7320508075688772, 16331239353195370.0]`

This concise snippet uses a list comprehension to convert each angle in the `angles_degrees` list to radians, then computes the tangent, and creates a new list called `tangents`. The results are comparable to the for-loop method.

## Method 4: Using map and lambda with math Module

Combining `map` with `lambda` functions in Python can replace explicit loops for applying an operation across a list. Here, we use `lambda` to define an inline function to convert degrees to radians and compute the tangent, applied to each angle in the list using `map`.

Here’s an example:

```import math

angles_degrees = [0, 30, 45, 60, 90]
tangents = list(map(lambda angle: math.tan(math.radians(angle)), angles_degrees))

print(tangents)
```

Output:

`[0.0, 0.5773502691896257, 1.0, 1.7320508075688772, 16331239353195370.0]`

This efficient one-liner uses a `lambda` function to perform the degree-to-radian conversion and tangent calculation in one step, applied to each angle in the list. The `map` function returns a map object that needs to be converted to a list to view the results.

## Bonus One-Liner Method 5: Using numpy and math Operations Combined

Fusing the efficiency of NumPy’s array operations with arithmetic expressions allows us to perform the whole operation in a very compact and optimized manner. With this method, we convert and calculate the tangent of an array of angles directly in one expression.

Here’s an example:

```import numpy as np

angles_degrees = [0, 30, 45, 60, 90]

print(tangents)
```

Output:

`[0.         0.57735027 1.         1.73205081        inf]`

The final one-liner method shows the elegance and power of NumPy’s vectorized operations, producing optimized and quick computation of tangents from an array of angles in degrees.

## Summary/Discussion

• Method 1: Using math Module and for Loop. Simple, uses standard library only. Can be slow for large arrays.
• Method 2: Using numpy for Vectorized Operations. Fast and efficient. Requires NumPy, which is an additional dependency.
• Method 3: Using List Comprehensions with math Module. Compact, still readable. Not as fast as NumPy for large data sets.
• Method 4: Using map and lambda with math Module. Condensed code. Less readable to those unfamiliar with `lambda` and `map`.
• Bonus Method 5: Using numpy and math Operations Combined. Fastest and most concise. Reliant on NumPy, less readable for beginners.