SciPy - Chức năng cơ bản
Theo mặc định, tất cả các chức năng NumPy đã có sẵn thông qua không gian tên SciPy. Không cần nhập các hàm NumPy một cách rõ ràng, khi SciPy được nhập. Đối tượng chính của NumPy là mảng đa chiều thuần nhất. Nó là một bảng các phần tử (thường là số), tất cả đều cùng loại, được lập chỉ mục bởi một bộ số nguyên dương. Trong NumPy, các thứ nguyên được gọi là trục. Số lượngaxes được gọi là rank.
Bây giờ, chúng ta hãy sửa lại chức năng cơ bản của Vectors và Matrices trong NumPy. Vì SciPy được xây dựng dựa trên các mảng NumPy, nên việc hiểu các kiến thức cơ bản về NumPy là cần thiết. Vì hầu hết các phần của đại số tuyến tính chỉ đề cập đến ma trận.
NumPy Vector
Một Vector có thể được tạo theo nhiều cách. Một số trong số chúng được mô tả dưới đây.
Chuyển đổi các đối tượng giống mảng Python thành NumPy
Chúng ta hãy xem xét ví dụ sau.
import numpy as np
list = [1,2,3,4]
arr = np.array(list)
print arr
Kết quả của chương trình trên sẽ như sau.
[1 2 3 4]
Tạo mảng NumPy nội tại
NumPy có các chức năng tích hợp để tạo mảng từ đầu. Một số chức năng này được giải thích bên dưới.
Sử dụng số không ()
Hàm số không (hình dạng) sẽ tạo một mảng chứa các giá trị 0 với hình dạng được chỉ định. Loại mặc định là float64. Chúng ta hãy xem xét ví dụ sau.
import numpy as np
print np.zeros((2, 3))
Kết quả của chương trình trên sẽ như sau.
array([[ 0., 0., 0.],
[ 0., 0., 0.]])
Sử dụng những cái ()
Hàm ones (shape) sẽ tạo một mảng chứa 1 giá trị. Nó giống hệt với số không trong tất cả các khía cạnh khác. Chúng ta hãy xem xét ví dụ sau.
import numpy as np
print np.ones((2, 3))
Kết quả của chương trình trên sẽ như sau.
array([[ 1., 1., 1.],
[ 1., 1., 1.]])
Sử dụng arange ()
Hàm arange () sẽ tạo các mảng có giá trị tăng đều đặn. Chúng ta hãy xem xét ví dụ sau.
import numpy as np
print np.arange(7)
Chương trình trên sẽ tạo ra kết quả sau.
array([0, 1, 2, 3, 4, 5, 6])
Xác định kiểu dữ liệu của các giá trị
Chúng ta hãy xem xét ví dụ sau.
import numpy as np
arr = np.arange(2, 10, dtype = np.float)
print arr
print "Array Data Type :",arr.dtype
Chương trình trên sẽ tạo ra kết quả sau.
[ 2. 3. 4. 5. 6. 7. 8. 9.]
Array Data Type : float64
Sử dụng linspace ()
Hàm linspace () sẽ tạo mảng với một số phần tử được chỉ định, các phần tử này sẽ được đặt cách đều giữa các giá trị đầu và cuối được chỉ định. Chúng ta hãy xem xét ví dụ sau.
import numpy as np
print np.linspace(1., 4., 6)
Chương trình trên sẽ tạo ra kết quả sau.
array([ 1. , 1.6, 2.2, 2.8, 3.4, 4. ])
Ma trận
Ma trận là một mảng 2-D chuyên biệt vẫn giữ được bản chất 2-D của nó thông qua các phép toán. Nó có một số toán tử đặc biệt, chẳng hạn như * (phép nhân ma trận) và ** (lũy thừa ma trận). Chúng ta hãy xem xét ví dụ sau.
import numpy as np
print np.matrix('1 2; 3 4')
Chương trình trên sẽ tạo ra kết quả sau.
matrix([[1, 2],
[3, 4]])
Liên hợp Transpose of Matrix
Tính năng này trả về chuyển vị liên hợp (phức tạp) của self. Chúng ta hãy xem xét ví dụ sau.
import numpy as np
mat = np.matrix('1 2; 3 4')
print mat.H
Chương trình trên sẽ tạo ra kết quả sau.
matrix([[1, 3],
[2, 4]])
Chuyển vị của ma trận
Tính năng này trả về chuyển vị của bản thân. Chúng ta hãy xem xét ví dụ sau.
import numpy as np
mat = np.matrix('1 2; 3 4')
mat.T
Chương trình trên sẽ tạo ra kết quả sau.
matrix([[1, 3],
[2, 4]])
Khi chúng ta hoán vị một ma trận, chúng ta tạo một ma trận mới có các hàng là các cột của ma trận ban đầu. Mặt khác, một chuyển vị liên hợp sẽ thay đổi chỉ số hàng và cột cho mỗi phần tử ma trận. Nghịch đảo của một ma trận là một ma trận mà nếu nhân với ma trận ban đầu, kết quả là một ma trận đồng nhất.