Bảng mã NumPy
Vì vậy, bạn cần xem nhanh NumPy để giúp bạn làm việc thực tế? Bài viết này chính là thứ bạn cần!
![](https://post.nghiatu.com/assets/images/m/max/724/0*PKX-KMjS_AqPHKRI.jpg)
Bắt đầu
NumPy là một gói tính toán khoa học trong Python. Nó đi kèm với các chức năng được xác định trước cho đại số tuyến tính, biến đổi Fourier và ma trận. NumPy thường được sử dụng cho các ứng dụng Khoa học dữ liệu.
Để bắt đầu, trước tiên hãy đảm bảo bạn có Python và NumPy trong hệ thống của mình. Cách bạn nhận được nó tùy thuộc vào hệ thống của bạn và IDE mà bạn ưu tiên, nhưng tôi khuyên dùng Anaconda. Với cài đặt Anaconda cơ bản, bạn chỉ cần vào terminal và chạy “conda install numpy” & voila!
Bây giờ, hãy tạo một tệp example.py để bắt đầu làm việc.
Lưu ý: Nếu chúng ta tạo một dự án thay vì một tệp ví dụ duy nhất để làm việc, thì chúng ta chỉ cần tạo một thư mục và một tệp __init__.py bên trong nó.
Bạn nên thêm dòng sau vào đầu tệp để có thể làm việc với NumPy trong tệp.
nhập numpy dưới dạng np
Lưu ý: Chúng tôi thường nhập nó dưới dạng np để chúng tôi không phải nhập numpy mỗi khi chúng tôi gọi một hàm từ NumPy. Hãy nhớ rằng có thể thay đổi altough, np là quy ước chung.
Sau đó, bạn có thể chạy mã trong tệp ví dụ bằng cách đi tới thiết bị đầu cuối và chạy lệnh:
ví dụ python.py
Danh sách vs Mảng
Chúng ta sẽ sử dụng Mảng rất nhiều với các hoạt động NumPy của mình, vì vậy tốt hơn hết là làm rõ một điều: danh sách và mảng khác nhau trong Python.
Với Mảng, bạn có thể khai báo các cấu trúc đa chiều như ma trận và bạn có thể thực hiện các phép toán số bên trong nhưng điều đó không đúng với các Danh sách cũ đơn giản. Do đó, NumPy phụ thuộc rất nhiều vào Mảng.
Danh sách có thể được gán cho một giá trị mà không cần phải khai báo, nhưng Mảng thì không. Vì vậy, để xác định một mảng, bạn phải làm như sau:
exampleArray = np.arrray([10, 15, 20]) // mảng một chiều
Hoặc bạn có thể định nghĩa một mảng nhiều chiều là:
exampleArray2 = np.array([10, 15, 20], [50, 100, 150], [1, 2, 3])
Bạn có thể gọi các mục trong mảng là:
exampleArray2 [1] // trả về [50, 100, 150]
ví dụArray2 [1] [0] // trả về 50
phương pháp
Dưới đây, bạn sẽ tìm thấy các chức năng cơ bản nhất thường được sử dụng khi làm việc với NumPy. Mặc dù có rất nhiều, nhưng nhiều điều sau đây sẽ đủ để giúp bạn bắt đầu.
Phương thức tạo mảng
- np.arange(0, 10): Tạo mảng một chiều với các số từ 0 đến 9 làm mục.
- np.arange(0, 10, 3): Tạo mảng một chiều với các số từ 0 đến 10 nhảy đến mỗi phần ba. Trả về một mảng với 0,3,6,9 là các mục.
- np.zeros(3): Tạo mảng 3 mục với giá trị 0 cho mỗi mục.
- np.ones(3): Tạo mảng 3 mục với giá trị 1 cho mỗi mục.
- np.linspace(0,20,5): Nhận 5 số từ 0 đến 20 với các bước bằng nhau ở giữa. Trả về một mảng các mục 0, 5, 10, 15, 20. Hãy nhớ rằng nếu chúng ta nói chọn 6 mục, các mục sẽ là số float thay vì intefers để đảm bảo khoảng cách bằng nhau ở giữa.
- np.eye(3): Tạo ma trận nhận dạng có 3 cột và 3 hàng. Các giá trị đường chéo trả về tất cả 1 và tất cả các giá trị khác trả về 0.
- np.random.randn(5): Tạo mảng một chiều với 5 số ngẫu nhiên làm mục. Các số có thể là kiểu số nguyên và/hoặc float, âm và/hoặc dương.
- np.random.randn(5,5): Tạo ma trận có 5 hàng và 5 cột với 25 giá trị ngẫu nhiên làm mục.
- np.random.randint(1, 10, 2): Trả về hai số ngẫu nhiên lớn hơn 1 và nhỏ hơn 10.
- myArray.reshape(5,5): Lấy mảng một chiều có tên myArray và trả về nó dưới dạng ma trận có 5 hàng và 5 cột. Hãy nhớ rằng nếu không có đủ số mục trong mảng, trong trường hợp ví dụ là 5 x 5 = 25 mục, điều này sẽ gây ra lỗi và không hoạt động. Phương thức này sẽ không tự thay đổi mảng mà chỉ trả về một phiên bản đã thay đổi của mảng.
- myArray.max(): Trả về số lớn nhất trong các mục của một mảng số.
- myArray.min(): Trả về số nhỏ nhất trong các mục của một mảng số.
- myArray.argmax(): Trả về chỉ số của số lớn nhất trong các mục của một mảng số.
- myArray.argmin(): Trả về chỉ số của số nhỏ nhất trong các phần tử của một mảng số.
- myArray.shape: Trả về hình dạng của một mảng. Nếu mảng là một kích thước duy nhất với 10 phần tử, nó sẽ trả về (10, ). Nếu mảng là một ma trận bao gồm 5 cột và 6 hàng, nó sẽ trả về (5,6). Hãy nhớ rằng đây không phải là một chức năng mà thay vào đó là một thuộc tính nên không có dấu ngoặc đơn khi gọi hình dạng.
- myArray[5]: Trả về mục từ mảng có chỉ số là 5
- myArray[3:5]: Trả về các mục nằm giữa chỉ mục số 3 và 5, bao gồm mục có chỉ số 3 nhưng không bao gồm mục 5.
- myArray[3:5] = -3: Thay đổi giá trị của các mục giữa chỉ mục 3 và 5 thành -3.
- myArray[:] = 30: Thay đổi giá trị của tất cả các mục trong mảng thành 30 từng mục một.
- myArray = 30: Thay đổi loại myArray từ mảng thành số nguyên và đặt giá trị của nó thành 30.
- newArray = myArray.copy(): Tạo một bản sao của myArray và đặt nó vào newArray. Lưu ý rằng nếu bạn không sử dụng phương thức .copy(), bạn sẽ thấy tất cả các thay đổi bạn đã thực hiện đối với newArray cũng phản ánh trên myArray.
Hãy khai báo một ma trận là myMatrix = ( [5, 10, 15] , [1, 2, 3] , [0, 0, 0] ).
- myMatrix[0]: Trả về mục có chỉ số hàng 0, là một mảng. Do đó trả về [5, 10, 15].
- myMatrix[0] [1]: Trả về mục có chỉ số cột là 1 và chỉ số hàng là 0, vì vậy trong trường hợp này trả về giá trị 10.
- myMatrix[0,1]: Trả về mục có chỉ mục cột 1 và chỉ mục hàng 0, vì vậy trong trường hợp này trả về giá trị 10.
- myMatrix[1, 1:]: Lấy hàng có chỉ số 1 như thường lệ, nhưng trả về các mục có chỉ số cột bắt đầu từ 1 (bao gồm 1 vì mối nối luôn hoạt động với Python), vì vậy trong trường hợp này trả về [2, 3].
- myMatrix[ [0,1] ]: Trả về giá trị của chỉ số 0 và 1, vì vậy trong trường hợp của chúng tôi trả về ( [5, 10, 15] , [1, 2, 3] ).
Hãy xác định một mảng myArray để làm việc với myArray = [ 5,10,15,20]
- myArray > 10: Trả về một mảng đánh giá đúng và sai theo điều kiện, vì vậy trong trường hợp của chúng tôi trả về [false, false, true, true]. Lưu ý rằng tihs không thay đổi giá trị ban đầu của myArray mà thay vào đó tạo ra một cách mới.
- myArray [myArray > 10]: Trả về một mảng mới với các mục thực sự tuân theo điều kiện là [15, 20].
- myArray + myArray: Trả về một mảng trong đó các giá trị được tính tổng theo chỉ mục và được đặt vào chỉ mục tương ứng, trong trường hợp của chúng tôi trả về [10, 20, 30, 40].
- myArray — myArray: Trả về một mảng trong đó các giá trị được trừ theo chỉ mục theo chỉ mục và được đặt vào chỉ mục tương ứng, trong trường hợp của chúng tôi trả về [0, 0, 0, 0].
- myArray/myArray: Trả về một mảng trong đó các giá trị được chia theo chỉ mục theo chỉ mục và được đặt vào chỉ mục tương ứng, trong trường hợp của chúng tôi trả về [1,1,1,1]. Lưu ý rằng nếu có 0 trong bất kỳ chỉ mục nào làm giá trị, vì một số không thể chia cho 0, điều này sẽ đưa ra cảnh báo & trả về nan cho chỉ mục đó nhưng chia các chỉ mục khác như bình thường.
- np.sqrt(myArray): Trả về một mảng có căn bậc hai nếu mỗi giá trị trên cùng một chỉ mục. Vì vậy, nếu myArray là [25, 16, 36] thì hàm sẽ trả về [ 5, 4, 6].