Installation_of_Scipy_&_its_key_uses.md

pull/372/head
Niyonika Gaur 2024-05-17 23:59:25 +05:30 zatwierdzone przez GitHub
rodzic 7c3b304669
commit 0a63d2e17d
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
1 zmienionych plików z 130 dodań i 0 usunięć

Wyświetl plik

@ -0,0 +1,130 @@
## Installation of Scipy
### Install using the command:
#### C:\Users\Your Name>pip install scipy
You can also use a Python distribution that already has Scipy installed like Anaconda, or Spyder.
### Importing SciPy
#### from scipy import constants
## Key Features of SciPy
### 1. Numerical Integration
#### It helps in computing definite or indefinite integrals of functions
```
from scipy import integrate
#Define the function to integrate
def f(x):
return x**2
#Compute definite integral of f from 0 to 1
result, error = integrate.quad(f, 0, 1)
print(result)
```
#### Output
```
0.33333333333333337
```
### 2. Optimization
#### It can be used to minimize or maximize functions, here is an example of minimizing roots of an equation
```
from scipy.optimize import minimize
# Define an objective function to minimize
def objective(x):
return x**2 + 10*np.sin(x)
# Minimize the objective function starting from x=0
result = minimize(objective, x0=0)
print(result.x)
```
#### Output
```
array([-1.30644012])
```
### 3. Linear Algebra
#### Solving Linear computations
```
from scipy import linalg
import numpy as np
# Define a square matrix
A = np.array([[1, 2], [3, 4]])
# Define a vector
b = np.array([5, 6])
# Solve Ax = b for x
x = linalg.solve(A, b)
print(x)
```
#### Output
```
array([-4. , 4.5])
```
### 4. Statistics
#### Performing statistics functions, like here we'll be distributing the data
```
from scipy import stats
import numpy as np
# Generate random data from a normal distribution
data = stats.norm.rvs(loc=0, scale=1, size=1000)
# Fit a normal distribution to the data
mean, std = stats.norm.fit(data)
```
### 5. Signal Processing
#### To process spectral signals, like EEG or MEG
```
from scipy import signal
import numpy as np
# Create a signal (e.g., sine wave)
t = np.linspace(0, 1, 1000)
signal = np.sin(2 * np.pi * 5 * t) + 0.5 * np.random.randn(1000)
# Apply a low-pass Butterworth filter
b, a = signal.butter(4, 0.1, 'low')
filtered_signal = signal.filtfilt(b, a, signal)
```
The various filters applied that are applied here, are a part of signal analysis at a deeper level.
### 6. Sparse Matrix
#### The word ' sparse 'means less, i.e., the data is mostly unused during some operation or analysis. So, to handle this data, a Sparse Matrix is created
#### There are two types of Sparse Matrices:
##### 1. CSC: Compressed Sparse Column, it is used for efficient math functions and for column slicing
##### 2. CSR: Compressed Sparse Row, it is used for fast row slicing
#### In CSC format
```
from scipy import sparse
import numpy as np
data = np.array([[0, 0], [0, 1], [2, 0]])
row_indices = np.array([1, 2, 1])
col_indices = np.array([1, 0, 2])
values = np.array([1, 2, 1])
sparse_matrix_csc = sparse.csc_matrix((values, (row_indices, col_indices)))
```
#### In CSR format
```
from scipy import sparse
import numpy as np
data = np.array([[0, 0], [0, 1], [2, 0]])
sparse_matrix = sparse.csr_matrix(data)
```
### 7. Image Processing
#### It is used to process the images, like changing dimensions or properties. For example, when you're doing a project on medical imaging, this library is mainly used.
```
from scipy import ndimage
import matplotlib.pyplot as plt
image = plt.imread('path/to/image.jpg')
plt.imshow(image)
plt.show()
# Apply Gaussian blur to the image
blurred_image = ndimage.gaussian_filter(image, sigma=1)
plt.imshow(blurred_image)
plt.show()
```
#### The gaussian blur is one of the properties of the ' ndimage ' package in SciPy libraries, it used for better understanding of the image.