Danh sách 1D thành danh sách 2D Python

Trong bài viết này, chúng ta sẽ thảo luận về cách chuyển đổi Mảng có nhiều mảng 1D thành mảng hoặc Ma trận có nhiều mảng 2D bằng cách sử dụng hàm reshape[]. Chúng ta cũng sẽ thảo luận về cách xây dựng hàng và cột của mảng 2D từ mảng 1D

Giả sử chúng ta có một mảng 1D có kích thước 10,

# create 1D numpy array from a list
arr = np.array[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]

print['1D Numpy array:']
print[arr]

đầu ra

[0 1 2 3 4 5 6 7 8 9]

Bây giờ chúng tôi muốn chuyển đổi nó thành một mảng 2D hoặc ma trận có dạng 2X5 i. e. 2 hàng và 5 cột như thế này,

quảng cáo

[[0 1 2 3 4]
 [5 6 7 8 9]]

Định hình lại mảng 1D thành mảng 2D hoặc Ma trận

Đầu tiên, nhập mô-đun numpy,

import numpy as np

Bây giờ để chuyển đổi hình dạng của mảng numpy, chúng ta có thể sử dụng hàm reshape[] của mô-đun numpy,

cục mịch. định hình lại[]

numpy.reshape[arr, newshape, order='C']

Chấp nhận các đối số sau đây,

  • a. Mảng được định hình lại, nó có thể là một mảng gọn gàng có hình dạng bất kỳ hoặc một danh sách hoặc danh sách các danh sách
  • hình mới. Hình dạng mới có thể là một tuple hoặc int
  • gọi món. Thứ tự các mục từ mảng đầu vào sẽ được sử dụng

Nó trả về một đối tượng dạng xem mới [nếu có thể, nếu không thì trả về một bản sao] của hình dạng mới

Hãy sử dụng công cụ này để chuyển đổi mảng có nhiều mảng 1D của chúng ta thành mảng có nhiều mảng 2D,

arr = np.array[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]

# Convert 1D array to a 2D numpy array of 2 rows and 3 columns
arr_2d = np.reshape[arr, [2, 5]]

print[arr_2d]

đầu ra

[[0 1 2 3 4]
 [5 6 7 8 9]]

Chúng tôi đã chuyển mảng 1D làm đối số đầu tiên và hình dạng mới i. e. một tuple [2, 5] làm đối số thứ hai. Nó trả về chế độ xem 2D của mảng đã truyền

Một điểm quan trọng ở đây là hình dạng mới của mảng phải tương thích với hình dạng ban đầu của mảng đầu vào, nếu không nó sẽ tăng ValueError. Ví dụ: nếu chúng ta cố gắng định hình lại mảng 1D có 10 phần tử thành mảng 2D có kích thước 2X3, thì nó sẽ phát sinh lỗi,

# Converting 1D array to a 2D numpy array of incompatible shape will cause error
arr_2d = np.reshape[arr, [2, 3]]

Lỗi

________số 8_______

Nó báo lỗi vì mảng 1D có kích thước 10 chỉ có thể được định hình lại thành mảng 2D có kích thước 2X5 hoặc 5X2. Nhưng trong ví dụ trên, chúng tôi đã cố gắng chuyển đổi nó thành hình dạng không tương thích với kích thước của nó

Định hình lại mảng 2D là chế độ xem của mảng 1D

Nếu có thể thì hàm reshape[] trả về dạng xem của mảng ban đầu và bất kỳ sửa đổi nào trong đối tượng dạng xem cũng sẽ ảnh hưởng đến mảng đầu vào ban đầu. Ví dụ,

arr = np.array[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]

arr_2d = np.reshape[arr, [2, 5]]

# Modify the 2D numpy array [View object]
arr_2d[0][0] = 22

print['1D Numpy array:']
print[arr]

print['2D Numpy array:']
print[arr_2d]

đầu ra

[0 1 2 3 4 5 6 7 8 9]
0

Chuyển đổi mảng Numpy 1D thành mảng Numpy 3D bằng cách sử dụng numpy. định hình lại[]

Giả sử chúng ta có một mảng numpy 1D gồm 12 phần tử,

[0 1 2 3 4 5 6 7 8 9]
1

Bây giờ, hãy chuyển đổi mảng 1D này thành mảng 3D có nhiều mảng. e

[0 1 2 3 4 5 6 7 8 9]
2

đầu ra

[0 1 2 3 4 5 6 7 8 9]
3

