Nội suy phạm vi python

SciPy trong Python là một thư viện nguồn mở được sử dụng để giải các bài toán, khoa học, kỹ thuật và kỹ thuật. Nó cho phép người dùng thao tác dữ liệu và trực quan hóa dữ liệu bằng một loạt các lệnh Python cấp cao. SciPy được xây dựng trên phần mở rộng Python NumPy. SciPy cũng được phát âm là “Sigh Pi. ”

Các gói phụ của SciPy

  • Nhập/xuất tệp – scipy. io
  • Chức năng đặc biệt – scipy. đặc biệt
  • Phép Toán Đại Số Tuyến Tính – scipy. linalg
  • Nội suy – scipy. nội suy
  • Tối ưu hóa và phù hợp – scipy. tối ưu hóa
  • Thống kê và số ngẫu nhiên – scipy. số liệu thống kê
  • Tích hợp số – scipy. tích hợp
  • Biến đổi Fourier nhanh – scipy. fftpack
  • Xử lý tín hiệu – scipy. dấu hiệu
  • Thao tác hình ảnh – scipy. hình ảnh

Trong hướng dẫn Python SciPy này, bạn sẽ học

  • SciPy là gì?
  • Tại sao nên sử dụng SciPy
  • Numpy VS SciPy
  • SciPy – Cài đặt và Thiết lập Môi trường
  • Gói đầu vào / đầu ra tệp
  • Gói chức năng đặc biệt
  • Đại số tuyến tính với SciPy
  • Biến đổi Fourier rời rạc – scipy. fftpack
  • Tối ưu hóa và Phù hợp trong SciPy – scipy. tối ưu hóa
  • Thuật toán Nelder –Mead
  • Xử lý hình ảnh với SciPy – scipy. hình ảnh

Tại sao nên sử dụng SciPy

  • SciPy chứa nhiều gói phụ giúp giải quyết vấn đề phổ biến nhất liên quan đến Tính toán Khoa học
  • Gói SciPy trong Python là thư viện Khoa học được sử dụng nhiều nhất chỉ đứng sau Thư viện Khoa học GNU cho C/C++ hoặc Matlab's
  • Dễ sử dụng và dễ hiểu cũng như khả năng tính toán nhanh
  • Nó có thể hoạt động trên một mảng thư viện NumPy

Numpy VS SciPy

Nặng nề

  • Numpy được viết bằng C và sử dụng để tính toán hoặc tính toán số
  • Nó nhanh hơn các Thư viện Python khác
  • Numpy là thư viện hữu ích nhất cho Khoa học dữ liệu để thực hiện các tính toán cơ bản
  • Numpy không chứa gì ngoài kiểu dữ liệu mảng thực hiện thao tác cơ bản nhất như sắp xếp, định hình, lập chỉ mục, v.v.

khoa học viễn tưởng

  • SciPy được xây dựng trên NumPy
  • Mô-đun SciPy trong Python là phiên bản đầy đủ tính năng của Đại số tuyến tính trong khi Numpy chỉ chứa một vài tính năng
  • Hầu hết các tính năng Khoa học dữ liệu mới đều có sẵn trong Scipy thay vì Numpy

SciPy – Cài đặt và Thiết lập Môi trường

Bạn cũng có thể cài đặt SciPy trong Windows qua pip

Python3 -m pip install --user numpy scipy 

Cài đặt Scipy trên Linux

sudo apt-get install  python-scipy python-numpy

Cài đặt SciPy trên máy Mac

sudo port install py35-scipy py35-numpy

Trước khi bắt đầu học SciPy Python, bạn cần biết chức năng cơ bản cũng như các loại mảng khác nhau của NumPy

Cách tiêu chuẩn để nhập các mô-đun SciPy và Numpy

from scipy import special   #same for other modules
import numpy as np

Gói đầu vào / đầu ra tệp

Scipy, gói I/O, có nhiều chức năng để làm việc với các định dạng tệp khác nhau là Matlab, Arff, Wave, Matrix Market, IDL, NetCDF, TXT, CSV và định dạng nhị phân

