Bird
Raised Fist0
NumPydata~20 mins

Trigonometric functions (sin, cos, tan) in NumPy - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Trigonometry Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of numpy sine function on array
What is the output of this code snippet using numpy's sine function on an array of angles in radians?
NumPy
import numpy as np
angles = np.array([0, np.pi/2, np.pi])
result = np.sin(angles)
print(result)
A[1. 0. 1. ]
B[0. 0.70710678 1. ]
C[0. 1. 0. ]
D[0. 1. -1. ]
Attempts:
2 left
💡 Hint
Recall sine values at 0, 90, and 180 degrees (in radians: 0, π/2, π).
❓ data_output
intermediate
1:30remaining
Number of elements in cosine output array
After running this code, how many elements does the resulting cosine array contain?
NumPy
import numpy as np
angles = np.linspace(0, 2*np.pi, 50)
cos_values = np.cos(angles)
print(len(cos_values))
A50
B49
C51
D52
Attempts:
2 left
💡 Hint
np.linspace(start, stop, num) creates 'num' evenly spaced points.
🔧 Debug
advanced
2:00remaining
Identify the error in tangent calculation
What error will this code raise when calculating tangent values for these angles?
NumPy
import numpy as np
angles = np.array([0, np.pi/2, np.pi])
tan_values = np.tan(angles)
print(tan_values)
AValueError: invalid value in tan
BNo error, outputs finite values
CTypeError: unsupported operand type(s) for tan
DRuntimeWarning: divide by zero encountered in tan
Attempts:
2 left
💡 Hint
Consider the tangent of π/2 (90 degrees).
🧠 Conceptual
advanced
1:30remaining
Understanding output range of cosine function
Which of the following statements about the output range of numpy's cosine function is correct?
AThe output values are always between 0 and 1 inclusive.
BThe output values are always between -1 and 1 inclusive.
CThe output values can be any real number depending on input.
DThe output values are always positive.
Attempts:
2 left
💡 Hint
Recall the range of the cosine function in trigonometry.
🚀 Application
expert
3:00remaining
Calculate and plot sine and cosine waves
Which option correctly calculates sine and cosine values for 100 points between 0 and 2π and plots both on the same graph?
A
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2*np.pi, 100)
plt.plot(x, np.sin(x), label='sin')
plt.plot(x, np.cos(x), label='cos')
plt.legend()
plt.show()
B
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2*np.pi, 100)
plt.plot(np.sin(x), x, label='sin')
plt.plot(np.cos(x), x, label='cos')
plt.legend()
plt.show()
C
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2*np.pi, 100)
plt.plot(x, np.sin(x))
plt.plot(x, np.cos(x))
plt.show()
D
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2*np.pi, 100)
plt.plot(x, np.tan(x), label='tan')
plt.plot(x, np.sin(x), label='sin')
plt.legend()
plt.show()
Attempts:
2 left
💡 Hint
Check if both sine and cosine are plotted against the same x values and if labels are included.

Practice

(1/5)
1. What does the numpy function np.sin() calculate when given an angle in radians?
easy
A. The angle converted from radians to degrees.
B. The cosine of the angle, which is the ratio of the adjacent side to the hypotenuse.
C. The tangent of the angle, which is the ratio of the opposite side to the adjacent side.
D. The sine of the angle, which is the ratio of the opposite side to the hypotenuse in a right triangle.

Solution

  1. Step 1: Understand the function purpose

    The function np.sin() calculates the sine value of an angle given in radians.
  2. Step 2: Recall sine definition in triangles

    Sine of an angle is the ratio of the length of the opposite side to the hypotenuse in a right triangle.
  3. Final Answer:

    The sine of the angle, which is the ratio of the opposite side to the hypotenuse in a right triangle. -> Option D
  4. Quick Check:

    np.sin() gives sine ratio [OK]
Hint: Remember sin = opposite/hypotenuse in triangles [OK]
Common Mistakes:
  • Confusing sine with cosine or tangent
  • Thinking np.sin() converts radians to degrees
  • Using degrees directly without conversion
2. Which of the following is the correct way to calculate the cosine of 60 degrees using numpy?
easy
A. np.cos(np.radians(60))
B. np.cos(np.sin(60))
C. np.cos(np.degrees(60))
D. np.cos(60)

