-
Tuần 1 - Ngày 10 tháng 7 năm 2019
- Giới thiệu về khóa học
- Hướng dẫn viết chương trình Python trên web
- Hướng dẫn sử dụng PyCharm
- Tổng quan về Python
- Kỹ năng sử dụng Google search
- Viết tài liệu kỹ thuật dùng Markdown
- Hàm xây dựng sẵn trong Python – math và random
- Cài đặt các công thức toán cơ bản
- Xây dựng hàm trong python
- Điều kiện if-else
- Những lỗi thường gặp trong Python
- Reading assignment
-
Tuần 2 - Ngày 17 tháng 7 năm 2019
-
Tuần 3 - Ngày 24 tháng 7 năm 2019
-
Tuần 4 - Ngày 31 tháng 7 năm 2019
-
Tuần 5 - Ngày 7 tháng 8 năm 2019
-
Advanced Python
-
Tuần 6 - Ngày 14 tháng 8 năm 2019
-
Tuần 7 - Ngày 28 tháng 8 năm 2019
-
Tuần 8
-
Tuần 9
Giới thiệu về numpy
Một mảng numpy là một tập hợp các giá trị cùng kiểu dữ liệu và được đánh số bằng các số nguyên dương. Numpy là module quan trọng cho việc sử lý dữ liệu và có thể chuyển đổi qua kiểu dữ liệu tensor trong tensorflow và pytorch.
Tạo mảng numpy (ndarray)
Tạo ndarray từ list
Sử dụng thuộc tính shape và hàm type() cho mảng numpy
Thay đổi shape của một mảng
Kiểu dữ liệu: Mảng numpy chứa các phần tử cùng kiểu dữ liệu. Numpy cung cấp một tập hợp các kiểu dữ liệu mà chúng có thể sử dụng để xây dựng các mảng.
Thay đổi giá trị của một phần tử
Tạo ndarray với hàm zeros()
Tạo ndarray với hàm ones()
Tạo ndarray với hàm full()
Tạo ma trận đường chéo
Tạo một numpy array với giá trị ngẫu nhiên
Điều kiện cho mảng numpy
Chuyển mảng về một chiều
Array indexing: Numpy cung cấp một số cách để truy xuất phần tử trong mảng. Truy xuất phần tử dùng kỹ thuật slicing tương tự như danh sách (list) trong python.
Ví dụ 1: Lấy các phần tử từ mảng 2 chiều như sau
Việc một mảng mới được tạo ra từ slicing sẽ có cùng địa chỉ với mảng gốc. Nếu thay đổi một trong hai mảng này thì mảng còn lại cũng thay đổi theo.
Ví du 2: Lấy một dòng dữ liệu
Ví du 3: Lấy một cột dữ liệu
Khi bạn truy xuất mảng dùng slicing, kết quả trả về sẽ là mảng con của mảng ban đầu. Nếu sử dụng chỉ số mảng (index), chúng ta có thể xây dựng mảng tùy ý từ một mảng khác.
Boolean indexing: Cho phép chúng ta chọn ra các phần tử tùy ý của một mảng. Kiểu truy xuất này thường được sử dụng để chọn ra các phần tử thỏa mãn điều kiện nào đó.
Ví dụ 4: Tìm các vị trí thỏa mãn điều kiện
Ví dụ 5: Tìm các vị trí thỏa mãn điều kiện và lấy các phần tử tương ứng
Phép toán trên mảng
Phép cộng giữa hai mảng
Phép trừ giữa hai mảng
Phép nhân giữa hai mảng
Phép chia giữa hai mảng
Tính căn bậc 2 cho từng phần tử
Nhân giữa hai vector (inner product)
Nhân giữa vector và ma trận
Nhân giữa hai ma trận
Tính tổng cho một mảng numpy
Chuyển vị cho một ma trận
Broadcasting: Cho phép thực thi các phép toán trên các mảng có kích thước khác nhau.
Ví dụ, chúng ta muốn cộng một vector cho mỗi hàng của ma trận. Chúng ta có thể làm như như sau
Cách này hoạt động bình thường với ma trận X nhỏ. Khi ma trận X lớn, việc sử dụng vòng lặp này sẽ rất chậm.
Chúng ta có thể thực hiện mục đích trên bằng cách xếp chồng nhiều bản sao của v theo chiều dọc, sau đó thực hiện phép tính tổng với X. Chúng ta có thể thực hiện phương pháp này như sau
Numpy broadcasting cho phép chúng ta thực thi tính toán này mà không cần phải làm thêm các bước thêm nào.