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

Flatten 2D NumPy Array เป็น 1D Array ใน Python

ได้อาร์เรย์ NumPy 2 มิติ ต้องการทำให้เป็น 1 มิติ

วิธี 1: ใช้ flatten() (สร้าง Copy)

import numpy as np
arr2D = np.array([[31, 12, 43], [21, 9, 16], [0, 9, 0]])
res = arr2D.flatten()
print(res)  # [31 12 43 21 9 16 0 9 0]

วิธี 2: ใช้ ravel() (คืน View ถ้าเป็นไปได้ ประหยัดหน่วยความจำ)

import numpy as np
arr2D = np.array([[31, 12, 43], [21, 9, 16], [0, 9, 0]])
res = arr2D.ravel()
print(res)  # [31 12 43 21 9 16 0 9 0]

ความแตกต่าง

  • flatten(): คืน Copy เสมอ ปลอดภaiser ถ้าต้องการแก้ไขโดยไม่กระทบต้นฉบับ
  • ravel(): คืน View ถ้า Memory Layout ติดต่อกัน (เร็วกว่า ประหยัด RAM) แก้ไขจะกระทบต้นฉบับ