Chúng ta có thể định hình lại mảng 1D 8 phần tử thành 4 phần tử trong mảng 2D 2 hàng nhưng chúng ta không thể định hình lại nó thành mảng 2D 3 phần tử 3 hàng vì điều đó sẽ yêu cầu 3x3 = 9 phần tử
Thí dụ
Hãy thử chuyển đổi mảng 1D có 8 phần tử thành mảng 2D có 3 phần tử trong mỗi chiều [sẽ phát sinh lỗi]
nhập numpy dưới dạng np
mảng = np. mảng[[1, 2, 3, 4, 5, 6, 7, 8]]
mớiarr = mảng. định hình lại[3, 3]
in[newarr]
Tự mình thử »Trả về Sao chép hoặc Xem?
Thí dụ
Kiểm tra xem mảng được trả về là bản sao hay chế độ xem
nhập numpy dưới dạng np
mảng = np. mảng[[1, 2, 3, 4, 5, 6, 7, 8]]
in [mảng. định hình lại[2, 4]. cơ sở]
Tự mình thử »Ví dụ trên trả về mảng ban đầu, vì vậy nó là một dạng xem
Thứ nguyên không xác định
Bạn được phép có một thứ nguyên "không xác định"
Có nghĩa là bạn không phải chỉ định một số chính xác cho một trong các kích thước trong phương thức định hình lại
Vượt qua giá trị
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }7 và NumPy sẽ tính toán số này cho bạn
Thí dụ
Chuyển mảng 1D có 8 phần tử thành mảng 3D có 2 phần tử
nhập numpy dưới dạng np
mảng = np. mảng[[1, 2, 3, 4, 5, 6, 7, 8]]
mớiarr = mảng. định hình lại [2, 2, -1]
in[newarr]
Tự mình thử »Ghi chú. Chúng tôi không thể vượt qua
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }7 đến nhiều hơn một chiều
Làm phẳng các mảng
Làm phẳng mảng có nghĩa là chuyển mảng nhiều chiều thành mảng 1 chiều
Chúng ta có thể sử dụng
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }9 để làm điều này
Thí dụ
Chuyển đổi mảng thành mảng 1D
nhập numpy dưới dạng np
mảng = np. mảng[[[1, 2, 3], [4, 5, 6]]]
mớiarr = mảng. định hình lại [-1]
in[newarr]
Tự mình thử »Ghi chú. Có rất nhiều hàm để thay đổi hình dạng của mảng trong numpy
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }0,
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }1 và cũng để sắp xếp lại các phần tử
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }2,
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }3,
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }4,
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5, v.v. Chúng thuộc phần Trung cấp đến Nâng cao của numpy
Nếu bạn có một mảng đa chiều và chứa dữ liệu trùng lặp. bạn có thể có một phiên bản phẳng, độc đáo, sử dụng các khả năng JavaScript ES2019 hiện đại
Ngôn ngữ mã JavaScript Sao chép vào khay nhớ tạm
const allAnimals = [
["Cat", "Dog", "Quokka", "Possum"],
["Quokka"],
["Quokka", "Elephant", "Giraffe"],
"Cat", "Possum"
];
const filteredAnimals = [...new Set[allAnimals.flat[]]];
Phương thức nguyên mẫu
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }6 lấy từng mảng lồng nhau và trả về một mảng phẳng, một mức, chứa tất cả dữ liệu
Sau đó, những gì chúng tôi làm là sử dụng một Set khởi tạo mới để loại bỏ bất kỳ sự trùng lặp nào. Cuối cùng, chúng tôi sử dụng cú pháp trải rộng để chuyển đổi lại thành một mảng
Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu cách chuyển mảng hai chiều thành đối tượng. Mảng hai chiều có thể có bao nhiêu hàng và hai cột
Thí dụ
Input: [ ["John", 12], ["Jack", 13], ["Matt", 14], ["Maxx", 15] ] Output: { "John": 12, "Jack": 13, "Matt": 14, "Maxx": 15 }
Các cách tiếp cận dưới đây có thể được thực hiện để giải quyết vấn đề
Cách tiếp cận 1. Trong cách tiếp cận này, chúng tôi tạo một đối tượng trống và sử dụng Array. phương thức forEach[] để lặp qua mảng. Trên mỗi lần lặp, chúng tôi chèn mục đầu tiên của mảng con vào đối tượng làm khóa và mục thứ hai làm giá trị. Sau đó, nó trả về đối tượng sau khi lặp lại
Thí dụ
Javascript
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }7
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }8
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }9
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }0
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }1
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }0
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }0
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }9
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }0
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }3
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }9
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }6
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }8
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Eren: 'Yeager', Mikasa: 'Ackermann', Armin: 'Arlelt', Levi: 'Ackermann' }0
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }9
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Eren: 'Yeager', Mikasa: 'Ackermann', Armin: 'Arlelt', Levi: 'Ackermann' }3
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Eren: 'Yeager', Mikasa: 'Ackermann', Armin: 'Arlelt', Levi: 'Ackermann' }5
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Eren: 'Yeager', Mikasa: 'Ackermann', Armin: 'Arlelt', Levi: 'Ackermann' }7
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }0
{ Eren: 'Yeager', Mikasa: 'Ackermann', Armin: 'Arlelt', Levi: 'Ackermann' }9
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }9
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }0____172
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }0
Input: [ ["John", 12], ["Jack", 13], ["Matt", 14], ["Maxx", 15] ] Output: { "John": 12, "Jack": 13, "Matt": 14, "Maxx": 15 }74
Input: [ ["John", 12], ["Jack", 13], ["Matt", 14], ["Maxx", 15] ] Output: { "John": 12, "Jack": 13, "Matt": 14, "Maxx": 15 }75
Input: [ ["John", 12], ["Jack", 13], ["Matt", 14], ["Maxx", 15] ] Output: { "John": 12, "Jack": 13, "Matt": 14, "Maxx": 15 }76
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }9
Input: [ ["John", 12], ["Jack", 13], ["Matt", 14], ["Maxx", 15] ] Output: { "John": 12, "Jack": 13, "Matt": 14, "Maxx": 15 }78
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }0
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }70
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }72
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }73
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }74
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }72
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }77
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }78
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }72
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }81
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }82
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }72____685
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }86
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }0
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }88
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }89
đầu ra
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }
Cách tiếp cận 2. Trong cách tiếp cận này, chúng ta sẽ sử dụng Array. reduce[] và khởi tạo bộ tích lũy với một đối tượng trống. Trên mỗi lần lặp lại, chúng tôi gán giá trị hiện tại làm giá trị của khóa của bộ tích lũy và trả về bộ tích lũy. Sau đó, nó trả về đối tượng sau khi lặp lại
Thí dụ
Javascript
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }7
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }8
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }0
Input: [ ["John", 12], ["Jack", 13], ["Matt", 14], ["Maxx", 15] ] Output: { "John": 12, "Jack": 13, "Matt": 14, "Maxx": 15 }74
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }94
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }96
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }97
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }98
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }6
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }98
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }01
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }98
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }03
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }9
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }98
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }06
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }98
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }08
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }98
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }10
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }9
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }98
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }13
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }98
Input: [ ["John", 12], ["Jack", 13], ["Matt", 14], ["Maxx", 15] ] Output: { "John": 12, "Jack": 13, "Matt": 14, "Maxx": 15 }74
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }16
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }18
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }9
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }01
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }03
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }0
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }89
Input: [ ["John", 12], ["Jack", 13], ["Matt", 14], ["Maxx", 15] ] Output: { "John": 12, "Jack": 13, "Matt": 14, "Maxx": 15 }76
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }9
Input: [ ["John", 12], ["Jack", 13], ["Matt", 14], ["Maxx", 15] ] Output: { "John": 12, "Jack": 13, "Matt": 14, "Maxx": 15 }78
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }0
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }70
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }72
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }03
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }04
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }05
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }06
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }72
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }09
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }04
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }11
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }06
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }72
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }15____204
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }17
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }06
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }5
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }72
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }21
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }04
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }11
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }06
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }0
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }88
{ Jack: 13, John: 12, Matt: 14, Maxx: 15 }89
đầu ra
{ Eren: 'Yeager', Mikasa: 'Ackermann', Armin: 'Arlelt', Levi: 'Ackermann' }
Cách tiếp cận 3. Theo cách tiếp cận này, trước tiên chúng ta làm phẳng mảng bằng cách sử dụng Array. flat[] để chúng ta có được một mảng một chiều. Sau đó, chúng ta có thể tạo một đối tượng trống và lặp lại mảng để gán các giá trị có vị trí đồng đều làm khóa của đối tượng và các giá trị có vị trí lẻ làm giá trị