Thủ Thuật Hướng dẫn Hướng dẫn np.empty trong python 2022
Lê Khánh Vy đang tìm kiếm từ khóa Hướng dẫn np.empty trong python được Update vào lúc : 2022-11-26 03:52:05 . Với phương châm chia sẻ Thủ Thuật về trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi đọc tài liệu vẫn ko hiểu thì hoàn toàn có thể lại phản hồi ở cuối bài để Mình lý giải và hướng dẫn lại nha.Trong nội dung bài viết trước tôi đã ra mắt cho bạn về NumPy, quyền lợi của nó, cách setup nó để sử dụng, tìm hiểu về Mảng trong NumPy, kiểu tài liệu trong NumPy. Trong nội dung bài viết này tất cả chúng ta sẽ tiếp tục tìm hiểu về những kiểu tài liệu khác trong NumPy
Nội dung chính Show- Tạo mảngSửa đổi mảngXóa trong mảngĐịnh hình lại mảng (Reshaping Array)Sắp xếp mảngLập chỉ mục mảng / Cắt lát(Array Indexing / Slicing)Xếp chồng mảngJoining ArrayNối những mảng bằng những hàm ngăn xếp(Joining Arrays Using Stack Functions)Xếp chồng lên hàngXếp chồng dọc theo cộtTách mảngArray OperationsPhát sóng mảng(Array Broadcasting)Lặp lại những mảngTham khảo:
Tạo mảng
Để tạo một mảng NumPy, bạn hoàn toàn có thể sử dụng hàm np.array () . Để tạo mảng bạn cần chuyền một list cho nó.
#Load Library import numpy as np #create an array a = np.array([1, 2, 3])Bên cạnh việc tạo mảng từ một chuỗi những phần tử, bạn hoàn toàn có thể thuận tiện và đơn giản tạo mảng bằng phương pháp sử dụng những hàm khác. Các hiệu suất cao được thảo luận như sau: numpy.zeros: Bạn hoàn toàn có thể thuận tiện và đơn giản tạo một mảng chứa những số 0 bằng phương pháp sử dụng numpy.zeros vì nó trả về một mảng mới có kích thước được chỉ định, chứa đầy những số không.
np.zeros (2)
output sẽ là: [0., 0.]
Chú ý: Đừng nhầm lẫn với np.zeros và numpy.zeros . Vì tôi đã nhập thư viện NumPy dưới dạng: nhập numpy dưới dạng np , đó là nguyên do tôi sử dụng np.zeros .
numpy.ones: trả về một mảng mới có kích thước và kiểu được chỉ định, chứa đầy những mảng.
np.ones (5) ouput: [ 1. 1. 1. 1. 1.]
numpy.empty: Hàm trống tạo một mảng có nội dung ban đầu là ngẫu nhiên và phụ thuộc vào trạng thái của cục nhớ.
# Create an empty array with 2 elements np.empty(2)
Output: [ 5.26288483e+064 -1.80841072e-141]
Chú ý: Các phần tử trong một mảng hiển thị những giá trị ngẫu nhiên vì chúng không được khởi tạo.
Kiểu tài liệu mặc định là floating point (float64), bạn hoàn toàn có thể chỉ định rõ ràng kiểu tài liệu nào bạn muốn bằng phương pháp sử dụng dtype như tôi ra mắt ở bài trước
a = np.empty([3,2], dtype = int)
output hiển thị mảng 3 x 2:
[[ 873918640 32764] [ 873923184 32764] [1851858988 1752375396]]numpy.arange: Bạn hoàn toàn có thể tạo một mảng với một loạt những phần tử. Ex: input arange (4)
output: [0, 1, 2, 3]
Hoặc thậm chí là một mảng có chứa một loạt những khoảng chừng cách đều nhau. Để làm điều này, bạn sẽ chỉ định số đầu tiên , số ở đầu cuối và kích thước step .
Input: np.arange(2,9,2)
Output: [2, 4, 6, 8]
numpy.linspace: Hàm này tương tự như hàm arange (). Trong hàm này, thay vì kích thước step, số lượng những giá trị cách đều giữa khoảng chừng được chỉ định. Input: linspace (10,20,5) Output: [10. 12.5 15. 17.5 20. ]
Sửa đổi mảng
Giả sử ta có Array như sau: arr = np.array ([1, 2, 3, 4, 5, 6, 7, 8])
Ta hoàn toàn có thể thêm những phần tử vào mảng của tớ bất kỳ lúc nào với np.append () . Đảm bảo chỉ định mảng và những phần tử bạn muốn đưa vào.
Input: np.append (arr, [1,2])
Ouput: ([1, 2, 3, 4, 5, 6, 7, 8, 1, 2])
Xóa trong mảng
Ta hoàn toàn có thể xóa một phần tử bằng np.delete () . Nếu bạn muốn xóa phần tử ở vị trí 1 trong mảng của tớ, bạn hoàn toàn có thể chạy:
Input: np.delete (arr, 1)
Output: ([1, 3, 4, 5, 6, 7, 8])
Chú ý: Chỉ số của một mảng khởi đầu bằng 0, vì vậy vị trí phần tử 1 là thực tế là thứ 2.
Định hình lại mảng (Reshaping Array)
Sử dụng np.reshape () sẽ đáp ứng một hình dạng mới cho một mảng mà không làm thay đổi tài liệu. Chỉ cần nhớ rằng khi bạn sử dụng hàm reshape, mảng bạn muốn tạo ra nên phải có cùng số phần tử với mảng ban đầu. Nếu bạn khởi đầu với một mảng có 12 phần tử, bạn sẽ cần đảm nói rằng mảng mới của bạn cũng luôn có thể có tổng số 12 phần tử.
Trước khi chuyển sang phương pháp định hình lại, điều quan trọng là phải biết hình dạng và kích thước mảng của bạn. Để đã có được điều này, NumPy đáp ứng cho tất cả chúng ta một số trong những hiệu suất cao:
ndarray.ndim sẽ cho bạn biết số lượng trục hoặc kích thước của mảng.
ndarray.size sẽ cho bạn biết tổng số phần tử của mảng. Đây là sản phẩm của những phần tử của hình dạng của mảng.
ndarray.shape sẽ hiển thị một bộ số nguyên cho biết thêm thêm số lượng phần tử được tàng trữ dọc theo mỗi chiều của mảng. Ví dụ: nếu bạn có một mảng 2D với 2 hàng và 3 cột, hình dạng của mảng của bạn là (2,3).
Giả sử, tất cả chúng ta khởi đầu với mảng này:
arr = np.array ([[1,2,3], [4,5,6]]) print (arr)sau đó ta tìm kích thước mảng: print (arr.ndim). output: 2
print (arr.size). Output: 6
hình dạng của mảng: print (arr.shape) Output: (2, 3)
Sắp xếp mảng
Việc sắp xếp một phần tử rất đơn giản với np.sort () . Bạn hoàn toàn có thể chỉ định trục, loại và thứ tự khi bạn gọi hàm.
Ta khởi đầu với mảng này: arr = np.array ([2, 1, 5, 3, 7, 4, 6, 8])
Bạn hoàn toàn có thể nhanh gọn sắp xếp những số theo thứ tự tăng dần với: print (np.sort (arr))
Output: [1, 2, 3, 4, 5, 6, 7, 8]
Lập chỉ mục mảng / Cắt lát(Array Indexing / Slicing)
Bạn hoàn toàn có thể lập chỉ mục và cắt những mảng NumPy theo cách in như cách bạn hoàn toàn có thể cắt những list Python.
data = np.array ([1,2,3]) print (data [0]) print (data [1]) print (data [0: 2]) print (data [1:]) print (data [- 2:])Output:
1 2 [1 2] [2 3]Chúng ta hãy thử và làm tương tự với mảng đa chiều :
a = np.array ([[1,2,3], [3,4,5], [4,5,6]]) print (a)// Slice items starting from index print a[:]
Output:
[[3 4 5] [4 5 6]]Lưu ý: Đừng nhầm lẫn ở đây, tất cả chúng ta đã cắt nó từ chỉ mục 1 trở đi, trong thời gian ngắn chỉ mục 0 sẽ bị xóa khỏi đầu.
Nếu bạn muốn chọn những giá trị từ mảng của tớ đáp ứng những điều kiện nhất định, nó rất đơn giản với NumPy.
Ví dụ: Ta có mảng này: a = np.array ([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
Bạn hoàn toàn có thể thuận tiện và đơn giản in tất cả những giá trị trong mảng nhỏ hơn 5.
print (a [a <5]) Ouput: [1 2 3 4]
bạn cũng hoàn toàn có thể chọn những số bằng hoặc to hơn 5 và sử dụng điều kiện đó để lập chỉ mục một mảng.
five_up = (a> = 5) print (a [five_up])Ouput: [5 6 7 8 9 10 11 12]
Hoặc bạn hoàn toàn có thể chọn những phần tử thỏa mãn hai điều kiện bằng phương pháp sử dụng dấu & và | toán tử:
Input: ``` c = a [(a> 2) & (a <11)] print (c)
Output: `[3 4 5 6 7 8 9 10]` Bạn cũng hoàn toàn có thể sử dụng những toán tử logic & và | để trả về những giá trị boolean chỉ định những giá trị trong một mảng có đáp ứng một điều kiện nhất định hay là không. Điều này hoàn toàn có thể hữu ích với những mảng có chứa tên hoặc những giá trị phân loại khác. Input:five_up = (a > 5) | (a == 5) print(five_up)
Output: ```python [[False False False False] [ True True True True] [ True True True True]]Bạn cũng hoàn toàn có thể sử dụng np.where () để chọn những phần tử hoặc chỉ số từ một mảng.
Ta có mảng
a = np.array ([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
Bạn hoàn toàn có thể sử dụng np.where () để in những chỉ số của những phần tử, ví dụ: nhỏ hơn 5:
Input:
b = np.where (a <5) print (b)Output: (Array ([0, 0, 0, 0]), Array ([0, 1, 2, 3]))
Xếp chồng mảng
Joining Array
Joining nghĩa là đưa nội dung của hai hoặc nhiều mảng vào một mảng duy nhất. Chúng ta truyền một chuỗi những mảng mà tất cả chúng ta muốn nối vào concatenate(), cùng với trục. Nếu trục không được thông qua một cách rõ ràng, nó được xem là 0.
arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) arr = np.concatenate((arr1, arr2)) print(arr)Output: [1 2 3 4 5 6]
với mảng 2D:
arr1 = np.array ([[1, 2], [3, 4]]) arr2 = np.array ([[5, 6], [7, 8]]) arr = np.concatenate ((arr1, arr2 ), axis = 1) print (arr)Output:
[[1 2 5 6] [3 4 7 8]]Nối những mảng bằng những hàm ngăn xếp(Joining Arrays Using Stack Functions)
Xếp chồng cũng như nối, khác lạ duy nhất là xếp chồng được thực hiện dọc theo một trục mới. Chúng ta hoàn toàn có thể nối hai mảng 1-D dọc theo trục thứ hai, điều này sẽ dẫn đến việc đặt chúng chồng lên nhau, tức là. xếp chồng.
arr1 = np.array ([1, 2, 3]) arr2 = np.array ([4, 5, 6]) arr = np.stack ((arr1, arr2), axis = 1) print (arr)Output:
[[1 4] [2 5] [3 6]]Xếp chồng lên hàng
NumPy đáp ứng một hiệu suất cao trợ giúp: hstack()xếp chồng dọc theo hàng.
arr1 = np.array ([1, 2, 3]) arr2 = np.array ([4, 5, 6]) arr = np.hstack ((arr1, arr2)) #h đề cập đến hàng ngang tức là hàng in (arr )Output: [1 2 3 4 5 6]
Xếp chồng dọc theo cột
NumPy đáp ứng một hiệu suất cao trợ giúp: vstack() xếp chồng dọc theo những cột.
arr1 = np.array ([1, 2, 3]) arr2 = np.array ([4, 5, 6]) arr = np.vstack ((arr1, arr2)) print (arr)Output:
[[1 2 3] [4 5 6]]Tách mảng
Chia tách là hoạt động và sinh hoạt giải trí ngược lại của Gia nhập. Tham gia hợp nhất nhiều mảng thành một và Chia tách sẽ chia một mảng thành nhiều mảng. Chúng tôi sử dụng array_split() để tách mảng, chúng tôi chuyển cho nó mảng mà chúng tôi muốn tách và số lần tách.
arr = np.array ([1, 2, 3, 4, 5, 6]) newarr = np.array_split (arr, 3) print (newarr)Output: [array([1, 2]), array([3, 4]), array([5, 6])]
Chia thành những mảngGiá trị trả về của array_split() phương thức là một mảng chứa mỗi phần tách dưới dạng một mảng. Nếu bạn chia một mảng thành 3 mảng, bạn hoàn toàn có thể truy cập chúng từ kết quả in như bất kỳ phần tử mảng nào:
arr = np.array ([1, 2, 3, 4, 5, 6]) newarr = np.array_split (arr, 3) print (newarr [0]) print (newarr [1]) print (newarr [2] )Output:
[1 2] [3 4] [5 6] Tách mảng 2-DSử dụng cú pháp tương tự khi tách mảng 2-D. Sử dụng array_split() phương thức, truyền vào mảng bạn muốn tách và số lần tách bạn muốn thực hiện. Ví dụ: Chia mảng 2-D thành ba mảng 2-D:
arr = np.array ([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]]) newarr = np.array_split ( arr, 3) in (newarr)OUtput
[array([[1, 2], [3, 4]]), array([[5, 6], [7, 8]]), array([[ 9, 10], [11, 12]])]Bạn hoàn toàn có thể chia một mảng thành nhiều mảng nhỏ hơn bằng phương pháp sử dụng function hsplit. Bạn hoàn toàn có thể chỉ định số lượng những mảng có hình dạng bằng nhau để trả về hoặc những cột mà sau đó phép chia sẽ xảy ra.
Ví dụ ta có mảng này:
arr = np.array ([[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]])Nếu bạn muốn chia mảng này thành ba mảng có hình dạng bằng nhau, ta sẽ chạy:
Input: np.hsplit (arr, 3)
Output:
[array([[ 1, 2, 3, 4], [13, 14, 15, 16]]), array([[ 5, 6, 7, 8], [17, 18, 19, 20]]), array([[ 9, 10, 11, 12], [21, 22, 23, 24]])]Array Operations
Các thao tác cơ bản đơn giản với NumPy. Nếu bạn muốn tìm tổng của những phần tử trong một mảng, bạn sẽ sử dụng sum (). Điều này hoạt động và sinh hoạt giải trí đối với mảng 1D, mảng 2D và mảng ở kích thước cao hơn.
a = np.array ([1, 2, 3, 4]) # Add all of the elements in the array print (a.sum())Output: 10
Với Array 3x4:
a = np.array ([[1,2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) print (a.sum ())Output: 78
Tương tự, những phép toán số học khác ví như cộng (), trừ (), nhân () và chia () cũng dễ sử dụng:
a = np.array ([1, 2, 3]) print (a) b = np.array ([10,10,10]) print (b) print (np.add (a, b)) print (np .subtract (a, b)) print (np.multiply (a, b)) print (np.divide (a, b))Lưu ý - Các mảng đầu vào để thực hiện những phép toán số học như cộng (), trừ (), nhân () và chia () phải có cùng hình dạng hoặc phải tuân theo quy tắc phát mảng.
Phát sóng mảng(Array Broadcasting)
Thuật ngữ phát sóng hay đề cập đến kĩ năng của NumPy để xử lý những mảng có hình dạng rất khác nhau trong những phép toán số học. Các phép toán số học trên mảng thường được thực hiện trên những phần tử tương ứng. Nếu hai mảng có hình dạng hoàn toàn giống nhau thì những thao tác này được thực hiện trơn tru.
a = np.array ([1,2,3,4]) b = np.array ([10,20,30,40]) c = a * b print (c)Output: [ 10 40 90 160]
Nếu kích thước của hai mảng rất khác nhau (tức là rất khác nhau), thì không thể thực hiện những thao tác giữa phần tử với phần tử. Tuy nhiên, những thao tác trên những mảng có hình dạng rất khác nhau vẫn hoàn toàn có thể thực hiện được trong NumPy, vì kĩ năng phát sóng. Mảng nhỏ hơn được phát tới kích thước của mảng to hơn để chúng có hình dạng tương thích.
Ex:
a = np.array ([[0,0,0.0,0.0], [10.0,10.0,10.0], [20.0,20.0,20.0], [30.0,30.0,30.0]]) b = np.array ([1.0,2.0 , 3.0]) print (a) print (b) print (a + b)Hình sau minh họa cách mảng b được phát sóng để tương thích với a .
Output:
[[ 0. 0. 0.] [10. 10. 10.] [20. 20. 20.] [30. 30. 30.]] [1. 2. 3.] [[ 1. 2. 3.] [11. 12. 13.] [21. 22. 23.] [31. 32. 33.]]Lặp lại những mảng
Lặp lại nghĩa là đi qua từng phần tử một.
Khi tất cả chúng ta xử lý mảng nhiều chiều trong numpy, tất cả chúng ta hoàn toàn có thể thực hiện việc này bằng phương pháp sử dụng vòng for lặp cơ bản của python.
Nếu tất cả chúng ta lặp lại trên một mảng 1-D, nó sẽ đi qua từng phần tử một.
arr = np.array ([1, 2, 3]) cho x trong arr: print (x)Output:
1 2 3 Lặp lại Mảng 2-DTrong mảng 2-D, nó sẽ đi qua tất cả những hàng.
arr = np.array ([[1, 2, 3], [4, 5, 6]]) cho x trong arr: print (x)Output:
[1 2 3] [4 5 6]Tham khảo:
Numpy Tutorial Numpy.org Numpy Medium
Tải thêm tài liệu liên quan đến nội dung bài viết Hướng dẫn np.empty trong python programming python np.zeros trong python np.sum trong python Dtype trong Python Shape trong Python Numpy trong Python Size trong Python np.zeros là gì 0 trong Python