Hướng dẫn how do you create a matrix from a dataframe in python? - làm cách nào để tạo ma trận từ khung dữ liệu trong python?

Đây là một trường hợp sử dụng tiêu chuẩn để phát sóng của Numpy:

df['Values'].values - df['Values'].values[:, None]
Out: 
array([[  0. , -30.7, -14.5],
       [ 30.7,   0. ,  16.2],
       [ 14.5, -16.2,   0. ]])

Chúng tôi truy cập mảng numpy bên dưới với thuộc tính giá trị và

arr = df['Values'].values - df['Values'].values[:, None]
pd.concat((df['Country'], pd.DataFrame(arr, columns=df['Country'])), axis=1)
Out: 
  Country    GB    JP    US
0      GB   0.0 -30.7 -14.5
1      JP  30.7   0.0  16.2
2      US  14.5 -16.2   0.0
2 giới thiệu một trục mới để kết quả là hai chiều.

Bạn có thể liên kết điều này với loạt phim gốc của bạn:

arr = df['Values'].values - df['Values'].values[:, None]
pd.concat((df['Country'], pd.DataFrame(arr, columns=df['Country'])), axis=1)
Out: 
  Country    GB    JP    US
0      GB   0.0 -30.7 -14.5
1      JP  30.7   0.0  16.2
2      US  14.5 -16.2   0.0

Mảng cũng có thể được tạo ra với các mục sau, nhờ @divakar:

arr = np.subtract.outer(*[df.Values]*2).T

Ở đây chúng tôi đang gọi

arr = df['Values'].values - df['Values'].values[:, None]
pd.concat((df['Country'], pd.DataFrame(arr, columns=df['Country'])), axis=1)
Out: 
  Country    GB    JP    US
0      GB   0.0 -30.7 -14.5
1      JP  30.7   0.0  16.2
2      US  14.5 -16.2   0.0
3 trên UFUNC
arr = df['Values'].values - df['Values'].values[:, None]
pd.concat((df['Country'], pd.DataFrame(arr, columns=df['Country'])), axis=1)
Out: 
  Country    GB    JP    US
0      GB   0.0 -30.7 -14.5
1      JP  30.7   0.0  16.2
2      US  14.5 -16.2   0.0
4 và nó áp dụng nó cho tất cả các cặp đầu vào của nó.

________ 15 ________ 16 (self, cột = không) [nguồn] ¶(self, columns=None)[source]

Chuyển đổi khung hình thành đại diện numpy-marray của nó.

Parameters:Cột: Danh sách, Tùy chọn, Mặc định: Không có : list, optional, default:None

Nếu không có, trả về tất cả các cột, nếu không, trả về các cột được chỉ định.

Returns:values:ndarray : ndarray

Nếu người gọi không đồng nhất và chứa booleans hoặc đối tượng, kết quả sẽ là của dtype = object. Xem ghi chú.

Ghi chú

Return không phải là một ma trận numpy, thay vào đó, là một cuộc tấn công numpy.

DTYPE sẽ là một DTYPE phổ biến thấp hơn (Upcasting ẩn); Điều đó có nghĩa là nếu các DTYPE (thậm chí các loại số) được trộn lẫn, loại có sức chứa tất cả sẽ được chọn. Sử dụng điều này một cách cẩn thận nếu bạn không xử lý các khối.

ví dụ. Nếu các DTYPE là float16 và float32, DTYPE sẽ được UPCAST ​​thành float32. Nếu DTYPE là Int32 và UINT8, DTYPE sẽ được đưa lên Int32. Bởi Numpy.Find_Common_Type quy ước, trộn Int64 và UINT64 sẽ dẫn đến Float64 DTYPE.

Phương pháp này được cung cấp cho khả năng tương thích ngược. Nói chung, bạn nên sử dụng .Values.

Để tạo ma trận tương quan bằng Pandas:

df.corr()

Tiếp theo, bạn sẽ thấy một ví dụ với các bước để tạo ma trận tương quan cho một bộ dữ liệu nhất định.

Bước 1: Thu thập dữ liệu

Đầu tiên, thu thập dữ liệu sẽ được sử dụng cho ma trận tương quan.

Để minh họa, hãy để sử dụng dữ liệu sau đây về 3 biến:

Một B C
45 38 10
37 31 15
42 26 17
35 28 21
39 33 12