Solution

  1. Step 1: Recognize angle units for numpy trig functions

    numpy trigonometric functions expect angles in radians, not degrees.
  2. Step 2: Convert degrees to radians before using np.cos()

    Use np.radians(60) to convert 60 degrees to radians, then apply np.cos().
  3. Final Answer:

    np.cos(np.radians(60)) -> Option A
  4. Quick Check:

    Convert degrees to radians before trig functions [OK]
Hint: Always convert degrees to radians with np.radians() [OK]
Common Mistakes:
  • Passing degrees directly to np.cos()
  • Using np.degrees() instead of np.radians()
  • Passing a trig function inside np.cos()
3. What is the output of the following code?
import numpy as np
angles = np.array([0, 90, 180])
radians = np.radians(angles)
sin_values = np.sin(radians)
print(np.round(sin_values, 2))
medium
A. [0.00 0.00 0.00]
B. [1.00 0.00 -1.00]
C. [0.00 1.00 0.00]
D. [0.00 -1.00 0.00]

Solution

  1. Step 1: Convert angles to radians

    Angles 0, 90, 180 degrees are converted to radians: 0, π/2, π.
  2. Step 2: Calculate sine values and round

    sin(0) = 0, sin(π/2) = 1, sin(π) = 0. Rounded to 2 decimals: [0.00, 1.00, 0.00].
  3. Final Answer:

    [0.00 1.00 0.00] -> Option C
  4. Quick Check:

    sin(0, 90, 180) = [0, 1, 0] [OK]
Hint: Recall sin(0)=0, sin(90°)=1, sin(180°)=0 [OK]
Common Mistakes:
  • Not converting degrees to radians
  • Confusing sine values at 90 and 180 degrees
  • Forgetting to round output
4. The following code is intended to calculate the tangent of 45 degrees but gives an incorrect result. What is the error?
import numpy as np
tan_45 = np.tan(45)
print(tan_45)
medium
A. np.tan() cannot calculate tangent for 45 degrees.
B. The angle 45 should be converted to radians before using np.tan().
C. The code should use np.tan(np.degrees(45)) instead.
D. The print statement is missing parentheses.

Solution

  1. Step 1: Identify input units for np.tan()

    numpy trigonometric functions require angles in radians, not degrees.
  2. Step 2: Correct the input by converting degrees to radians

    Use np.radians(45) to convert 45 degrees before passing to np.tan().
  3. Final Answer:

    The angle 45 should be converted to radians before using np.tan(). -> Option B
  4. Quick Check:

    Convert degrees to radians before np.tan() [OK]
Hint: Always convert degrees to radians before trig functions [OK]
Common Mistakes:
  • Passing degrees directly to np.tan()
  • Using np.degrees() instead of np.radians()
  • Assuming np.tan() works with degrees
5. You have an array of angles in degrees: angles = np.array([30, 45, 60]). You want to create a new array that contains the tangent values of these angles but only include values where the tangent is less than 2. Which code correctly does this?
hard
A. tan_vals = np.tan(np.radians(angles)); filtered = tan_vals[tan_vals < 2]
B. tan_vals = np.tan(angles); filtered = tan_vals[tan_vals < 2]
C. tan_vals = np.tan(np.degrees(angles)); filtered = tan_vals[tan_vals < 2]
D. tan_vals = np.tan(np.radians(angles)); filtered = tan_vals[tan_vals > 2]

Solution

  1. Step 1: Convert degrees to radians for tangent calculation

    Use np.radians(angles) to convert the array of degrees to radians before applying np.tan().
  2. Step 2: Filter tangent values less than 2

    Use boolean indexing tan_vals[tan_vals < 2] to select values less than 2.
  3. Final Answer:

    tan_vals = np.tan(np.radians(angles)); filtered = tan_vals[tan_vals < 2] -> Option A
  4. Quick Check:

    Convert degrees, then filter tan values less than 2 [OK]
Hint: Convert degrees first, then filter with boolean indexing [OK]
Common Mistakes:
  • Not converting degrees to radians
  • Filtering with wrong comparison operator
  • Using np.degrees() instead of np.radians()