Chúng tôi đã chuyển mảng 1D làm đối số đầu tiên và hình dạng mới i. e. một tuple [2, 2, 3] làm đối số thứ hai. Nó trả về chế độ xem 3D của mảng đã truyền

Chuyển đổi mảng NumPy 1D thành mảng NumPy 2D dọc theo cột

Trong ví dụ trước, khi chúng ta chuyển đổi mảng 1D thành mảng 2D hoặc ma trận, thì các mục từ mảng đầu vào sẽ được đọc theo hàng i. e

  • Hàng đầu tiên của mảng 2D được tạo từ các mục ở chỉ số 0 đến 2 trong mảng đầu vào
  • Hàng thứ 2 của mảng 2D được tạo từ các mục ở chỉ số 3 đến 5 trong mảng đầu vào
  • Hàng thứ 3 của mảng 2D được tạo từ các mục ở chỉ số 6 đến 8 trong mảng đầu vào

Bây giờ, giả sử chúng ta muốn xây dựng cột ma trận/mảng 2d một cách khôn ngoan. Để làm được điều đó, chúng ta có thể truyền tham số thứ tự là 'F' trong hàm reshape[] i. e

[0 1 2 3 4 5 6 7 8 9]
4

đầu ra

[0 1 2 3 4 5 6 7 8 9]
5

Nó đã chuyển đổi mảng 1D thành ma trận 2D và ma trận này được tạo theo cột thông minh. e

  • Cột đầu tiên của mảng 2D được tạo từ các mục ở chỉ số 0 đến 2 trong mảng đầu vào
  • Cột thứ 2 của mảng 2D được tạo từ các mục ở chỉ số 3 đến 5 trong mảng đầu vào
  • Cột thứ 3 của mảng 2D được tạo từ các mục ở chỉ số 6 đến 8 trong mảng đầu vào

Chuyển đổi Mảng 2D thành Mảng 1D dưới dạng bản sao

Nếu có thể thì numpy. định hình lại [] trả về chế độ xem của mảng ban đầu. Bây giờ, giả sử chúng ta muốn tạo một bản sao 2D của mảng có nhiều mảng 1D, sau đó sử dụng hàm copy[] cùng với hàm reshape[],

[0 1 2 3 4 5 6 7 8 9]
6

đầu ra

[0 1 2 3 4 5 6 7 8 9]
7

Nó tạo ra một bản sao 2D của mảng 1D. Mọi thay đổi được thực hiện trong mảng 2D này sẽ không ảnh hưởng đến mảng ban đầu

Mảng là một cấu trúc dữ liệu được sử dụng để lưu trữ các phần tử. Một mảng chỉ có thể lưu trữ các loại phần tử tương tự. Một Hai chiều được định nghĩa là một Mảng bên trong Mảng. Chỉ số của mảng bắt đầu bằng 0 và kết thúc bằng kích thước của mảng trừ 1. Chúng ta có thể tạo 'n' số mảng trong một mảng

Trong hình trên, chúng ta có thể thấy rằng một chỉ mục xác định duy nhất từng phần tử mảng

Trong hướng dẫn Danh sách Python này, bạn sẽ học

Làm cách nào để tạo mảng trong Python?

Chúng ta có thể tạo một mảng hai chiều [danh sách] với các hàng và cột

cú pháp

[[r1,r2,r3,..,rn],[c1,c2,c3,.......,cn]]

Ở đâu,

r là viết tắt của hàng và c là viết tắt của cột

Thí dụ. Sau đây là ví dụ để tạo

Mảng 2D có 4 hàng và 5 cột

array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]
#display
print[array]

đầu ra

[[23, 45, 43, 23, 45], [45, 67, 54, 32, 45], [89, 90, 87, 65, 44], [23, 45, 67, 32, 10]]

Truy cập các giá trị

Chúng ta có thể truy cập các giá trị bằng cách sử dụng vị trí chỉ mục

cú pháp

Chúng ta có thể lấy giá trị hàng bằng cách sử dụng toán tử

Array[row index][column index]
3

array[row index]

Chúng tôi có thể lấy giá trị cột bằng cách sử dụng

Array[row index][column index]
4

Array[row index][column index]

Ở đâu,

  • mảng là một mảng đầu vào
  • chỉ mục hàng là vị trí chỉ mục hàng bắt đầu từ 0
  • chỉ số cột là vị trí chỉ số cột bắt đầu từ 0 trong một hàng

