บทนำ
numpy.reshape() ใช้สำหรับให้รูปร่างใหม่กับอาเรย์โดยไม่เปลี่ยนแปลงข้อมูล ไวยากรณ์คือ:
numpy.reshape(arr, newshape, order='C')
พารามิเตอร์
- arr – อาเรย์อินพุต
- newshape – รูปร่างใหม่ หากเป็นจำนวนเต็ม ผลลัพธ์จะเป็นอาเรย์ 1 มิติ และมิติหนึ่งสามารถเป็น -1 ได้
- order – กำหนดลำดับการอ่าน/เขียนสมาชิก
- 'C' – เรียงแบบ C (ดัชนีสุดท้ายเปลี่ยนเร็วที่สุด)
- 'F' – เรียงแบบ Fortran (ดัชนีแรกเปลี่ยนเร็วที่สุด)
- 'A' – เรียงแบบ Fortran หากอาเรย์ติดกันในหน่วยความจำ
ตัวอย่างที่ 1: เปลี่ยนรูปร่างเป็น (3, -3)
import numpy as np
# อาเรย์อินพุต
x = np.array([[3, 5, 6], [7, 8, 9]])
print("Array Input :\n", x)
# reshape() function
y = np.reshape(x, (3, -1)) # ใช้ -1 ให้คำนวณเอง
print("Reshaped Array: \n", y)
ผลลัพธ์
Array Input : [[3 5 6] [7 8 9]] Reshaped Array: [[3 5] [6 7] [8 9]]
ตัวอย่างที่ 2: เปลี่ยนเป็นอาเรย์ 1 มิติ ด้วย order='C'
import numpy as np
# สร้างอาเรย์อินพุต
x = np.array([[1, 3, 4], [4, 6, 7]])
print("Array Input :\n", x)
# reshape() function
y = np.reshape(x, 6, order='C')
print("Reshaped Array: \n", y)
ผลลัพธ์
Array Input : [[1 3 4] [4 6 7]] Reshaped Array: [1 3 4 4 6 7]