Zero Imply Là Gì ? Định Nghĩa Và Giải Thích Ý Nghĩa Định Nghĩa Và Giải Thích Ý Nghĩa

Mọi những bài tập trong bài viết này có thể được thực hành quản lý trên trình thông qua qua trang net FundaML

2.1. Khởi tạo 1 ma trận 2.2. Ma trận đơn vị và ma trận đường chéo 2.4. Truy cập vào từng phần tử của ma trận 2.4.1. Truy cập vào từng phần tử 2.5. Truy cập vào nhiều phần tử của ma trận 2.6. np.sum, np.min, np.max, np.imply cho mảng nhiều chiều 2.7. Những phép toán tác động tới mọi phần tử của ma trận 2.9. Chuyện vị ma trận, Reshape ma trận 2.11. Tích giữa 2 ma trận, tích giữa ma trận và vector

2.0. Mảng nhiều chiều

Trong Numpy, người ta thường dùng mảng numpy 2 chiều để mô tả 1 ma trận. Mảng 2 chiều có thể coi là 1 mảng của những mảng 1 chiều. Trong ấy, từng mảng bé 1 chiều tương ứng sở hữu 1 hàng của ma trận.

Bạn đang xem: Zero imply là gì

Nói phương pháp khác, ma trận có thể được coi là mảng của những vector hàng – từng vector hàng được biểu diễn bằng 1 mảng numpy 1 chiều.

Thí dụ, trường hợp 1 mảng numpy 2 chiều a mô tả ma trận:(left<start{matrix} 1 & 2 3 & 4 finish{matrix} proper>), lúc được in ra nó sẽ có dạng:

array(<<1, 2>, <3, 4>>)Trên đây chúng ta có thể nhìn thấy cha mảng, từng mảng được mô tả bằng 1 cặp đóng mở ngoặc vuông <>:

2 mảng <1, 2> và <3, 4> mô tả những hàng của ma trận. Chúng là những mảng 1 chiều.

mảng <<1, 2>, <3, 4>> có 2 phân tử, từng phần tử là 1 hàng của ma trận.

Theo quy ước của Numpy, chúng ta cần đi từ mảng bên cạnh cùng tới những mảng trong:

mảng lớn nhất là <<1, 2>, <3, 4>> được coi là mảng ứng sở hữu axis = 0. Trong mảng này, thành phần thứ 1 là <1, 2>, thành phần thứ 2 là <3, 4>.

2 mảng lớn thứ 2 là <1, 2> và <3, 4> được coi là những mảng ứng sở hữu axis = 1.

Chú ý:

1 mảng numpy hoàn toàn có thể có nhiều hơn 2 chiều. Lúc ấy ta vẫn đi từ cặp ngoặc vuông bên cạnh cùng vào tới trong cùng, axis cũng đi từ 0, 1, … theo thứ tự động ấy.

Từng mảng con cần có số phần tử bằng nhau, mô tả cho việc từng hàng của ma trận cần có số chiều như nhau, ko có hàng nào thò ra thụt vào.

Xem Thêm  160 gợi ý đặt tên con gái họ Trần hay và ý nghĩa – MarryBaby

Lúc khiến việc sở hữu những thư viện cho Machine Studying, từng điểm dữ liệu thường được coi là 1 mảng 1 chiều. Tập hợp những điểm dữ liệu thường được lưu trong 1 ma trận – tức mảng của những mảng 1 chiều. Trong ma trận này, từng hàng tương ứng sở hữu 1 điểm dữ liệu.

Việc này tương đối ngược sở hữu phương pháp xây dựng toán học của những thuật toán, nơi mà từng điểm dữ liệu thường được coi là 1 vector cột – tức từng cột của ma trận là 1 điểm dữ liệu. Lúc đọc những tài liệu và khiến việc sở hữu những thư viện, bạn đọc cần chú ý.

Giống như bài “Cơ bản về vector”, trong bài học này, chúng ta sẽ cùng khiến quen sở hữu những phương pháp xử lý ma trận trong Numpy: Khởi tạo, truy cập, thay đổi đổi, ma trận đặc biệt, …

2.1. Khởi tạo 1 ma trận

2.1.1. Khởi tạo 1 ma trận

Phương pháp đơn giản nhất để khởi tạo 1 ma trận là nhập vào từng phần tử của ma trận ấy. Phương pháp khiến này, tất nhiên, chỉ yêu thích sở hữu những ma trận bé.

Giả dụ bạn new chuyển từ Matlab qua Python, bạn sẽ thấy phương pháp khai báo của Matlab dễ chịu hơn siêu nhiều. Chúng ta sẽ cần quen dần thôi :).

Lúc khai báo 1 mảng numpy nói chung, trường hợp ít nhất 1 phần tử của mảng là float, sort của mọi phần tử trong mảng sẽ được coi là “numpy.float64” (số thực 64 bit).

Ngược lại, trường hợp toàn bộ những phần tử là số nguyên (ko có dấu . xuất hiện),sort của mọi phần tử trong mảng sẽ được coi là “numpy.int64” (số nguyên 64 bit).

Xem thêm: Cấu Trúc Và Phương pháp Dùng I Don’T Thoughts Trong Tiếng Anh, 1 Số Mẫu Câu Tiếng Anh Dùng

Giả dụ muốn chỉ định sort của những phần tử trong mảng, ta cần đặt giá trị cho dtype. Thí dụ:

Bài tập:

Khai báo 1 mảng numpy 2 chiều A mô tả ma trận:

<mathbf{A} = left<start{matrix}1 & 2 & 3 4 & 5 & 6 7 & 8 & 9end{matrix}proper>>

2.2. Ma trận đơn vị và ma trận đường chéo

