Viết chương trình Python để đọc ma trận từ bàn điều khiển và in tổng cho mỗi cột. Chấp nhận các hàng, cột và thành phần ma trận cho mỗi cột được phân tách bằng khoảng trắng [cho mỗi hàng] làm đầu vào từ người dùng
Giải pháp mẫu
Mã Python
rows = int[input["Input rows: "]]
columns = int[input["Input columns: "]]
matrix = [[0]*columns for row in range[rows]]
print['Input number of elements in a row [1, 2, 3]: ']
for row in range[rows]:
lines = list[map[int, input[].split[]]]
for column in range[columns]:
matrix[row][column] = lines[column]
sum = [0]*columns
print["sum for each column:"]
for column in range[columns]:
for row in range[rows]:
sum[column] += matrix[row][column]
print[[sum[column]], ' ', end = '']
Đầu ra mẫu
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 6
Trình bày bằng hình ảnh
Sơ đồ
Trực quan hóa việc thực thi mã Python
Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực thi chương trình nói trên
Trình chỉnh sửa mã Python
Có một cách khác để giải quyết giải pháp này?
Trước. Viết chương trình Python để tạo lưới 3X3 với các số.
Tiếp theo. Viết chương trình Python đọc ma trận vuông từ bàn điều khiển và in tổng đường chéo chính của ma trận. Chấp nhận kích thước của ma trận vuông và các phần tử cho mỗi cột được phân tách bằng khoảng trắng [cho mỗi hàng] làm đầu vào từ người dùng.
Mức độ khó của bài tập này là gì?
Dễ dàng trung bình khóKiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource
con trăn. Lời khuyên trong ngày
Hàm trả về bài tập
Một lớp lót rất lớn trong Python, điều này đôi khi làm cho cú pháp trở nên hấp dẫn và thiết thực. Bạn cũng có thể gán giá trị cho nhiều biến trong một dòng
Thao tác dữ liệu trong Python gần như đồng nghĩa với thao tác mảng NumPy. ngay cả những công cụ mới hơn như Pandas [Chương 3] cũng được xây dựng xung quanh mảng NumPy. Phần này sẽ trình bày một số ví dụ về việc sử dụng thao tác mảng NumPy để truy cập dữ liệu và các mảng con, đồng thời để phân tách, định hình lại và nối các mảng. Mặc dù các loại hoạt động được trình bày ở đây có vẻ hơi khô khan và mô phạm, nhưng chúng bao gồm các khối xây dựng của nhiều ví dụ khác được sử dụng xuyên suốt cuốn sách. Tìm hiểu kỹ về họ
Chúng tôi sẽ đề cập đến một số loại thao tác mảng cơ bản tại đây
- Thuộc tính của mảng. Xác định kích thước, hình dạng, mức tiêu thụ bộ nhớ và kiểu dữ liệu của mảng
- Lập chỉ mục của mảng. Nhận và đặt giá trị của các phần tử mảng riêng lẻ
- Cắt mảng. Nhận và thiết lập các mảng con nhỏ hơn trong một mảng lớn hơn
- Định hình lại các mảng. Thay đổi hình dạng của một mảng nhất định
- Nối và tách mảng. Kết hợp nhiều mảng thành một và tách một mảng thành nhiều mảng
Thuộc tính mảng NumPy¶
Trước tiên hãy thảo luận về một số thuộc tính mảng hữu ích. Chúng ta sẽ bắt đầu bằng cách xác định ba mảng ngẫu nhiên, mảng một chiều, hai chiều và ba chiều. Chúng tôi sẽ sử dụng trình tạo số ngẫu nhiên của NumPy, chúng tôi sẽ tạo một giá trị đã đặt để đảm bảo rằng các mảng ngẫu nhiên giống nhau được tạo mỗi khi mã này được chạy
Trong 1]
import numpy as np np.random.seed[0] # seed for reproducibility x1 = np.random.randint[10, size=6] # One-dimensional array x2 = np.random.randint[10, size=[3, 4]] # Two-dimensional array x3 = np.random.randint[10, size=[3, 4, 5]] # Three-dimensional array
Mỗi mảng có các thuộc tính
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]05 [số chiều],
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]06 [kích thước của mỗi chiều] và
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]07 [tổng kích thước của mảng]
Trong 2]
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]
x3 ndim: 3 x3 shape: [3, 4, 5] x3 size: 60
Một thuộc tính hữu ích khác là
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]08, kiểu dữ liệu của mảng [mà chúng ta đã thảo luận trước đây trong Tìm hiểu các kiểu dữ liệu trong Python]
Trong 3]
print["dtype:", x3.dtype]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 60
Các thuộc tính khác bao gồm
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]09, liệt kê kích thước [tính bằng byte] của từng phần tử mảng và
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]10, liệt kê tổng kích thước [tính bằng byte] của mảng
Trong [4]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 63
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 64
Nói chung, chúng ta kỳ vọng rằng
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]10 bằng với
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]09 nhân với
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]07
Lập chỉ mục mảng. Truy cập các phần tử đơn¶
Nếu bạn đã quen với cách lập chỉ mục danh sách tiêu chuẩn của Python, thì việc lập chỉ mục trong NumPy sẽ khá quen thuộc. Trong mảng một chiều, giá trị $i^{th}$ [đếm từ 0] có thể được truy cập bằng cách chỉ định chỉ mục mong muốn trong dấu ngoặc vuông, giống như với danh sách Python
Trong [5]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 68
Ra[5]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 69
Trong [6]
import numpy as np np.random.seed[0] # seed for reproducibility x1 = np.random.randint[10, size=6] # One-dimensional array x2 = np.random.randint[10, size=[3, 4]] # Two-dimensional array x3 = np.random.randint[10, size=[3, 4, 5]] # Three-dimensional array0
Ra[6]
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]0
Trong [7]
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]1
Ra[7]
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]2
Để lập chỉ mục từ cuối mảng, bạn có thể sử dụng chỉ số âm
Trong [8]
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]3
Ra[8]
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]4
Trong [9]
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]5
Ra[9]
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]2
Trong một mảng nhiều chiều, các mục có thể được truy cập bằng cách sử dụng bộ chỉ số được phân tách bằng dấu phẩy
Trong [10]
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]7
Ra[10]
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]8
Trong [11]
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]9
Ra[11]
x3 ndim: 3 x3 shape: [3, 4, 5] x3 size: 600
Trong [12]
x3 ndim: 3 x3 shape: [3, 4, 5] x3 size: 601
Ra[12]
x3 ndim: 3 x3 shape: [3, 4, 5] x3 size: 602
Trong [13]
x3 ndim: 3 x3 shape: [3, 4, 5] x3 size: 603
Ra[13]
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]2
Các giá trị cũng có thể được sửa đổi bằng cách sử dụng bất kỳ ký hiệu chỉ mục nào ở trên
Trong [14]
x3 ndim: 3 x3 shape: [3, 4, 5] x3 size: 605
Ra[14]
x3 ndim: 3 x3 shape: [3, 4, 5] x3 size: 606
Hãy nhớ rằng, không giống như danh sách Python, mảng NumPy có kiểu cố định. Điều này có nghĩa là, ví dụ, nếu bạn cố gắng chèn một giá trị dấu phẩy động vào một mảng số nguyên, thì giá trị đó sẽ bị cắt bớt một cách âm thầm. Đừng để bị bắt bởi hành vi này
Trong [15]
x3 ndim: 3 x3 shape: [3, 4, 5] x3 size: 607
Ra[15]
x3 ndim: 3 x3 shape: [3, 4, 5] x3 size: 608
Cắt mảng. Truy cập phân đoạn¶
Giống như chúng ta có thể sử dụng dấu ngoặc vuông để truy cập các phần tử mảng riêng lẻ, chúng ta cũng có thể sử dụng chúng để truy cập các mảng con bằng ký hiệu lát cắt, được đánh dấu bằng ký tự dấu hai chấm [
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]14]. Cú pháp cắt NumPy tuân theo cú pháp của danh sách Python tiêu chuẩn;
x3 ndim: 3 x3 shape: [3, 4, 5] x3 size: 609
Nếu bất kỳ giá trị nào trong số này không được chỉ định, chúng sẽ mặc định là các giá trị
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]16,
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]17
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]18,
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]19. Chúng ta sẽ xem xét việc truy cập các mảng con trong một chiều và nhiều chiều
Mảng con một chiều¶
Trong [16]
print["dtype:", x3.dtype]0
Ra[16]
print["dtype:", x3.dtype]1
Trong [17]
print["dtype:", x3.dtype]2
Ra[17]
print["dtype:", x3.dtype]3
Trong [18]
print["dtype:", x3.dtype]4
Hết[18]
print["dtype:", x3.dtype]5
Trong 19]
print["dtype:", x3.dtype]6
Hết[19]
print["dtype:", x3.dtype]7
Trong 20]
print["dtype:", x3.dtype]8
Hết[20]
print["dtype:", x3.dtype]9
Trong [21]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 600
Hết[21]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 601
Một trường hợp có khả năng gây nhầm lẫn là khi giá trị
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]20 âm. Trong trường hợp này, giá trị mặc định cho
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]21 và
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]22 được hoán đổi. Điều này trở thành một cách thuận tiện để đảo ngược một mảng
Trong [22]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 602
Hết[22]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 603
Trong [23]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 604
Hết[23]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 605
Phân mảng đa chiều¶
Các lát cắt đa chiều hoạt động theo cách tương tự, với nhiều lát cắt được phân tách bằng dấu phẩy. Ví dụ
Trong [24]
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]7
Ra[24]
x3 ndim: 3 x3 shape: [3, 4, 5] x3 size: 606
Trong [25]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 608
Hết[25]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 609
Trong [26]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 630
Hết[26]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 631
Cuối cùng, kích thước mảng con thậm chí có thể được đảo ngược lại với nhau
Trong [27]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 632
Hết[27]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 633
Truy cập các hàng và cột của mảng¶
Một thói quen thường cần thiết là truy cập các hàng hoặc cột đơn lẻ của một mảng. Điều này có thể được thực hiện bằng cách kết hợp lập chỉ mục và cắt lát, sử dụng một lát cắt trống được đánh dấu bằng một dấu hai chấm [
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]14]
Trong [28]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 634
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 635
Trong [29]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 636
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 637
Trong trường hợp truy cập hàng, lát cắt trống có thể được bỏ qua để có cú pháp gọn hơn
Trong [30]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 638
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 637
Các mảng con dưới dạng chế độ xem không sao chép¶
Một điều quan trọng và cực kỳ hữu ích cần biết về các lát mảng là chúng trả về dạng xem chứ không phải bản sao của dữ liệu mảng. Đây là một lĩnh vực trong đó việc cắt mảng NumPy khác với việc cắt danh sách Python. trong danh sách, các lát sẽ là bản sao. Hãy xem xét mảng hai chiều của chúng tôi từ trước
Trong [31]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 640
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 641
Hãy trích xuất một mảng con $2 \times 2$ từ đây
Trong [32]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 642
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 643
Bây giờ nếu chúng ta sửa đổi mảng con này, chúng ta sẽ thấy rằng mảng ban đầu đã bị thay đổi. Quan sát
Trong [33]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 644
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 645
Trong [34]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 640
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 647
Hành vi mặc định này thực sự khá hữu ích. điều đó có nghĩa là khi chúng tôi làm việc với các bộ dữ liệu lớn, chúng tôi có thể truy cập và xử lý các phần của các bộ dữ liệu này mà không cần sao chép bộ đệm dữ liệu cơ bản
Tạo bản sao của mảng¶
Mặc dù các tính năng hay của chế độ xem mảng, nhưng đôi khi sẽ hữu ích khi sao chép rõ ràng dữ liệu trong một mảng hoặc một mảng con. Điều này có thể được thực hiện dễ dàng nhất với phương pháp
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]24
Trong [35]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 648
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 645
Nếu bây giờ chúng ta sửa đổi mảng con này, mảng ban đầu sẽ không được chạm vào
Trong [36]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 680
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 681
Trong [37]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 640
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 647
Định hình lại mảng¶
Một loại hoạt động hữu ích khác là định hình lại mảng. Cách linh hoạt nhất để làm điều này là với phương pháp
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]25. Ví dụ: nếu bạn muốn đặt các số từ 1 đến 9 trong lưới $3 \times 3$, bạn có thể thực hiện như sau
Trong [38]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 684
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 685
Lưu ý rằng để điều này hoạt động, kích thước của mảng ban đầu phải khớp với kích thước của mảng được định hình lại. Nếu có thể, phương thức
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]25 sẽ sử dụng chế độ xem không sao chép của mảng ban đầu, nhưng với bộ đệm bộ nhớ không liền kề thì điều này không phải lúc nào cũng đúng
Một mẫu định hình lại phổ biến khác là chuyển đổi mảng một chiều thành ma trận hàng hoặc cột hai chiều. Điều này có thể được thực hiện bằng phương pháp
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]25 hoặc thực hiện dễ dàng hơn bằng cách sử dụng từ khóa
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]28 trong thao tác cắt lát
Trong [39]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 686
Hết[39]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 687
Trong [40]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 688
Ra[40]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 687
Trong [41]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 690
Ra[41]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 691
Trong [42]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 692
Ra[42]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 691
Chúng ta sẽ thấy kiểu biến đổi này thường xuyên trong suốt phần còn lại của cuốn sách.
Nối và tách mảng¶
Tất cả các thủ tục trước đó đều hoạt động trên các mảng đơn lẻ. Cũng có thể kết hợp nhiều mảng thành một và ngược lại chia một mảng thành nhiều mảng. Chúng ta sẽ xem xét các hoạt động đó ở đây
Nối mảng¶
Ghép nối hoặc nối hai mảng trong NumPy chủ yếu được thực hiện bằng cách sử dụng các thói quen
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]29,
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]30 và
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]31.
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]29 lấy một bộ hoặc danh sách các mảng làm đối số đầu tiên của nó, như chúng ta có thể thấy ở đây
Trong [43]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 694
Ra[43]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 695
Bạn cũng có thể nối nhiều hơn hai mảng cùng một lúc
Trong [44]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 696
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 697
Nó cũng có thể được sử dụng cho mảng hai chiều
Trong [45]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 698
Trong [46]
Input rows: 2 Input columns: 2 Input number of elements in a row [1, 2, 3]: 1 2 3 4 sum for each column: 4 699
Ra[46]
import numpy as np np.random.seed[0] # seed for reproducibility x1 = np.random.randint[10, size=6] # One-dimensional array x2 = np.random.randint[10, size=[3, 4]] # Two-dimensional array x3 = np.random.randint[10, size=[3, 4, 5]] # Three-dimensional array00
Trong [47]
import numpy as np np.random.seed[0] # seed for reproducibility x1 = np.random.randint[10, size=6] # One-dimensional array x2 = np.random.randint[10, size=[3, 4]] # Two-dimensional array x3 = np.random.randint[10, size=[3, 4, 5]] # Three-dimensional array01
Ra[47]
import numpy as np np.random.seed[0] # seed for reproducibility x1 = np.random.randint[10, size=6] # One-dimensional array x2 = np.random.randint[10, size=[3, 4]] # Two-dimensional array x3 = np.random.randint[10, size=[3, 4, 5]] # Three-dimensional array02
Để làm việc với các mảng có kích thước hỗn hợp, có thể rõ ràng hơn khi sử dụng các hàm
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]30 [ngăn xếp dọc] và
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]31 [ngăn xếp ngang]
Trong [48]
import numpy as np np.random.seed[0] # seed for reproducibility x1 = np.random.randint[10, size=6] # One-dimensional array x2 = np.random.randint[10, size=[3, 4]] # Two-dimensional array x3 = np.random.randint[10, size=[3, 4, 5]] # Three-dimensional array03
Ra[48]
import numpy as np np.random.seed[0] # seed for reproducibility x1 = np.random.randint[10, size=6] # One-dimensional array x2 = np.random.randint[10, size=[3, 4]] # Two-dimensional array x3 = np.random.randint[10, size=[3, 4, 5]] # Three-dimensional array04
Trong [49]
import numpy as np np.random.seed[0] # seed for reproducibility x1 = np.random.randint[10, size=6] # One-dimensional array x2 = np.random.randint[10, size=[3, 4]] # Two-dimensional array x3 = np.random.randint[10, size=[3, 4, 5]] # Three-dimensional array05
Ra[49]
import numpy as np np.random.seed[0] # seed for reproducibility x1 = np.random.randint[10, size=6] # One-dimensional array x2 = np.random.randint[10, size=[3, 4]] # Two-dimensional array x3 = np.random.randint[10, size=[3, 4, 5]] # Three-dimensional array06
Tương tự, ________ 335 sẽ xếp các mảng dọc theo trục thứ ba
Tách mảng¶
Ngược lại với nối là tách, được thực hiện bởi các hàm
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]36,
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]37 và
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]38. Đối với mỗi trong số này, chúng ta có thể chuyển một danh sách các chỉ số cho các điểm phân chia
Trong [50]
import numpy as np np.random.seed[0] # seed for reproducibility x1 = np.random.randint[10, size=6] # One-dimensional array x2 = np.random.randint[10, size=[3, 4]] # Two-dimensional array x3 = np.random.randint[10, size=[3, 4, 5]] # Three-dimensional array07
import numpy as np np.random.seed[0] # seed for reproducibility x1 = np.random.randint[10, size=6] # One-dimensional array x2 = np.random.randint[10, size=[3, 4]] # Two-dimensional array x3 = np.random.randint[10, size=[3, 4, 5]] # Three-dimensional array08
Lưu ý rằng N điểm phân tách dẫn đến N + 1 mảng con. Các chức năng liên quan
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]37 và
print["x3 ndim: ", x3.ndim] print["x3 shape:", x3.shape] print["x3 size: ", x3.size]38 là tương tự nhau