Bước 2: Tạo một khung dữ liệu bằng gấu trúc bằng cách sử dụng gấu trúc

Tiếp theo, hãy tạo một khung dữ liệu để ghi dữ liệu trên trong Python:

import pandas as pd

data = {'A': [45, 37, 42, 35, 39],
        'B': [38, 31, 26, 28, 33],
        'C': [10, 15, 17, 21, 12]
        }

df = pd.DataFrame(data)
print(df)

Khi bạn chạy mã, bạn sẽ nhận được DataFrame sau:

    A   B   C
0  45  38  10
1  37  31  15
2  42  26  17
3  35  28  21
4  39  33  12

Bước 3: Tạo ma trận tương quan bằng cách sử dụng gấu trúc

Bây giờ, hãy tạo một ma trận tương quan bằng cách sử dụng mẫu này:

df.corr()

Đây là mã Python hoàn chỉnh mà bạn có thể sử dụng để tạo ma trận tương quan cho ví dụ của chúng tôi:

import pandas as pd

data = {'A': [45, 37, 42, 35, 39],
        'B': [38, 31, 26, 28, 33],
        'C': [10, 15, 17, 21, 12]
        }

df = pd.DataFrame(data)

corr_matrix = df.corr()
print(corr_matrix)

Chạy mã trong Python và bạn sẽ nhận được ma trận sau:

          A         B         C
A  1.000000  0.518457 -0.701886
B  0.518457  1.000000 -0.860941
C -0.701886 -0.860941  1.000000

Bước 4 (Tùy chọn): Nhận biểu diễn trực quan của ma trận tương quan bằng cách sử dụng Seaborn và Matplotlib

Bạn có thể sử dụng các gói SeaBorn và Matplotlib để có được biểu diễn trực quan của ma trận tương quan.

Đầu tiên, nhập các gói Seaborn và Matplotlib:

import seaborn as sn
import matplotlib.pyplot as plt

Sau đó, thêm cú pháp sau ở dưới cùng của mã:

arr = df['Values'].values - df['Values'].values[:, None]
pd.concat((df['Country'], pd.DataFrame(arr, columns=df['Country'])), axis=1)
Out: 
  Country    GB    JP    US
0      GB   0.0 -30.7 -14.5
1      JP  30.7   0.0  16.2
2      US  14.5 -16.2   0.0
0

Vì vậy, mã Python hoàn chỉnh sẽ trông như thế này:

arr = df['Values'].values - df['Values'].values[:, None]
pd.concat((df['Country'], pd.DataFrame(arr, columns=df['Country'])), axis=1)
Out: 
  Country    GB    JP    US
0      GB   0.0 -30.7 -14.5
1      JP  30.7   0.0  16.2
2      US  14.5 -16.2   0.0
1

Bạn cũng có thể muốn xem lại nguồn sau giải thích các bước để tạo ma trận nhầm lẫn bằng Python. Ngoài ra, bạn có thể kiểm tra hướng dẫn này về việc tạo một ma trận hiệp phương sai trong Python.

DataFrame có thể chứa ma trận không?

Khung dữ liệu với các cột ma trận là một giải pháp rất hữu ích cho tình huống này.Phần sau ở lại trong một ma trận có cùng số lượng hàng với khung dữ liệu.Nhưng ma trận đó chỉ được công nhận là một "cột" duy nhất trong khung dữ liệu và đề cập đến cột đó bằng DF $ mat sẽ trả về ma trận.. The posterior stays in a matrix that has the same number of rows as the data frame. But that matrix only is recognized as a single "column" in the data frame, and referring to that column using df$mat will return the matrix.

Sự khác biệt giữa DataFrame và Matrix trong Python là gì?

Cả hai đại diện cho các loại dữ liệu 'hình chữ nhật', có nghĩa là chúng được sử dụng để lưu trữ dữ liệu bảng, với các hàng và cột.Sự khác biệt chính, như bạn sẽ thấy, là ma trận chỉ có thể chứa một lớp dữ liệu duy nhất, trong khi các khung dữ liệu có thể bao gồm nhiều loại dữ liệu khác nhau.matrices can only contain a single class of data, while data frames can consist of many different classes of data.

Các gấu trúc Phương pháp tạo ra một ma trận tương quan cho một khung dữ liệu là gì?

Phương thức pandas dataFrame.corr () được sử dụng để tạo ma trận tương quan. corr() method is used for creating the correlation matrix.