2.2.1. Ma trận đơn vị

Để tạo 1 ma trận đơn vị có số chiều bằng n (ma trận đơn vị là 1 ma trận vuông có đa số những phần tử trên đường chéo bằng 1), chúng ta dùng hàm np.eye():

Xem Thêm  Cân bằng điện tử DSC là gì? Công dụng như thế nào?

Hàm np.eye() cũng được dùng để tạo những ma trận toàn 1 tại 1 đường chéo phụ nào ấy, những thành phần còn lại bằng 0. Thí dụ:ok = 1 sẽ tương ứng sở hữu đường chéo phụ ngay trên đường chéo chíh. ok = -2 sẽ tương ứng sở hữu đường chéo phụ thứ 2 bên dưới đường chéo chính.

Bạn đọc có thể đọc thêm về phương pháp dùng hàm ‘np.eye()’ tại đây.

Xin nhắc lại rằng bạn đọc luôn có thể xem phương pháp dùng 1 hàm trên terminal bằng phương pháp gõ assist(func) trong ấy func là tên hàm bạn muốn tra cứu. Thí dụ, assist(np.eye).

2.2.2. Ma trận đường chéo

Để khai báo 1 ma trận đường chéo, hoặc muốn trích xuất đường chéo của 1 ma trận, ta dùng hàm np.diag.

Giả dụ đầu vào là 1 mảng 1 chiều, trả về 1 mảng 2 chiều mô tả ma trận có đường chéo là những phần tử thuộc mảng ấy.

Giả dụ đầu vào là 1 mảng 2 chiều (có thể ko vuông), trả về mảng 1 chiều chứa những giá trị tại hàng thứ i, cột thứ i sở hữu 0 . Trong ấy m, n lần lượt là số hàng và số cột của ma trận được biểu diễn bằng mảng 2 chiều ban đầu.

Đường chéo phụ của 1 ma trận cũng có thể được lấy bằng phương pháp dùng hàm này và chỉ ra giá trị của ok:

Bài tập:

Sở hữu 1 số tự động nhiên n, hãy viết hàm trả về ma trận có dạng: <left<start{matrix}0 & 0 & 0 & 0 & dots & 0 & 0 1 & 0 & 0 & 0 & dots & 0 & 0 0 & 2 & 0 & 0 & dots & 0 & 0 dots & dots & dots & dots & ddots & dots 0 & 0 & 0 & 0 & dots & 0 & 0 0 & 0 & 0 & 0 & dots & n & 0 finish{matrix}proper>>tức đường chéo phụ ngay dưới đường chéo chính nhận những giá trị từ 1 tới (n). Những thành phần là kiểu số nguyên.

2.3. Kích thước của ma trận

Giống như phương pháp tìm kích thước của mảng 1 chiểu, để tìm kích thước của mảng 2 chiều, ta cũng dùng thuộc tính form:

Trên đây, kết quả trả về là 1 tuple. Số phần tử của tuple này chính là số chiều của mảng. Giả dụ coi mảng 2 chiều như ma trận, số hàng và số cột của ma trận có thể được tính bằng:Sở hữu mảng numpy nhiều chiều, ta cũng dùng thuộc tính form để tìm kích thước của từng chiều.

Xem Thêm  Lý thuyết hợp tác ion – tinh thể ion

2.4. Truy cập vào từng phần tử của ma trận

2.4.1. Truy cập vào từng phần tử

Có 2 phương pháp để truy cập vào từng phần tử của mảng 2 chiều:

2.4.1.1. Phương pháp 1: giống sở hữu record

Để truy cập vào phần tử tại hàng thứ i, cột thứ j của ma trận (chỉ số khởi đầu từ 0), ta có thể coi phần tử ấy là phần tử thứ j của mảng i trong mảng 2 chiều ban đầu.

Thí dụ:

tại đây A<1> chính lả mảng 1 chiều <4, 5, 6>, trong mảng này, ta lấy phần tử có chỉ số là 2, phần tử ấy có giá trị là 6. Vậy A<1><2> = 6.2.4.1.2. Phương pháp 2: giống như Matlab

Trong Matlab, để truy cập vào phần tử tại hàng trước tiên, cột trước tiên của 1 ma trận A, ta dùng A(1, 1). Trong Numpy, có 1 chút thay đổi đổi:

Chỉ số khởi đầu từ 0. Bộ chỉ số được đặt trong dấu ngoặc vuông <>.

Thí dụ

2.4.2. Truy cập vào hàng/cột

Để truy cập vào hàng có chỉ số i của 1 ma trận A, ta chỉ cần dùng A hoặc A hoặc A<:>:

Để truy cập vào cột có chỉ số j, ta dùng A<:,j>:Chú ý:

Trong Numpy, kết quả trả về của 1 cột hay hàng đều là 1 mảng 1 chiều, ko cần là 1 vector cột như trong Matlab. Tuy nhiên, lúc lấy 1 ma trận nhân sở hữu nó, nó vẫn được coi là 1 vector cột. Thông tin chi tiết sẽ có trong những bài sau.

Giả dụ dùng A<:><1>, kết quả trả về là hàng có chỉ số 1 chứ ko cần cột có chỉ số 1. Trong trường hợp này, A<:> vẫn được hiểu là cả ma trận A, vì vậy nên A<:><1> tương đương sở hữu A<1>.

Có sự khác nhau cơ bản giữa A và A<:>, chúng ta sẽ quay lại trong 1 bài nào ấy tại sau.

Bài tập:

Cho 1 ma trận A, viết hàm myfunc tính tổng những phần tử trên những cột có chỉ số chẵn (0, 2, 4, …) của ma trận ấy. Thí dụ: