# Scipy Python

The good thing about SciPy Python package is that if we want classes or construct web pages, SciPy is fully compatible with the system as a whole and can provide seamless integration. As SciPy is open source, it has a very active and vibrant community of developers due to which there are enormous number of modules present for a vast amount of. The SciPy library is one of the core packages that make up the SciPy stack. It provides many user-friendly and efficient numerical routines, such as routines for numerical integration, interpolation, optimization, linear algebra, and statistics.

SciPy (pronounced / ˈ s aɪ p aɪ / 'sigh pie') is a free and open-source Python library used for scientific computing and technical computing. The goal of this tutorial is to guide new learners into Python, especially those who are first-time attendees of SciPy. We'll introduce how to program in Python using data cleaning in pandas as the teaching example. This will help transition new learners who work with data in spreadsheets but want to utilize the power of the scientific python.

- SciPy Tutorial

- SciPy Useful Resources

- Selected Reading

### Scipy Python Code

**Fourier Transformation** is computed on a time domain signal to check its behavior in the frequency domain. Fourier transformation finds its application in disciplines such as signal and noise processing, image processing, audio signal processing, etc. SciPy offers the fftpack module, which lets the user compute fast Fourier transforms.

Following is an example of a sine function, which will be used to calculate Fourier transform using the fftpack module.

## Fast Fourier Transform

Let us understand what fast Fourier transform is in detail.

### One Dimensional Discrete Fourier Transform

The FFT y[k] of length N of the length-N sequence x[n] is calculated by fft() and the inverse transform is calculated using ifft(). Let us consider the following example

The above program will generate the following output.

### Scipy Python Import

Let us look at another example

The above program will generate the following output.

The **scipy.fftpack** module allows computing fast Fourier transforms. As an illustration, a (noisy) input signal may look as follows −

We are creating a signal with a time step of 0.02 seconds. The last statement prints the size of the signal sig. The output would be as follows −

We do not know the signal frequency; we only know the sampling time step of the signal sig. The signal is supposed to come from a real function, so the Fourier transform will be symmetric. The **scipy.fftpack.fftfreq()** function will generate the sampling frequencies and **scipy.fftpack.fft()** will compute the fast Fourier transform.

Let us understand this with the help of an example.

The above program will generate the following output.

## Discrete Cosine Transform

A **Discrete Cosine Transform (DCT)** expresses a finite sequence of data points in terms of a sum of cosine functions oscillating at different frequencies. SciPy provides a DCT with the function **dct** and a corresponding IDCT with the function **idct**. Let us consider the following example.

### Scipy Python Package

The above program will generate the following output.

The inverse discrete cosine transform reconstructs a sequence from its discrete cosine transform (DCT) coefficients. The idct function is the inverse of the dct function. Let us understand this with the following example.

### Scipy Python Documentation

The above program will generate the following output.