Book Image

NumPy: Beginner's Guide

By : Ivan Idris
Book Image

NumPy: Beginner's Guide

By: Ivan Idris

Overview of this book

Table of Contents (21 chapters)
NumPy Beginner's Guide Third Edition
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
NumPy Functions' References
Index

Time for action – interpolating in one dimension


We will create data points using a sinc() function and add some random noise to it. After this, we will do a linear and cubic interpolation and plot the results.

  1. Create the data points and add noise to it:

    x = np.linspace(-18, 18, 36)
    noise = 0.1 * np.random.random(len(x))
    signal = np.sinc(x) + noise
  2. Create a linear interpolation function and apply it to an input array with five times as many data points:

    interpreted = interpolate.interp1d(x, signal)
    x2 = np.linspace(-18, 18, 180)
    y = interpreted(x2)
  3. Do the same as in the previous step, but with cubic interpolation:

    cubic = interpolate.interp1d(x, signal, kind="cubic")
    y2 = cubic(x2)
  4. Plot the results with matplotlib:

    plt.plot(x, signal, 'o', label="data")
    plt.plot(x2, y, '-', label="linear")
    plt.plot(x2, y2, '-', lw=2, label="cubic")
    plt.legend()
    plt.show()

    The following diagram is a plot of the data, linear, and cubic interpolation:

What just happened?

We created a dataset from the sinc() function...