Thí dụ

Trong ví dụ này, chúng ta sẽ truy cập các giá trị bằng cách sử dụng các vị trí chỉ mục

#creare 2D array with 4 rows and 5 columns
array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]

#display
print[array]

#get the first row
print[array[0]]

#get the third row
print[array[2]]

#get the first row third element
print[array[0][2]]

#get the third row forth element
print[array[2][3]]

đầu ra

[[23, 45, 43, 23, 45], [45, 67, 54, 32, 45], [89, 90, 87, 65, 44], [23, 45, 67, 32, 10]]
[23, 45, 43, 23, 45]
[89, 90, 87, 65, 44]
43
65

Chúng ta cũng có thể truy cập các phần tử bằng cách sử dụng

Array[row index][column index]
5

cú pháp

for rows in the array:
  for columns in rows:
    print[columns]

Ở đâu,

  • các hàng được sử dụng để lặp lại từng hàng
  • các cột được sử dụng để lặp lại các giá trị có trong mỗi hàng

Thí dụ

Creare 2D array with 4 rows and 5 columns
array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]
#use for loop to iterate the array
for rows in array:
 for columns in rows:
   print[columns,end=" "]
   print[]

đầu ra

23 45 43 23 45
45 67 54 32 45
89 90 87 65 44
23 45 67 32 10

Chèn các giá trị vào mảng hai chiều

Ở đây chúng ta sẽ chèn các giá trị vào mảng hai chiều bằng hàm insert[]

cú pháp

array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]
#display
print[array]
0

Ở đâu,

  • mảng là mảng đầu vào
  • chỉ mục là vị trí hàng để chèn một hàng cụ thể
  • giá trị là các giá trị được chèn vào mảng

Thí dụ. Chèn vào các giá trị trong mảng

array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]
#display
print[array]
1

đầu ra

array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]
#display
print[array]
2

Cập nhật các giá trị vào mảng hai chiều

Đây là hai phương pháp để cập nhật các giá trị trong mảng 2 chiều [danh sách]

Bạn có thể cập nhật hàng bằng cách sử dụng cú pháp sau

array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]
#display
print[array]
3

Bạn có thể cập nhật giá trị cột bên trong hàng bằng cách sử dụng cú pháp sau

array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]
#display
print[array]
4

Thí dụ

array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]
#display
print[array]
5

đầu ra

array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]
#display
print[array]
6

Xóa các giá trị khỏi mảng hai chiều

Bạn có thể xóa các hàng bằng hàm

Array[row index][column index]
6

cú pháp

array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]
#display
print[array]
7

Ở đâu,

  • mảng là mảng đầu vào
  • chỉ mục đề cập đến chỉ mục hàng

Thí dụ

array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]
#display
print[array]
8

đầu ra

array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]
#display
print[array]
9

Lấy kích thước của mảng hai chiều

Bạn có thể lấy kích thước của mảng hai chiều bằng hàm line[]. Nó sẽ trả về số hàng trong mảng

Làm cách nào để tạo danh sách 1d thành danh sách 2d trong python?

Sử dụng append và index . Chúng tôi tiếp tục tăng giá trị chỉ mục bằng cách bắt đầu từ 0 và thêm nó vào phần tử chúng tôi nhận được từ danh sách 2D.

Làm cách nào để chuyển đổi 1d sang 2d?

Tạo một mảng 2d có kích thước phù hợp. Sử dụng vòng lặp for để lặp qua mảng 1d của bạn. Bên trong vòng lặp đó, bạn sẽ cần tìm ra vị trí của từng giá trị trong mảng 1d trong mảng 2d. Hãy thử sử dụng hàm mod đối với biến bộ đếm của bạn để "bao quanh" các chỉ số của mảng 2d

Làm cách nào để chuyển đổi danh sách danh sách thành mảng 2d trong python?

Nhập gói numpy. Khởi tạo danh sách lồng nhau và sau đó sử dụng numpy. hàm mảng[] để chuyển đổi danh sách thành một mảng và lưu trữ nó trong một đối tượng khác . Hiển thị cả danh sách và mảng NumPy và quan sát sự khác biệt.

Làm cách nào để thay đổi 1d thành 2d NumPy?

Làm cách nào để chuyển đổi mảng bộ dữ liệu 1d thành mảng numpy 2d? . np. reshape[] " chức năng này chúng ta có thể đạt được điều này.

Chủ Đề