Hướng dẫn dùng pandas transpose python

  • Home
  • Python Home
  • ▼Python Pandas Tutorials
  • Pandas Home
  • ▼Pandas DataFrame Constructor
  • Pandas DataFrame Home
  • ▼Pandas DataFrame Reshaping, sorting, transposing
  • DataFrame.droplevel()
  • DataFrame.pivot()
  • DataFrame.pivot_table()
  • DataFrame.sort_values()
  • DataFrame.nlargest()
  • DataFrame.nsmallest()
  • DataFrame.stack()
  • DataFrame.unstack()
  • DataFrame.melt()
  • DataFrame.explode()
  • DataFrame.squeeze()
  • DataFrame.T()
  • DataFrame.transpose()
  • ..More to come..
Last update on August 19 2022 21:50:33 (UTC/GMT +8 hours)

DataFrame - transpose() function

The transpose() function is used to transpose index and columns.

Show

Reflect the DataFrame over its main diagonal by writing rows as columns and vice-versa.

Syntax:

DataFrame.transpose(self, *args, **kwargs)

Parameters:

NameDescriptionType/Default Value Required / Optional
copy           If True, the underlying data is copied. Otherwise (default), no copy is made if possible. bool
Default Value: False
Required
*args, **kwargs Additional keywords have no effect but might be accepted for compatibility with numpy.   Required

Returns: DataFrame
The transposed DataFrame.

Example:

Download the Pandas DataFrame Notebooks from here.

Previous: DataFrame - T() function
Next: DataFrame - append() function

  • Exercises: Weekly Top 12 Most Popular Topics
  • Pandas DataFrame: Exercises, Practice, Solution
  • Conversion Tools
  • JavaScript: HTML Form Validation
  • SQL Exercises, Practice, Solution - SUBQUERIES
  • C Programming Exercises, Practice, Solution : For Loop
  • Python Exercises, Practice, Solution
  • Python Data Type: List - Exercises, Practice, Solution
  • C++ Basic: Exercises, Practice, Solution
  • SQL Exercises, Practice, Solution - exercises on Employee Database
  • SQL Exercises, Practice, Solution - exercises on Movie Database
  • SQL Exercises, Practice, Solution - exercises on Soccer Database
  • C Programming Exercises, Practice, Solution : Recursion


Hàm numpy.transpose () là một trong những hàm quan trọng nhất trong phép nhân ma trận. Hàm này hoán vị hoặc bảo lưu kích thước của mảng đã cho và trả về mảng đã sửa đổi.

Các bài viết liên quan:

Hàm numpy.transpose () thay đổi các phần tử hàng thành phần tử cột và phần tử cột thành phần tử hàng. Đầu ra của hàm này là một mảng đã sửa đổi của hàm ban đầu.

Cú pháp

numpy.transpose(arr, axis=None)  

Tham số

  1. arr: array_like

Nó là một ndarray. Nó là mảng nguồn có các phần tử mà chúng ta muốn chuyển vị. Tham số này rất cần thiết và đóng một vai trò quan trọng trong hàm numpy.transpose ().

  1. axis: Danh sách ints ()

Nếu chúng tôi không chỉ định trục, thì theo mặc định, nó sẽ đảo ngược các kích thước nếu không sẽ hoán vị trục theo các giá trị đã cho.

Xem thêm Function trong R, các hàm trong R

Return

Hàm này trả về một ndarray. Mảng đầu ra là mảng nguồn, với trục của nó được hoán vị. Một chế độ xem được trả lại bất cứ khi nào có thể.

Ví dụ 1: numpy.transpose ()

import numpy as np  
a= np.arange(6).reshape((2,3))  
a  
b=np.transpose(a)  
b  

Output:

Trong đoạn code trên

  • Chúng tôi đã tạo một mảng ‘a’ bằng cách sử dụng hàm np.arange () và tạo ra một hình dạng bằng cách sử dụng hàm reshape ().
  • Chúng ta đã khai báo biến ‘b’ và gán giá trị trả về của hàm np.transpose ().
  • Chúng tôi đã chuyển mảng ‘a’ trong hàm.
  • Cuối cùng, chúng tôi đã cố gắng in giá trị của b.

Trong đầu ra, mảng chuyển vị của mảng ban đầu đã được hiển thị.

Ví dụ 2: numpy.transpose () với trục

import numpy as np  
a= np.array([[1, 2], [4, 5], [7, 8]])  
a  
b=np.transpose(a, (1,0))  
b   

Output:

Trong đoạn code trên

  • Chúng tôi đã tạo một mảng ‘a’ bằng hàm np.array ().
  • Chúng ta đã khai báo biến ‘b’ và gán giá trị trả về của hàm np.transpose ().
  • Chúng ta đã chuyển mảng ‘a’ và trục trong hàm.
  • Cuối cùng, chúng tôi đã cố gắng in giá trị của b.

Trong đầu ra, mảng chuyển vị của mảng ban đầu đã được hiển thị.

Ví dụ 3: Định vị lại các phần tử bằng cách sử dụng numpy.transpose ()

import numpy as np  
a=np.ones((12,32,123,64))  
b=np.transpose(a,(1,3,0,2)).shape  
b  
c=np.transpose(a,(0,3,1,2)).shape  
c  

Output:

  • Chúng tôi đã tạo một mảng ‘a’ bằng hàm np.ones ().
  • Chúng ta đã khai báo biến ‘b’ và ‘c’ và gán giá trị trả về của hàm np.transpose ().
  • Chúng ta đã chuyển mảng ‘a’ và vị trí của các phần tử mảng trong hàm.
  • Cuối cùng, chúng tôi đã cố gắng in giá trị của b và c.
  • Trong đầu ra, một mảng đã được hiển thị có các phần tử nằm ở vị trí xác định trong mảng.

Xem thêm Các lưu ý cần thiết để tăng năng suất khi lập trình (CODING)

Có vẻ như câu hỏi và ví dụ bắt nguồn từ cuốn sách Python để phân tích dữ liệu của Wes McKinney. Tính năng transposenày được đề cập trong Chương 4.1. Chuyển đổi Mảng và Hoán đổi Trục .

Đối với mảng có chiều cao hơn, transposesẽ chấp nhận một bộ số trục để hoán vị các trục (để uốn cong tâm thêm).

Ở đây "hoán vị" có nghĩa là "sắp xếp lại", nên sắp xếp lại thứ tự các trục.

Các số trong .transpose(1, 0, 2)xác định thứ tự của các trục được thay đổi như thế nào so với ban đầu. Bằng cách sử dụng .transpose(1, 0, 2), chúng tôi có nghĩa là, "Thay đổi chiếc rìu thứ nhất bằng chiếc rìu thứ hai." Nếu chúng ta sử dụng .transpose(0, 1, 2), mảng sẽ giữ nguyên vì không có gì thay đổi; nó là thứ tự mặc định.

Ví dụ trong cuốn sách với một (2, 2, 4)mảng có kích thước không rõ ràng lắm vì trục thứ nhất và thứ hai có cùng kích thước. Vì vậy, kết quả cuối cùng dường như không thay đổi ngoại trừ việc sắp xếp lại các hàng arr[0, 1]arr[1, 0].

Nếu chúng ta thử một ví dụ khác với mảng 3 chiều với mỗi chiều có một kích thước khác nhau, phần sắp xếp lại trở nên rõ ràng hơn.

In [2]: x = np.arange(24).reshape(2, 3, 4)

In [3]: x
Out[3]: 
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]]])

In [4]: x.transpose(1, 0, 2)
Out[4]: 
array([[[ 0,  1,  2,  3],
        [12, 13, 14, 15]],

       [[ 4,  5,  6,  7],
        [16, 17, 18, 19]],

       [[ 8,  9, 10, 11],
        [20, 21, 22, 23]]])

Ở đây, kích thước mảng ban đầu là (2, 3, 4). Chúng tôi đã thay đổi thứ nhất và thứ hai, vì vậy nó có (3, 2, 4)kích thước. Nếu chúng ta quan sát kỹ hơn để xem việc sắp xếp lại chính xác đã diễn ra như thế nào; các mảng số dường như đã thay đổi theo một mô hình cụ thể. Sử dụng phép tương tự trên giấy của @ RobertB , nếu chúng ta lấy 2 phần số và viết mỗi phần trên trang tính, sau đó lấy một hàng từ mỗi trang để tạo một chiều của mảng, bây giờ chúng ta sẽ có một mảng có kích thước 3x2x4 , tính từ lớp ngoài cùng đến lớp trong cùng.

[ 0,  1,  2,  3] \ [12, 13, 14, 15]

[ 4,  5,  6,  7] \ [16, 17, 18, 19]

[ 8,  9, 10, 11] \ [20, 21, 22, 23]

Có thể là một ý tưởng hay khi chơi với các mảng có kích thước khác nhau và thay đổi các trục khác nhau để có được trực giác tốt hơn về cách hoạt động của nó.

1 hữu ích 0 bình luận chia sẻ