Bird
Raised Fist0
NumPydata~30 mins

Polynomial operations with np.poly in NumPy - Mini Project: Build & Apply

Choose your learning style10 modes available
Polynomial Operations with np.poly
📖 Scenario: You are working as a data analyst and need to handle simple polynomial operations. Polynomials are like math expressions with powers of x, such as x2 + 3x + 2. Using Python's numpy library, you will learn how to create and work with polynomials easily.
🎯 Goal: Build a small program that creates two polynomials, adds them, multiplies them, and then prints the results.
📋 What You'll Learn
Create two polynomials using numpy's np.poly1d with exact coefficients
Add the two polynomials
Multiply the two polynomials
Print the resulting polynomials
💡 Why This Matters
🌍 Real World
Polynomials are used in data fitting, physics, and engineering to model curves and trends.
💼 Career
Data scientists often use polynomial models to understand relationships in data and make predictions.
Progress0 / 4 steps
1
Create two polynomials
Create two polynomials called poly1 and poly2 using np.poly1d. Use coefficients [1, 2, 1] for poly1 (which means x² + 2x + 1) and [2, 0, -1] for poly2 (which means 2x² - 1).
NumPy
Hint

Use np.poly1d([coefficients]) to create a polynomial. The list starts with the highest power.

2
Add the two polynomials
Create a new variable called poly_sum that adds poly1 and poly2 using the + operator.
NumPy
Hint

You can add two np.poly1d objects directly with +.

3
Multiply the two polynomials
Create a new variable called poly_product that multiplies poly1 and poly2 using the * operator.
NumPy
Hint

You can multiply two np.poly1d objects directly with *.

4
Print the results
Print poly_sum and poly_product to see the resulting polynomials.
NumPy
Hint

Use print() to display the polynomials. They will show in a nice math format.

Practice

(1/5)
1. What does the np.poly function do in NumPy?
easy
A. It evaluates a polynomial at given points.
B. It calculates the derivative of a polynomial.
C. It finds the roots of a polynomial from coefficients.
D. It returns polynomial coefficients from given roots.

Solution

  1. Step 1: Understand the purpose of np.poly

    The function np.poly takes roots of a polynomial as input and returns the coefficients of the polynomial with those roots.
  2. Step 2: Differentiate from other polynomial functions

    Other functions like np.polyder find derivatives, np.polyval evaluates polynomials, and np.roots finds roots from coefficients, so they are different.
  3. Final Answer:

    It returns polynomial coefficients from given roots. -> Option D
  4. Quick Check:

    np.poly = coefficients from roots [OK]
Hint: Remember: np.poly converts roots to coefficients [OK]
Common Mistakes:
  • Confusing np.poly with np.roots
  • Thinking np.poly evaluates polynomials
  • Mixing up derivative functions with np.poly
2. Which of the following is the correct syntax to get polynomial coefficients from roots [-1, 2, 3] using NumPy?
easy
A. np.poly([-1, 2, 3])
B. np.polyroots([-1, 2, 3])
C. np.polyval([-1, 2, 3])
D. np.polycoef([-1, 2, 3])

Solution

  1. Step 1: Recall the correct function name

    The function to get polynomial coefficients from roots is np.poly.
  2. Step 2: Check the syntax

    The correct syntax is np.poly([-1, 2, 3]). Other options are not valid NumPy functions.
  3. Final Answer:

    np.poly([-1, 2, 3]) -> Option A
  4. Quick Check:

    Correct function is np.poly with roots list [OK]
Hint: Use np.poly with a list of roots inside parentheses [OK]
Common Mistakes:
  • Using non-existent functions like np.polyroots
  • Confusing np.polyval with np.poly
  • Misspelling function names
3. What is the output of the following code?
import numpy as np
coeffs = np.poly([1, 2])
print(coeffs)
medium
A. [1. 3. 2.]
B. [1. -3. 2.]
C. [1. -2. 1.]
D. [1. 2. -3.]

Solution

  1. Step 1: Understand np.poly output for roots [1, 2]

    np.poly returns coefficients of polynomial with roots 1 and 2, which is (x - 1)(x - 2) = x^2 - 3x + 2.
  2. Step 2: Write coefficients in descending order

    The coefficients are [1, -3, 2], representing 1*x^2 - 3*x + 2.
  3. Final Answer:

    [1. -3. 2.] -> Option B
  4. Quick Check:

    Roots [1,2] -> coeffs [1, -3, 2] [OK]
Hint: Multiply (x - root) terms and list coefficients [OK]
Common Mistakes:
  • Mixing signs of coefficients
  • Listing roots instead of coefficients
  • Confusing order of coefficients
4. The following code throws an error. What is the problem?
import numpy as np
coeffs = np.poly(3, 4, 5)
print(coeffs)
medium
A. roots should be a list or array, not a tuple without brackets
B. np.poly does not accept more than two roots
C. print statement syntax is incorrect
D. np.poly requires integer roots only

Solution

  1. Step 1: Check the input to np.poly

    The roots 3, 4, 5 are passed as separate positional arguments instead of a single sequence. np.poly expects one array-like input (list, array, or tuple).
  2. Step 2: Fix the roots input

    Wrap roots in brackets: coeffs = np.poly([3, 4, 5]) to pass a list to np.poly.
  3. Final Answer:

    roots should be a list or array, not a tuple without brackets -> Option A
  4. Quick Check:

    np.poly needs list/array input [OK]
Hint: Always pass roots as list or array to np.poly [OK]
Common Mistakes:
  • Passing tuple without brackets
  • Assuming np.poly limits root count
  • Misunderstanding print syntax errors
5. You have roots [-2, 0, 3] and want to create a polynomial with leading coefficient 2 instead of 1. How can you do this using np.poly?
hard
A. Add 2 to the coefficients returned by np.poly
B. Pass an extra argument 2 to np.poly as np.poly([-2, 0, 3], 2)
C. Multiply the output of np.poly([-2, 0, 3]) by 2
D. Use np.polyval with 2 as the first argument

Solution

  1. Step 1: Generate coefficients from roots

    Use np.poly([-2, 0, 3]) to get coefficients for polynomial with leading coefficient 1.
  2. Step 2: Scale coefficients to change leading coefficient

    Multiply all coefficients by 2 to make leading coefficient 2, since np.poly does not take leading coefficient as argument.
  3. Final Answer:

    Multiply the output of np.poly([-2, 0, 3]) by 2 -> Option C
  4. Quick Check:

    Scale coefficients to change leading term [OK]
Hint: Multiply coefficients array to adjust leading coefficient [OK]
Common Mistakes:
  • Trying to pass leading coefficient as np.poly argument
  • Adding instead of multiplying coefficients
  • Using np.polyval incorrectly
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard