Cách tạo ma trận 4x4 trong Python

Nếu bạn muốn sử dụng chuyển đổi này trong RenderMan, hãy nhớ rằng máy ảnh RenderMan đang nhìn theo hướng z dương trong khi máy ảnh OpenGL đang nhìn theo hướng tiêu cực

quan điểm (fovy, khía cạnh, gần, xa)

Tương tự, phương thức này trả về một phép biến đổi phối cảnh, điểm khác biệt duy nhất là ý nghĩa của các tham số đầu vào. Phương thức này tương đương với lệnh OpenGL gluPerspective() . — Đây là một phương thức tĩnh.

chính tả (trái, phải, dưới, trên, gần, xa)

Trả về ma trận đại diện cho phép biến đổi chính tả. Phương thức này tương đương với lệnh OpenGL glOrtho() . — Đây là một phương thức tĩnh.

lookAt(pos, target, up=(0, 0, 1))

Trả về một phép biến đổi di chuyển hệ tọa độ đến vị trí vị trí và xoay nó sao cho trục z hướng vào mục tiêu điểm. Trục y hướng càng sát càng tốt vào cùng hướng với hướng lên. Tất cả ba tham số phải là một chuỗi 3

Bạn có thể sử dụng chuyển đổi này để định vị các đối tượng trong cảnh phải được định hướng tới một điểm cụ thể. Hoặc bạn có thể sử dụng nó để định vị camera trong thế giới ảo. Trong trường hợp này, bạn phải thực hiện nghịch đảo của phép biến đổi này dưới dạng phép biến đổi chế độ xem (để chuyển đổi tọa độ không gian thế giới thành tọa độ không gian camera)

Đây là một phương pháp tĩnh

chỉnh hình ()

Trả về một ma trận với các vectơ cơ sở trực giao. Trục x, y và z được tạo trực giao. Cột và hàng thứ tư không bị ảnh hưởng

Trong thế giới lập trình, ma trận được biểu diễn dưới dạng mảng 2 chiều được sử dụng để biểu diễn dữ liệu theo hàng và cột. Chúng được sử dụng trong các hoạt động toán học và thống kê khác nhau và chúng giữ nguyên hình dạng của chúng. Ma trận có số hàng và số cột bằng nhau được gọi là ma trận vuông

Để tạo ma trận trong Python, chúng ta có thể sử dụng mảng hoặc danh sách numpy. Chúng ta sẽ thảo luận về cách tạo ma trận trong Python trong bài viết này

Sử dụng danh sách để tạo ma trận trong Python

Một danh sách cũng lưu trữ một tập hợp các phần tử tại các vị trí cụ thể. Một danh sách có thể lưu trữ các phần tử thuộc các loại khác nhau trong một danh sách và các phép toán không thể được áp dụng trực tiếp vào danh sách

Chúng ta có thể sử dụng nó để tạo ma trận trong Python

Sử dụng danh sách lồng nhau để tạo ma trận

Danh sách lồng nhau là danh sách trong danh sách và có thể được sử dụng để tạo ma trận trong Python

Một ví dụ rất đơn giản được hiển thị dưới đây

1

2

3

4

5

 

m = [[4,1,2],[7,5,3],[9,6,9]]

cho i trong m.

    in(i)    

 

đầu ra

đầu ra

1

2

3

4

5

 

[ 4 ,   1 ,   2 ]

[ 7 ,   5 ,   3 ]

[ 9 ,   6 ,   9 ]    

 

Trong ví dụ trên, chúng tôi đã tạo một danh sách lồng nhau đơn giản đại diện cho một ma trận

Lưu ý rằng chúng tôi không in trực tiếp danh sách. Điều này được thực hiện bởi vì điều đó sẽ in danh sách trong một dòng. Đó là lý do tại sao chúng tôi lặp qua từng hàng riêng lẻ. Chúng ta cũng có thể làm điều này rõ ràng hơn với hàm join()

Xem mã dưới đây

1

2

3

4

5

 

m = [[4,1,2],[7,5,3],[9,6,9]]

cho i trong m.

    in(' '. tham gia(str(i)))    

 

đầu ra

đầu ra

1

2

3

4

5

 

[ 4 ,   1 ,   2 ]

[ 7 ,   5 ,   3 ]

[ 9 ,   6 ,   9 ]    

 

Sự khác biệt trong việc sử dụng phương thức này để in ma trận là nó nối các phần tử của một hàng thành một chuỗi trước khi in nó.

đọc thêm

Khởi tạo ma trận trong Python

Đọc thêm →

In ma trận bằng Python

Đọc thêm →

Sử dụng vòng lặp for để tạo ma trận

Chúng ta có thể sử dụng vòng lặp for để tạo ma trận trong Python bằng cách sử dụng danh sách trong Python. Nếu chúng ta có một danh sách duy nhất thì chúng ta có thể lặp lại nó với số lần cần thiết trong danh sách và nó sẽ thay đổi thành một danh sách lồng nhau hoạt động như một ma trận

Ví dụ,

1

2

3

4

5

 

m = [[4,8,9] for i in range(3)]

cho i trong m.

    in(' '. tham gia(str(i)))    

 

đầu ra

đầu ra

1

2

3

4

5

 

[ 4 ,   8 ,   9 ]

[ 4 ,   8 ,   9 ]

[ 4 ,   8 ,   9 ]    

 

Phương pháp này lấy một danh sách duy nhất và thay đổi nó thành một ma trận có hình dạng được yêu cầu

Có một cách khác để sử dụng vòng lặp for để tạo ma trận trong Python

Ví dụ,

1

2

3

4

5

6

7

8

9

10

11

 

lst = []

m = []

cho i trong phạm vi(0,3):

    cho j trong phạm vi(0,3):

        ls. chắp thêm(0)      <

    m. nối(lst)    <

    lst = []

cho i trong m.

    in(' '. tham gia(str(i)))    

 

đầu ra

đầu ra

1

2

3

4

5

 

[ 0 ,   0 ,   0 ]

[ 0 ,   0 ,   0 ]

[ 0 ,   0 ,   0 ]    

 

Trong ví dụ trên,

  • Đầu tiên chúng tôi khởi tạo hai danh sách trống. Một cái sẽ hoạt động như một hàng và cái kia sẽ hoạt động như ma trận cuối cùng
  • Chúng tôi chạy một vòng lặp lồng nhau. Vòng lặp bên trong thêm một phần tử vào danh sách lst
  • Trong vòng lặp bên ngoài, lst được thêm vào danh sách ma trận m dưới dạng một hàng
  • Sau đó, chúng tôi khởi tạo lst dưới dạng danh sách trống và vòng lặp chạy lại cho hàng tiếp theo

Phương pháp này rất thuận tiện nếu chúng tôi muốn lấy đầu vào từ người dùng cho mọi phần tử trong danh sách. Đối với điều này, chúng ta chỉ cần yêu cầu đầu vào trong vòng lặp bên trong trước khi thêm phần tử vào danh sách lst

Danh sách cuối cùng được thảo luận trong các ví dụ trên có thể được chuyển đổi trực tiếp thành một mảng numpy bằng cách sử dụng hàm join()1 hoặc hàm join()2. Những phương pháp này sẽ được thảo luận dưới đây

Sử dụng mảng numpy để tạo ma trận trong Python

Mảng numpy được sử dụng để lưu trữ một tập hợp các phần tử cùng kiểu. Tuy nhiên, chúng ta có thể áp dụng các phép toán trực tiếp cho một mảng và chúng có thể lưu trữ một chuỗi dữ liệu dài hơn một cách hiệu quả. Đó là lý do tại sao nó được coi là một cách tiếp cận tốt hơn để sử dụng mảng numpy cho ma trận trong Python

Hãy để chúng tôi thảo luận về các phương pháp khác nhau để tạo ma trận trong Python bằng cách sử dụng mảng numpy

Sử dụng hàm join()1 để tạo ma trận trong Python

Chúng ta có thể tạo một mảng 2-D numpy bằng cách sử dụng hàm join()1 trong Python

Ví dụ,

1

2

3

4

5

6

 

nhập numpy as np

m = np. mảng([[4,1,2],[7,5,3],[9,6,9]])

in("Ma trận. \n", m)

in("Kích thước. \n", m. hình dạng)    

 

đầu ra

đầu ra

1

2

3

4

5

6

7

8

 

Ma trận.

[[4 1 2]

[7 5 3]

[9 6 9]]

Kích thước.

(3, 3)    

 

Trong ví dụ trên, chúng tôi đã tạo một ma trận đơn giản bằng Python. Chúng tôi đã xác minh điều này bằng cách hiển thị hình dạng của ma trận, cho thấy đó là mảng 2 chiều có 3 cột và 3 hàng

Sử dụng hàm join()2 để tạo ma trận trong Python

Hàm join()2 được sử dụng để trả về mảng 2 chiều. Nó hoạt động tương tự như chức năng join()1 đã thảo luận trước đó

Ví dụ,

1

2

3

4

5

6

 

nhập numpy as np

m = np. ma trận([[4,1,2],[7,5,3],[9,6,9]])

in("Ma trận. \n", m)

in("Kích thước. \n", m. hình dạng)        

 

đầu ra

đầu ra

1

2

3

4

5

6

7

8

 

Ma trận.

[[4 1 2]

[7 5 3]

[9 6 9]]

Kích thước.

(3, 3)    

 

Sử dụng hàm for3 để tạo ma trận trong Python

for3 cũng có thể được sử dụng để tạo ma trận trong Python. Chức năng này có thể được sử dụng để thay đổi hình dạng của mảng. Chúng ta có thể sử dụng nó để thay đổi hình dạng của mảng 1-D thành mảng 2-D mà không thay đổi các phần tử của nó

Xem mã dưới đây

1

2

3

4

5

6

 

nhập numpy as np

m = np. mảng([[4 . ,1,2,7,5,3,9,6,9]]).định hình lại(3,3)

in("Ma trận. \n", m)

in("Kích thước. \n", m. hình dạng)    

 

đầu ra

đầu ra

1

2

3

4

5

6

7

8

 

Ma trận.

[[4 1 2]

[7 5 3]

[9 6 9]]

Kích thước.

(3, 3)    

 

Hãy để chúng tôi thảo luận về những gì đã xảy ra trong ví dụ trên

  • Chúng tôi đã có một mảng 1-D bao gồm tổng cộng chín phần tử
  • Hàm for5 đã sửa đổi mảng này thành mảng 2 chiều có hình dạng là for6
  • Tất cả các phần tử được sắp xếp trong ma trận 3 hàng 3 cột

Lưu ý rằng chúng ta phải cẩn thận về số lượng phần tử trong một mảng trước khi thay đổi hình dạng của nó. Vì một ma trận có hình dạng for6 sẽ có 9 phần tử, ví dụ trên sẽ không hoạt động nếu tổng các phần tử trong mảng 1-D không phải là 9

Sử dụng hàm for8 để tạo ma trận trong Python

Chúng ta có thể sử dụng hàm for8 để tạo ma trận trong Python từ một mảng hiện có. Cách chúng tôi đạt được điều này là nối thêm các hàng vào một mảng hiện có

Mảng 4d NumPy là gì?

Mảng 4d numpy là một mảng được lồng sâu 4 lớp , vì vậy, ở mức cao nhất, nó sẽ trông như thế này. [ # Mảng cấp 1 (Bên ngoài) [ # Mảng cấp 2 [[1, 2], [3, 4]], # Mảng cấp 3, chứa 2 mảng cấp 4 [[5, 6], [7, 8]]

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

Trong Python, bạn có thể tạo kiểu dữ liệu mới, được gọi là mảng bằng cách sử dụng gói NumPy. Mảng NumPy được tối ưu hóa cho các phân tích số và chỉ chứa một loại dữ liệu duy nhất. Trước tiên, bạn nhập NumPy rồi sử dụng hàm array() để tạo một mảng . Hàm array() lấy một danh sách làm đầu vào.