Sử dụng python nội suy numpy
Hàm Show
Mã số 1
[1. 1. 1.5 1.72 2.14]0 [1. 1. 1.5 1.72 2.14]1 [1. 1. 1.5 1.72 2.14]5 # numpy.interp() function 8[1. 1. 1.5 1.72 2.14]7 numpy.interp() 5[1. 1. 1.5 1.72 2.14]7 2[1. 1. 1.5 1.72 2.14]7 4[1. 1. 1.5 1.72 2.14]7 6numpy.interp() 1 scipy (đọc là /ˈsaɪpaɪ'/ "Sigh Pie") là phần mềm nguồn mở cho toán học, khoa học và kỹ thuật. Thư viện SciPy được xây dựng dựa trên thư viện NumPy, cung cấp thao tác mảng N thuận tiện và nhanh chóng. SciPy bao gồm các gói con (mô-đun con) cho tính toán tuyến tính, tối ưu hóa, tích hợp và thống kê NumPy và SciPy rất dễ sử dụng, mạnh mẽ và được nhiều nhà khoa học, kỹ sư hàng đầu thế giới lựa chọn. Nếu bạn cần thao tác số trên máy tính và hiển thị kết quả hoặc công bố, hãy thử SciPy Vì sao nên sử dụng scipy?
Cài đặt thư viện
Lưu ý. Numpy phải được cài đặt trước. Bạn cũng nên cài đặt Matplotlib khi sử dụng Scipy. Một số cách cài đặt Scipy khác chi tiết tại mặt đất Khai báo thư việnĐể đơn giản và thuận tiện, các gói con của thư viện Scipy và các thư viện Numpy, Matplotlib thường được khai báo dưới dạng báo cáo
Các hàm cơ bảnscipy được xây dựng trên Numpy nên bạn có thể sử dụng các hàm của Numpy để thực hiện tất cả các thao tác mảng cơ bản. Chi tiết về các hàm này bạn có thể tìm thấy trong NumPy Reference Guide hoặc sử dụng các lệnh , và. Bên dưới là ví dụ về một số thao tác mảng cơ bản Ví dụ 1. Ví dụ này được viết trong Python Shell Tổng quan về các gói con của ScipyViệc sử dụng thư viện SciPy yêu cầu (hoặc tùy chọn phụ thuộc vào) một số thư viện khác để hoạt động, phụ thuộc chính là Python và NumPy. Nó yêu cầu một bộ sưu tập lớn hơn các thư viện và công cụ để xây dựng thư viện hoặc xây dựng tài liệu. Công cụ và thư viện luôn thay đổi. SciPy Mục đích tương thích với một số bản phát hành của thư viện và công cụ phụ thuộc. Việc buộc cơ sở người dùng sử dụng các thành phần khác nhau để nâng cấp cho mỗi bản phát hành sẽ làm giảm đáng kể giá trị của SciPy. Tuy nhiên, khả năng duy trì khả năng tương thích ngược với các công cụ / thư viện cũ đặt ra những hạn chế trong đó chức năng và khả năng mới hơn có thể được kết hợp. SciPy có một cách tiếp cận có phần bảo thủ là duy trì khả năng tương thích với một số bản phát hành chính của Python và NumPy trên nền tảng chính. Do đó người dùng cần chú ý đến sự tương thích giữa phiên bản của các thư viện khác có liên quan đến phiên bản của Scipy. Những thông tin này được tổng hợp trong mục Lộ trình chuỗi công cụ của tài liệu hướng dẫn scipy. scipy có nhiều gói con và liên tục được phát triển, bổ sung tính năng mới. Bảng tổng hợp các gói con của Scipy theo thứ tự bảng chữ cái gói conMiêu tảcluster Thuật toán phân cụm (Clustering Algorithms) 0 Hằng số toán học và vật lý 1Hàm biến đổi Fourier nhanh (Fast Fourier Transform) 2Giải phương trình vi phân và phân tích 3Nội suy và làm lệch spline 4Đầu vào và đầu ra 5Đại số tuyến tính_______8_______6Xử lý ảnh N Scipy sắp tới sẽ phát triển hỗ trợ BLAS và LAPACK, thêm mảng thưa thớt bên cạnh ma trận thưa thớt, cải tiến biến đổi Fourier, hỗ trợ mảng phân tán và mảng GPU, cải thiện các mã nguồn (bản dựng nguồn) trên Windows và . Mỗi gói con đều được đội đóng góp (Contribute) xây dựng lộ trình phát triển riêng. Chi tiết tại đây. Tiếp theo chúng ta cùng tìm hiểu từng gói con Chi tiết từng gói con1. Các gói phân cụm (>>> # hàm whiten()- Chuẩn hóa một nhóm quan sát trên cơ sở từng tính năng.
>>> import numpy as np
>>> from scipy.cluster.vq import whiten
>>> features = np.array([[2.9, 3.3, 4.7], [7.5, 6.5, 7.2],[0.8, 0.1, 0.7,]])
>>> whiten(features)
array([[1.03644899, 1.26301815, 1.75565531],
[2.68047153, 2.48776302, 2.68951452],
[0.28591696, 0.03827328, 0.26148058]])
>>> # hàm vq - Gán mã từ một cuốn sách mã cho các quan sát.
>>> from scipy.cluster.vq import vq
>>> code_book = np.array([[1.,1.,1.,],[2.,1.,1.]])
>>> vq(features, code_book)
(array([1, 1, 0]), array([4.44859528, 9.9468588 , 0.96953597]))
>>> # hàm kmeans - Thực hiện k-mean trên một tập các vectơ quan sát tạo thành các cụm k
>>> from scipy.cluster.vq import vq, kmeans, whiten
>>> import matplotlib.pyplot as plt
>>> features = np.array([[],])
>>> from numpy import random
>>> features = np.array([[ 1.3,2.2],
[ 2.1,2.4],
[ 0.4,0.6],
[ 0.3,2.8],
[ 0.1,0.2],
[ 0.2,1.4],
[ 2.0,0.1],
[ 4.3,3.9],
[ 3.0,4.0]])
>>> whitened = whiten(features)
>>> book = np.array((whitened[0],whitened[1]))
>>> kmeans(whitened,book)
(array([[0.52090714, 0.86997969],
[2.27745447, 2.45501118]]), 0.8168475927077372)
>>>
>>> random.seed((500,1500))
>>> codes = 4
>>> kmeans(whitened,codes)
(array([[0.89644484, 1.76379444],
[1.45369434, 0.07150518],
[2.65299217, 2.82445461],
[0.16959767, 0.52437132]]), 0.39112017893552065)
>>> # Tạo 60 điểm dữ liệu trong 2 cụm a và b
>>> pts = 60
>>> a = np.random.multivariate_normal([0, 0], [[4, 1], [1, 4]], size=pts)
>>> b = np.random.multivariate_normal([20, 10], [[14, 2], [2, 1]], size=pts)
>>> features = np.concatenate((a, b))
>>> # Whiten dữ liệu
>>> whitened = whiten(features)
>>> # Tìm 2 cụm dữ liệu
>>> codebook, distortion = kmeans(whitened, 2)
>>> # Vẽ Whiten dữ liệu và tâm cụm (màu đỏ)
>>> plt.scatter(whitened[:, 0], whitened[:, 1])
>>> plt.scatter(codebook[:, 0], codebook[:, 1], c='r')
>>> plt.show()
>>># hàm k-mean2
>>> from scipy.cluster.vq import kmeans2
>>> # Tạo mảng z có hình dạng (100, 2) chứa hỗn hợp các mẫu từ ba phân phối bình thường đa biến.
>>> np.random.seed(12345678)
>>> a = np.random.multivariate_normal([0, 6], [[2, 1], [1, 2.5]], size=45)
>>> b = np.random.multivariate_normal([1, 0], [[1, -1], [-1, 3]], size=35)
>>> c = np.random.multivariate_normal([6, 5], [[4, 0], [0, 1.]], size=25)
>>> z = np.concatenate((a, b, c))
>>> np.random.shuffle(z)
>>> # Tính toán 3 cụm
>>> centroid, label = kmeans2(z, 3, minit='points')
>>> centroid
array([[ 6.17155178, 4.85018346],
[ 0.89380981, -0.14430193],
[ 0.03293515, 6.16629408]])
>>> # Số điểm trong mỗi cụm
>>> counts = np.bincount(label)
>>> counts
array([24, 35, 46], dtype=int64)
>>> # Vẽ các cụm
>>> w0 = z[label == 0]
>>> w1 = z[label == 1]
>>> w2 = z[label == 2]
>>> plt.plot(w0[:, 0], w0[:, 1], 'o', alpha=0.5, label='cụm 1')
[]
>>> plt.plot(w1[:, 0], w1[:, 1], 's', alpha=0.5, label='cụm 2')
[]
>>> plt.plot(w2[:, 0], w2[:, 1], 'd', alpha=0.5, label='cụm 3')
[]
>>> plt.plot(centroid[:, 0], centroid[:, 1], 'ro', label='tâm')
[]
>>> plt.axis('equal')
(-3.2328087766702582, 8.417272880962955, -3.9724381733346927, 10.306803368482795)
>>> plt.legend(shadow=True)
>>> plt.show() |