Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เขียนโปรแกรม Python ทำให้ข้อมูลใน DataPath เป็นแบน (flatten) แบบ C-order และ F-order

สมมติว่าคุณมี DataFrame และต้องการแปลงข้อมูลเป็นอาร์เรย์ 1 มิติ (flatten) ทั้งแบบ C-order (row-major) และ F-order (column-major)

วิธีแก้ปัญหา

  1. สร้าง DataFrame
  2. ใช้ df.values.ravel(order='C') สำหรับ C-order
  3. ใช้ df.values.ravel(order='F') สำหรับ F-order

ตัวอย่างโค้ด

import pandas as pd

df = pd.DataFrame({
    'Id': [10, 25, 3, 11, 24, 6],
    'Age': [12, 13, 12, 14, 15, 14]
})

print("DataFrame คือ:\n", df)

# Flatten แบบ C-order (row-major)
c_order = df.values.ravel(order='C')
print("flat c_order:\n", c_order)

# Flatten แบบ F-order (column-major)
f_order = df.values.ravel(order='F')
print("flat F_order:\n", f_order)

ผลลัพธ์

DataFrame คือ:
    Id  Age
0  10   12
1  25   13
2   3   12
3  11   14
4  24   15
5   6   14

flat c_order:
 [10 12 25 13  3 12 11 14 24 15  6 14]

flat F_order:
 [10 25  3 11 24  6 12 13 12 14 15 14]

คำอธิบาย:

  • C-order (Row-major): อ่านข้อมูลแถวละแถว (Id แถวแรก, Age แถวแรก, Id แถวที่สอง, Age แถวที่สอง, ...)
  • F-order (Column-major): อ่านข้อมูลคอลัมน์ละคอลัมน์ (Id ทั้งคอลัมน์, Age ทั้งคอลัมน์)