Chúng ta hãy lấy một ví dụ về định dạng tệp Python SciPy thường được sử dụng trong MatLab

 import numpy as np
 from scipy import io as sio
 array = np.ones[[4, 4]]
 sio.savemat['example.mat', {'ar': array}] 
 data = sio.loadmat[‘example.mat', struct_as_record=True]
 data['ar']

đầu ra

array[[[ 1., 1., 1., 1.],
           [ 1., 1., 1., 1.],
           [ 1., 1., 1., 1.],
           [ 1., 1., 1., 1.]]]

Giải thích mã

  • Dòng 1 & 2. Nhập thư viện SciPy thiết yếu bằng Python với gói I/O và Numpy
  • dòng 3. Tạo mảng 4 x 4, một chiều
  • Dòng 4. Lưu trữ mảng trong ví dụ. tập tin mat
  • dòng 5. Lấy dữ liệu từ ví dụ. tập tin mat
  • dòng 6. đầu ra in

Gói chức năng đặc biệt

  • scipy. gói đặc biệt chứa nhiều chức năng của vật lý toán học
  • Chức năng đặc biệt của SciPy bao gồm Căn bậc ba, Hàm mũ, Tổng nhật ký hàm mũ, Lambert, Hoán vị và Tổ hợp, Gamma, Bessel, siêu hình học, Kelvin, beta, hình trụ parabol, Hàm mũ lỗi tương đối, v.v.
  • Đối với một dòng mô tả tất cả các chức năng này, hãy nhập bảng điều khiển Python
help[scipy.special]	
Output : 
NAME
    scipy.special

DESCRIPTION
    ========================================
    Special functions [:mod:`scipy.special`]
    ========================================
     
    . module:: scipy.special
     
    Nearly all of the functions below are universal functions and follow
    broadcasting and automatic array-looping rules. Exceptions are noted.

Hàm căn bậc ba

Hàm căn bậc ba tìm căn bậc ba của các giá trị

cú pháp

scipy.special.cbrt[x]

Thí dụ

________số 8

đầu ra. mảng[[3. , 4. ]]

Hàm số mũ

Hàm số mũ tính toán phần tử 10**x

Thí dụ

from scipy.special import exp10
#define exp10 function and pass value in its
exp = exp10[[1,10]]
print[exp]

đầu ra. [1. e+01 1. e+10]

Hoán vị & Tổ hợp

SciPy cũng cung cấp chức năng tính toán Hoán vị và Tổ hợp

Kết hợp – scipy. đặc biệt. lược[N,k]

Thí dụ

sudo apt-get install  python-scipy python-numpy
0

đầu ra. 15. 0

Hoán vị –

sudo apt-get install  python-scipy python-numpy
1

Thí dụ

sudo apt-get install  python-scipy python-numpy
2

đầu ra. 20

Nhật ký hàm số mũ

Nhật ký Tổng Hàm mũ tính toán nhật ký của phần tử đầu vào tổng hàm mũ

cú pháp

sudo apt-get install  python-scipy python-numpy
3

Chức năng Bessel

Hàm tính số nguyên thứ n

cú pháp

sudo apt-get install  python-scipy python-numpy
4

Đại số tuyến tính với SciPy

  • Đại số tuyến tính của SciPy là một triển khai của các thư viện BLAS và ATLAS LAPACK
  • Hiệu suất của Đại số tuyến tính rất nhanh so với BLAS và LAPACK
  • Thủ tục đại số tuyến tính chấp nhận đối tượng mảng hai chiều và đầu ra cũng là một mảng hai chiều

Bây giờ hãy làm một số thử nghiệm với scipy. linalg,

Tính định thức của ma trận hai chiều,

sudo apt-get install  python-scipy python-numpy
5

đầu ra. -7. 0

Ma trận nghịch đảo –

sudo apt-get install  python-scipy python-numpy
6

Ma trận nghịch đảo của scipy tính nghịch đảo của bất kỳ ma trận vuông nào

Hãy xem nào,

sudo apt-get install  python-scipy python-numpy
7

đầu ra

sudo apt-get install  python-scipy python-numpy
8

Giá trị riêng và vectơ riêng

scipy. linalg. eig[]

  • Vấn đề phổ biến nhất trong đại số tuyến tính là giá trị riêng và véc tơ riêng có thể dễ dàng giải quyết bằng hàm eig[]
  • Bây giờ chúng ta hãy tìm Giá trị riêng của [X] và véc tơ riêng tương ứng của ma trận vuông hai chiều

Thí dụ

sudo apt-get install  python-scipy python-numpy
9

đầu ra

sudo port install py35-scipy py35-numpy
0

Biến đổi Fourier rời rạc – scipy. fftpack

  • DFT là một kỹ thuật toán học được sử dụng để chuyển đổi dữ liệu không gian thành dữ liệu tần số
  • FFT [Chuyển đổi Fourier nhanh] là một thuật toán để tính toán DFT
  • FFT được áp dụng cho một mảng nhiều chiều
  • Tần số xác định số lượng tín hiệu hoặc bước sóng trong khoảng thời gian cụ thể

Thí dụ. Bắt sóng và hiển thị bằng thư viện Matplotlib. chúng ta lấy ví dụ hàm tuần hoàn đơn giản của sin[20 × 2πt]

sudo port install py35-scipy py35-numpy
1

đầu ra

bạn có thể thấy điều này. Tần số là 5 Hz và tín hiệu của nó lặp lại sau 1/5 giây – nó được gọi là một khoảng thời gian cụ thể

Bây giờ chúng ta hãy sử dụng sóng hình sin này với sự trợ giúp của ứng dụng DFT

sudo port install py35-scipy py35-numpy
2

đầu ra

  • Bạn có thể thấy rõ đầu ra là mảng một chiều
  • Đầu vào chứa các giá trị phức tạp bằng 0 trừ hai điểm
  • Trong ví dụ về DFT, chúng tôi hình dung độ lớn của tín hiệu

Tối ưu hóa và Phù hợp trong SciPy – scipy. tối ưu hóa

  • Tối ưu hóa cung cấp một thuật toán hữu ích để giảm thiểu khớp đường cong, đa chiều hoặc vô hướng và khớp gốc
  • Hãy lấy một ví dụ về Hàm vô hướng, để tìm hàm vô hướng tối thiểu
sudo port install py35-scipy py35-numpy
3

đầu ra

Đã kết thúc tối ưu hóa thành công

Giá trị chức năng hiện tại. -23. 241676

lặp đi lặp lại. 4

đánh giá chức năng. 18

đánh giá độ dốc. 6

mảng [[-1. 67096375]]

  • Trong ví dụ này, tối ưu hóa được thực hiện với sự trợ giúp của thuật toán giảm độ dốc từ điểm ban đầu
  • Nhưng vấn đề có thể xảy ra là cực tiểu cục bộ thay vì cực tiểu toàn cầu. Nếu chúng tôi không tìm thấy một hàng xóm của cực tiểu toàn cầu, thì chúng tôi cần áp dụng tối ưu hóa toàn cầu và tìm hàm cực tiểu toàn cầu được sử dụng như bashopping[] kết hợp trình tối ưu hóa cục bộ

tối ưu hóa. bashopping[hàm, 0]

đầu ra

sudo port install py35-scipy py35-numpy
4

Thuật toán Nelder –Mead

  • Thuật toán Nelder-Mead chọn thông qua tham số phương thức
  • Nó cung cấp cách giảm thiểu đơn giản nhất cho chức năng hoạt động công bằng
  • Thuật toán Nelder – Mead không được sử dụng để đánh giá độ dốc vì có thể mất nhiều thời gian hơn để tìm ra giải pháp
sudo port install py35-scipy py35-numpy
5

đầu ra

sudo port install py35-scipy py35-numpy
6

Xử lý hình ảnh với SciPy – scipy. hình ảnh

  • scipy. ndimage là một mô hình con của SciPy, chủ yếu được sử dụng để thực hiện một thao tác liên quan đến hình ảnh
  • ndimage có nghĩa là hình ảnh chiều “n”
  • Xử lý hình ảnh SciPy cung cấp phép biến đổi hình học [xoay, cắt, lật], lọc hình ảnh [sắc nét và khử mũi], hình ảnh hiển thị, phân đoạn hình ảnh, phân loại và trích xuất các tính năng
  • Gói MISC trong SciPy chứa các hình ảnh dựng sẵn có thể được sử dụng để thực hiện tác vụ thao tác hình ảnh

Thí dụ. Hãy lấy một ví dụ biến đổi hình học của hình ảnh

sudo port install py35-scipy py35-numpy
7

đầu ra

Bây giờ chúng tôi Lật xuống hình ảnh hiện tại

sudo port install py35-scipy py35-numpy
8

đầu ra

Thí dụ. Xoay hình ảnh bằng scipy,

sudo port install py35-scipy py35-numpy
9

đầu ra

Tích hợp với scipy – Tích hợp số

  • Khi chúng tôi tích hợp bất kỳ chức năng nào mà không thể tích hợp phân tích, chúng tôi cần chuyển sang tích hợp số
  • SciPy cung cấp chức năng tích hợp chức năng với tích hợp số
  • scipy. thư viện tích hợp có các quy tắc tích hợp đơn, đôi, ba, nhiều, Gaussian quadrate, Romberg, Trapezoidal và Simpson

Thí dụ. Bây giờ hãy lấy một ví dụ về Tích hợp đơn lẻ

Ở đây a là giới hạn trên và b là giới hạn dưới

from scipy import special   #same for other modules
import numpy as np
0

đầu ra

[0. 33333333333333337, 3. 700743415417189e-15]

Ở đây hàm trả về hai giá trị, trong đó giá trị đầu tiên là tích phân và giá trị thứ hai là lỗi ước tính trong tích phân

Thí dụ. Bây giờ hãy lấy một ví dụ SciPy về tích hợp kép. Chúng tôi tìm thấy sự tích hợp kép của phương trình sau đây,

Chủ Đề