Hướng dẫn how do you convert a dataframe to a matrix in python? - làm cách nào để chuyển đổi khung dữ liệu thành ma trận trong python?

Sử dụng df.to_numpy[]

Nó tốt hơn df.values, đây là lý do tại sao.*

Đã đến lúc không dùng việc sử dụng values và ____10 của bạn.

Pandas v0.24.0 đã giới thiệu hai phương pháp mới để có được các mảng numpy từ các đối tượng gấu trúc:

  1. df.index.to_numpy[]
    # array[['a', 'b', 'c'], dtype=object]
    
    df['A'].to_numpy[]
    #  array[[1, 2, 3]]
    
    1, được xác định trên các đối tượng
    df.index.to_numpy[]
    # array[['a', 'b', 'c'], dtype=object]
    
    df['A'].to_numpy[]
    #  array[[1, 2, 3]]
    
    2,
    df.index.to_numpy[]
    # array[['a', 'b', 'c'], dtype=object]
    
    df['A'].to_numpy[]
    #  array[[1, 2, 3]]
    
    3 và
    df.index.to_numpy[]
    # array[['a', 'b', 'c'], dtype=object]
    
    df['A'].to_numpy[]
    #  array[[1, 2, 3]]
    
    4 và
    , which is defined on
    df.index.to_numpy[]
    # array[['a', 'b', 'c'], dtype=object]
    
    df['A'].to_numpy[]
    #  array[[1, 2, 3]]
    
    2,
    df.index.to_numpy[]
    # array[['a', 'b', 'c'], dtype=object]
    
    df['A'].to_numpy[]
    #  array[[1, 2, 3]]
    
    3, and
    df.index.to_numpy[]
    # array[['a', 'b', 'c'], dtype=object]
    
    df['A'].to_numpy[]
    #  array[[1, 2, 3]]
    
    4 objects, and
  2. df.index.to_numpy[]
    # array[['a', 'b', 'c'], dtype=object]
    
    df['A'].to_numpy[]
    #  array[[1, 2, 3]]
    
    5, chỉ được xác định trên các đối tượng
    df.index.to_numpy[]
    # array[['a', 'b', 'c'], dtype=object]
    
    df['A'].to_numpy[]
    #  array[[1, 2, 3]]
    
    2 và
    df.index.to_numpy[]
    # array[['a', 'b', 'c'], dtype=object]
    
    df['A'].to_numpy[]
    #  array[[1, 2, 3]]
    
    3.
    , which is defined on
    df.index.to_numpy[]
    # array[['a', 'b', 'c'], dtype=object]
    
    df['A'].to_numpy[]
    #  array[[1, 2, 3]]
    
    2 and
    df.index.to_numpy[]
    # array[['a', 'b', 'c'], dtype=object]
    
    df['A'].to_numpy[]
    #  array[[1, 2, 3]]
    
    3 objects only.

Nếu bạn truy cập các tài liệu V0.24 cho

df.index.to_numpy[]
# array[['a', 'b', 'c'], dtype=object]

df['A'].to_numpy[]
#  array[[1, 2, 3]]
8, bạn sẽ thấy một cảnh báo lớn màu đỏ cho biết:

CẢNH BÁO: Chúng tôi khuyên bạn nên sử dụng
df.index.to_numpy[]
# array[['a', 'b', 'c'], dtype=object]

df['A'].to_numpy[]
#  array[[1, 2, 3]]
9 thay thế.

Xem phần này của Ghi chú phát hành V0.24.0 và câu trả lời này để biết thêm thông tin.

* -

df.index.to_numpy[]
# array[['a', 'b', 'c'], dtype=object]

df['A'].to_numpy[]
#  array[[1, 2, 3]]
1 là phương pháp được đề xuất của tôi cho bất kỳ mã sản xuất nào cần chạy một cách đáng tin cậy cho nhiều phiên bản trong tương lai. Tuy nhiên, nếu bạn chỉ tạo một vết xước trong Jupyter hoặc thiết bị đầu cuối, sử dụng
df.index.to_numpy[]
# array[['a', 'b', 'c'], dtype=object]

df['A'].to_numpy[]
#  array[[1, 2, 3]]
8 để tiết kiệm vài mili giây là một ngoại lệ cho phép. Bạn luôn có thể thêm kết thúc FIT N sau.

Hướng tới tính nhất quán tốt hơn:
df.index.to_numpy[]
# array[['a', 'b', 'c'], dtype=object]

df['A'].to_numpy[]
#  array[[1, 2, 3]]
1

Theo tinh thần của sự nhất quán tốt hơn trong suốt API, một phương pháp mới

v = df.to_numpy[]
v[0, 0] = -1
 
df
   A  B  C
a -1  4  7
b  2  5  8
c  3  6  9
3 đã được giới thiệu để trích xuất mảng numpy cơ bản từ DataFrames.

# Setup
df = pd.DataFrame[data={'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}, 
                  index=['a', 'b', 'c']]

# Convert the entire DataFrame
df.to_numpy[]
# array[[[1, 4, 7],
#        [2, 5, 8],
#        [3, 6, 9]]]

# Convert specific columns
df[['A', 'C']].to_numpy[]
# array[[[1, 7],
#        [2, 8],
#        [3, 9]]]

Như đã đề cập ở trên, phương pháp này cũng được xác định trên các đối tượng

df.index.to_numpy[]
# array[['a', 'b', 'c'], dtype=object]

df['A'].to_numpy[]
#  array[[1, 2, 3]]
2 và
df.index.to_numpy[]
# array[['a', 'b', 'c'], dtype=object]

df['A'].to_numpy[]
#  array[[1, 2, 3]]
3 [xem tại đây].

df.index.to_numpy[]
# array[['a', 'b', 'c'], dtype=object]

df['A'].to_numpy[]
#  array[[1, 2, 3]]

Theo mặc định, một chế độ xem được trả về, vì vậy mọi sửa đổi được thực hiện sẽ ảnh hưởng đến bản gốc.

v = df.to_numpy[]
v[0, 0] = -1
 
df
   A  B  C
a -1  4  7
b  2  5  8
c  3  6  9

Nếu bạn cần một bản sao thay thế, hãy sử dụng

v = df.to_numpy[]
v[0, 0] = -1
 
df
   A  B  C
a -1  4  7
b  2  5  8
c  3  6  9
6.

Pandas> = 1.0 Cập nhật cho ExtensionTypes

Nếu bạn đang sử dụng Pandas 1.x, rất có thể bạn sẽ xử lý các loại mở rộng hơn rất nhiều. Bạn sẽ phải cẩn thận hơn một chút rằng các loại mở rộng này được chuyển đổi chính xác.

a = pd.array[[1, 2, None], dtype="Int64"]                                  
a                                                                          


[1, 2, ]
Length: 3, dtype: Int64 

# Wrong
a.to_numpy[]                                                               
# array[[1, 2, ], dtype=object]  # yuck, objects

# Correct
a.to_numpy[dtype='float', na_value=np.nan]                                 
# array[[ 1.,  2., nan]]

# Also correct
a.to_numpy[dtype='int', na_value=-1]
# array[[ 1,  2, -1]]

Điều này được gọi ra trong các tài liệu.

Nếu bạn cần
v = df.to_numpy[]
v[0, 0] = -1
 
df
   A  B  C
a -1  4  7
b  2  5  8
c  3  6  9
7 trong kết quả ...

Như thể hiện trong một câu trả lời khác,

v = df.to_numpy[]
v[0, 0] = -1
 
df
   A  B  C
a -1  4  7
b  2  5  8
c  3  6  9
8 là một cách tốt để làm điều này.

df.to_records[]
# rec.array[[['a', 1, 4, 7], ['b', 2, 5, 8], ['c', 3, 6, 9]],
#           dtype=[['index', 'O'], ['A', '

Bài Viết Liên Quan

Chủ Đề