Hướng dẫn create 2d array python numpy - tạo mảng 2d python numpy
Một Show
Cũng như các đối tượng container khác trong Python, nội dung của
>>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 61 hoặc các đối tượng thực hiện giao diện >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 62 hoặc mảng.array interfaces. Thí dụ Một mảng 2 chiều có kích thước 2 x 3, bao gồm các phần tử số nguyên 4 byte: >>> x = np.array([[1, 2, 3], [4, 5, 6]], np.int32) >>> type(x) Mảng có thể được lập chỉ mục bằng cú pháp giống như container Python: >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 6 Ví dụ, cắt lát có thể tạo ra chế độ xem của mảng:slicing can produce views of the array: >>> y = x[:,1] >>> y array([2, 5], dtype=int32) >>> y[0] = 9 # this also changes the corresponding element in x >>> y array([9, 5], dtype=int32) >>> x array([[1, 9, 3], [4, 5, 6]], dtype=int32) Xây dựng mảng#Các mảng mới có thể được xây dựng bằng cách sử dụng các thói quen chi tiết trong các thói quen tạo mảng, và cũng bằng cách sử dụng hàm tạo
Mảng lập chỉ mục#Các mảng có thể được lập chỉ mục bằng cú pháp cắt python mở rộng, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 65. Cú pháp tương tự cũng được sử dụng để truy cập các trường trong kiểu dữ liệu có cấu trúc.structured data type. Bố cục bộ nhớ trong của ndarray#Một thể hiện của lớp Một đoạn bộ nhớ vốn có 1 chiều và có nhiều sơ đồ khác nhau để sắp xếp các mục của một mảng N chiều trong một khối 1 chiều. Numpy là linh hoạt và các đối tượng \ [n _ {\ mathrm {offset}} = \ sum_ {k = 0}^{n-1} s_k n_k \] Từ đầu khối bộ nhớ liên kết với mảng. Ở đây, \ (s_k \) là các số nguyên chỉ định >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 69 của mảng. Thứ tự Major Cột (ví dụ, được sử dụng trong ngôn ngữ Fortran và trong MATLAB) và thứ tự Major (được sử dụng trong C) chỉ là các loại sơ đồ sải tính cụ thể và tương ứng với bộ nhớ có thể được giải quyết bằng các bước tiến:\(s_k\) are integers which specify the >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 69 of the array. The column-major order (used, for example, in the Fortran language and in Matlab) and row-major order (used in C) schemes are just specific kinds of strided scheme, and correspond to memory that can be addressed by the strides: \ [s_k^{\ mathrm {cột}} = \ mathrm {item prod_ {j = k+1}^{n-1} d_j. \] trong đó \ (d_j \) = self.shape [j].\(d_j\) = self.shape[j]. Cả hai đơn đặt hàng C và Fortran đều liền kề, tức là, bố cục bộ nhớ đơn, trong đó mọi phần của khối bộ nhớ có thể được truy cập bằng một số kết hợp của các chỉ số.contiguous, i.e., single-segment, memory layouts, in which every part of the memory block can be accessed by some combination of the indices. Ghi chú Các mảng tiếp giáp và các mảng một đoạn là đồng nghĩa và được sử dụng thay thế cho nhau trong suốt tài liệu. Mặc dù một mảng liền kề kiểu C và kiểu Fortran, có các cờ tương ứng, có thể được giải quyết với các bước trên, các bước thực tế có thể khác nhau. Điều này có thể xảy ra trong hai trường hợp:
Điểm 1. có nghĩa là >>> y = x[:,1] >>> y array([2, 5], dtype=int32) >>> y[0] = 9 # this also changes the corresponding element in x >>> y array([9, 5], dtype=int32) >>> x array([[1, 9, 3], [4, 5, 6]], dtype=int32)3 và >>> y = x[:,1] >>> y array([2, 5], dtype=int32) >>> y[0] = 9 # this also changes the corresponding element in x >>> y array([9, 5], dtype=int32) >>> x array([[1, 9, 3], [4, 5, 6]], dtype=int32)4 luôn có cùng sự tiếp giáp và giá trị cờ >>> y = x[:,1] >>> y array([2, 5], dtype=int32) >>> y[0] = 9 # this also changes the corresponding element in x >>> y array([9, 5], dtype=int32) >>> x array([[1, 9, 3], [4, 5, 6]], dtype=int32)5. Điều này cũng có nghĩa là ngay cả một mảng chiều cao cũng có thể là kiểu C và kiểu Fortran liên tục cùng một lúc. Một mảng được coi là căn chỉnh nếu bộ nhớ bù đắp cho tất cả các phần tử và bản thân phần mềm cơ sở là bội số của self.itemsize. Hiểu về sự liên kết bộ nhớ dẫn đến hiệu suất tốt hơn trên hầu hết các phần cứng. Cảnh báo Nói chung, nó không cho rằng >>> y = x[:,1] >>> y array([2, 5], dtype=int32) >>> y[0] = 9 # this also changes the corresponding element in x >>> y array([9, 5], dtype=int32) >>> x array([[1, 9, 3], [4, 5, 6]], dtype=int32)6 đối với các mảng tiếp giáp kiểu C hoặc >>> y = x[:,1] >>> y array([2, 5], dtype=int32) >>> y[0] = 9 # this also changes the corresponding element in x >>> y array([9, 5], dtype=int32) >>> x array([[1, 9, 3], [4, 5, 6]], dtype=int32)7 cho các mảng tiếp giáp kiểu Fortran là đúng. >>> y = x[:,1] >>> y array([2, 5], dtype=int32) >>> y[0] = 9 # this also changes the corresponding element in x >>> y array([9, 5], dtype=int32) >>> x array([[1, 9, 3], [4, 5, 6]], dtype=int32)8 có thể được sử dụng để giúp tìm lỗi khi không chính xác dựa vào các bước tiến trong mã mở rộng C (xem bên dưới Cảnh báo). Dữ liệu trong Ghi chú Một số thuật toán trong công việc numpy trên các mảng sải tùy ý. Tuy nhiên, một số thuật toán yêu cầu các mảng một đoạn. Khi một mảng sải không đều được truyền vào các thuật toán như vậy, một bản sao được tự động thực hiện. Thuộc tính mảng#Các thuộc tính mảng phản ánh thông tin nội tại của chính mảng. Nói chung, truy cập một mảng thông qua các thuộc tính của nó cho phép bạn có được và đôi khi đặt các thuộc tính nội tại của mảng mà không tạo ra một mảng mới. Các thuộc tính tiếp xúc là các phần cốt lõi của một mảng và chỉ một số trong số chúng có thể được đặt lại một cách có ý nghĩa mà không tạo ra một mảng mới. Thông tin về mỗi thuộc tính được đưa ra dưới đây. Bố cục bộ nhớ#Các thuộc tính sau đây chứa thông tin về bố cục bộ nhớ của mảng:
Loại dữ liệu#Đối tượng kiểu dữ liệu được liên kết với mảng có thể được tìm thấy trong thuộc tính >>> x = np.arange(27).reshape((3,3,3)) >>> x array([[[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8]], [[ 9, 10, 11], [12, 13, 14], [15, 16, 17]], [[18, 19, 20], [21, 22, 23], [24, 25, 26]]]) >>> x.sum(axis=0) array([[27, 30, 33], [36, 39, 42], [45, 48, 51]]) >>> # for sum, axis is the first keyword, so we may omit it, >>> # specifying only its value >>> x.sum(0), x.sum(1), x.sum(2) (array([[27, 30, 33], [36, 39, 42], [45, 48, 51]]), array([[ 9, 12, 15], [36, 39, 42], [63, 66, 69]]), array([[ 3, 12, 21], [30, 39, 48], [57, 66, 75]]))9:
Các thuộc tính khác#
Giao diện mảng#
ndarray7 Giao diện chức năng nước ngoài#
Phương thức mảng#Một đối tượng Đối với các phương pháp sau đây cũng có các hàm tương ứng trong Chuyển đổi mảng#
Thao tác hình dạng#Để định hình lại, thay đổi kích thước và chuyển vị, đối số tuple duy nhất có thể được thay thế bằng các số nguyên >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 604 sẽ được hiểu là một n-tuple.
Lựa chọn và thao tác mục#Đối với các phương thức mảng lấy từ khóa trục, nó mặc định là không có. Nếu trục là không, thì mảng được coi là mảng 1-D. Bất kỳ giá trị nào khác cho trục đại diện cho kích thước mà hoạt động nên tiến hành.
Calculation#Nhiều trong số các phương pháp này có một đối số có tên là trục. Trong trường hợp này,
Ví dụ về đối số trục Một mảng 3 chiều có kích thước 3 x 3 x 3, được tổng hợp trên mỗi ba trục của nó >>> x = np.arange(27).reshape((3,3,3)) >>> x array([[[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8]], [[ 9, 10, 11], [12, 13, 14], [15, 16, 17]], [[18, 19, 20], [21, 22, 23], [24, 25, 26]]]) >>> x.sum(axis=0) array([[27, 30, 33], [36, 39, 42], [45, 48, 51]]) >>> # for sum, axis is the first keyword, so we may omit it, >>> # specifying only its value >>> x.sum(0), x.sum(1), x.sum(2) (array([[27, 30, 33], [36, 39, 42], [45, 48, 51]]), array([[ 9, 12, 15], [36, 39, 42], [63, 66, 69]]), array([[ 3, 12, 21], [30, 39, 48], [57, 66, 75]])) Tham số DTYPE chỉ định loại dữ liệu mà một hoạt động giảm (như tổng hợp) sẽ diễn ra. Kiểu giảm dữ liệu mặc định giống như kiểu dữ liệu của bản thân. Để tránh tràn, có thể hữu ích để thực hiện giảm bằng cách sử dụng loại dữ liệu lớn hơn. Đối với một số phương pháp, một đối số tùy chọn cũng có thể được cung cấp và kết quả sẽ được đặt vào mảng đầu ra được đưa ra. Đối số ra phải là một
Số học, phép nhân ma trận và các hoạt động so sánh#Các hoạt động số học và so sánh trên Each of the arithmetic operations ( >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 647, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 648, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 649, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 650, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 651, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 652, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 653, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 654 or >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 655, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 656, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 657, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 658, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 659, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 660, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 661) and the comparisons ( >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 662, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 663, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 664, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 665, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 666, >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 667) tương đương với hàm phổ quát tương ứng (hoặc ngắn gọn Ufunc) trong Numpy. Để biết thêm thông tin, xem phần về các chức năng phổ quát.ufunc for short) in NumPy. For more information, see the section on Universal Functions. Toán tử so sánh:
Giá trị sự thật của một mảng ( >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 674):
Ghi chú Kiểm tra giá trị sự thật của một mảng gọi >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 675, gây ra lỗi nếu số lượng phần tử trong mảng lớn hơn 1, bởi vì giá trị sự thật của các mảng đó là mơ hồ. Thay vào đó, sử dụng >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 677 và >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 678 để rõ ràng về những gì có nghĩa là trong những trường hợp như vậy. (Nếu số lượng phần tử là 0, mảng sẽ đánh giá thành >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 679.) Hoạt động đơn:
Arithmetic:
Ghi chú
Trả lại giá trị tự.
Giá trị sự thật của một mảng ( >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 674): Đúng nếu tự sai Ghi chú
Ghi chú Kiểm tra giá trị sự thật của một mảng gọi >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 675, gây ra lỗi nếu số lượng phần tử trong mảng lớn hơn 1, bởi vì giá trị sự thật của các mảng đó là mơ hồ. Thay vào đó, sử dụng >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 677 và >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 678 để rõ ràng về những gì có nghĩa là trong những trường hợp như vậy. (Nếu số lượng phần tử là 0, mảng sẽ đánh giá thành >>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2] 679.)PEP 465, and the >>> y = x[:,1] >>> y array([2, 5], dtype=int32) >>> y[0] = 9 # this also changes the corresponding element in x >>> y array([9, 5], dtype=int32) >>> x array([[1, 9, 3], [4, 5, 6]], dtype=int32)24 operator has been introduced in NumPy 1.10.0. Further information can be found in the >>> y = x[:,1] >>> y array([2, 5], dtype=int32) >>> y[0] = 9 # this also changes the corresponding element in x >>> y array([9, 5], dtype=int32) >>> x array([[1, 9, 3], [4, 5, 6]], dtype=int32)27 documentation. Hoạt động đơn:Trả lại giá trị tự+.
Trả lại giá trị%tự.
Tùy chỉnh container: (xem lập chỉ mục)Indexing)
Chuyển đổi; Các hoạt động >>> y = x[:,1] >>> y array([2, 5], dtype=int32) >>> y[0] = 9 # this also changes the corresponding element in x >>> y array([9, 5], dtype=int32) >>> x array([[1, 9, 3], [4, 5, 6]], dtype=int32)42, >>> y = x[:,1] >>> y array([2, 5], dtype=int32) >>> y[0] = 9 # this also changes the corresponding element in x >>> y array([9, 5], dtype=int32) >>> x array([[1, 9, 3], [4, 5, 6]], dtype=int32)43 và >>> y = x[:,1] >>> y array([2, 5], dtype=int32) >>> y[0] = 9 # this also changes the corresponding element in x >>> y array([9, 5], dtype=int32) >>> x array([[1, 9, 3], [4, 5, 6]], dtype=int32)44. Chúng chỉ làm việc trên các mảng có một yếu tố trong đó và trả lại vô hướng thích hợp.
Đại diện chuỗi:
Phương pháp tiện ích để gõ:
Làm cách nào để tạo một mảng 2D trong Numpy?Tạo một mảng hai chiều Nếu bạn chỉ sử dụng hàm Arange, nó sẽ xuất ra một mảng một chiều. Để biến nó thành một mảng hai chiều, chuỗi đầu ra của nó với chức năng định hình lại. Đầu tiên, 20 số nguyên sẽ được tạo và sau đó nó sẽ chuyển đổi mảng thành một mảng hai chiều với 4 hàng và 5 cột.chain its output with the reshape function. First, 20 integers will be created and then it will convert the array into a two-dimensional array with 4 rows and 5 columns.
Làm thế nào để bạn tạo một mảng 2D trong Python?Insert.py.. # Viết một chương trình để chèn phần tử vào mảng 2D (hai chiều) của Python .. Từ nhập mảng * # Nhập tất cả gói liên quan đến mảng .. ARR1 = [[1, 2, 3, 4], [8, 9, 10, 12]] # Khởi tạo các phần tử mảng .. In ("Trước khi chèn các phần tử mảng:"). in (ARR1) # in các phần tử ARR1 .. Làm thế nào để bạn tạo một mảng 2D trống trong Python?Tạo mảng numpy trống và các cột nối.. # Tạo một mảng 2D trống rỗng với 4 hàng và 0 cột .. trống_array = np.trống ((4, 0), int). In ('Mảng 2D trống 2D:'). print(empty_array). Numpy có phải là một mảng 2D không?Mảng 2D cũng được gọi là ma trận có thể được biểu diễn dưới dạng thu thập các hàng và cột.Trong bài viết này, chúng tôi đã khám phá mảng 2D trong Numpy ở Python.Numpy là một thư viện trong Python bổ sung hỗ trợ cho các mảng và ma trận đa chiều lớn cùng với các chức năng toán học cấp cao để vận hành các mảng này.NumPy is a library in python adding support for large multidimensional arrays and matrices along with high level mathematical functions to operate these arrays. |