NumPy ฉบับปรับรูปแบบแบบฟอร์มแถว
- หน้าก่อน NumPy ฉบับรูปแบบแบบฟอร์มแถว
- หน้าต่อไป NumPy ฉบับวนแบบฟอร์มแถว
ปรับรูปแบบแนว
ปรับรูปแบบหมายถึงการเปลี่ยนรูปแบบของแนว
รูปแบบของแนวคือจำนวนองค์ประกอบในแต่ละมิติ
ด้วยการปรับรูปแบบ เราสามารถเพิ่มหรือลบมิติ หรือเปลี่ยนจำนวนองค์ประกอบในแต่ละมิติ
ปรับรูปแบบจาก 1-D ไปสองมิติ
ตัวอย่าง
แปลงแนวหนึ่งขององค์ประกอบที่มี 12 องค์ประกอบเป็นแนวสองมิติ:
มิติด้านนอกจะมี 4 แนวที่มี 3 องค์ประกอบในแต่ละแนว:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) newarr = arr.reshape(4, 3) print(newarr)
ปรับรูปแบบจาก 1-D ไปสามมิติ
ตัวอย่าง
แปลงแนวหนึ่งขององค์ประกอบที่มี 12 องค์ประกอบเป็นแนวสามมิติ:
มิติด้านนอกจะมี 2 แนวที่มี 3 แนว ซึ่งแต่ละแนวมี 2 องค์ประกอบ:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) newarr = arr.reshape(2, 3, 2) print(newarr)
เราสามารถปรับรูปแบบใหม่ได้หรือไม่?
ใช่ ทิ้งทางเลือกที่เราจะปรับรูปแบบใหม่ในทั้งสองรูปแบบที่มีองค์ประกอบที่เท่ากัน
เราสามารถปรับรูปแบบแนวหนึ่งขององค์ประกอบ 8 องค์ประกอบเป็น 4 องค์ประกอบในแนวสองมิติ 2 แถว แต่เราไม่สามารถปรับรูปแบบเป็น 3 องค์ประกอบ 3 แถว 2D ได้ เพราะจะต้องการ 3x3 = 9 องค์ประกอบ
ตัวอย่าง
พยายามเปลี่ยนแนวหนึ่งขององค์ประกอบที่มี 8 องค์ประกอบเป็นแนวสองมิติที่มี 3 องค์ประกอบในแต่ละมิติ (จะทำให้เกิดข้อผิดพลาด):
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(3, 3) print(newarr)
กลับคืนสำเนาหรือมุมมอง?
ตัวอย่าง
ตรวจสอบว่าแนวที่กลับคืนเป็นสำเนาหรือมุมมอง:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) print(arr.reshape(2, 4).base)
ตัวอย่างด้านบนกลับคืนแบบจำลองตัวเดิม ดังนั้นมันเป็นมุมมอง
มาตรายิ่งไม่ทราบ
คุณสามารถใช้มาตรายิ่ง 'ไม่ทราบ' ได้
นี่หมายความว่าคุณไม่จำเป็นต้องระบุตัวเลขที่แน่นอนสำหรับมาตรายิ่งหนึ่งใน reshape method
ส่งมอบ -1
เป็นค่าที่ NumPy จะคำนวณให้คุณ
ตัวอย่าง
การแปลงแบบจำลอง 1D 8 อิเลย์ท์เป็นแบบจำลอง 3D 2x2 อิเลย์ท์
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(2, 2, -1) print(newarr)
หมายเหตุ:เราไม่สามารถ -1
ส่งมอบให้กับมาตรายิ่งมากกว่าหนึ่ง
แปลงแบบจำลอง
การแปลงแบบจำลอง (Flattening the arrays) คือการแปลงแบบจำลองมาตรายิ่งเป็นแบบจำลอง 1D
เราสามารถใช้ reshape(-1)
ทำไม่ได้
ตัวอย่าง
การแปลงแบบจำลองเป็นแบบจำลอง 1D
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) newarr = arr.reshape(-1) print(newarr)
หมายเหตุ:มีหลายฟังก์ชันที่สามารถเปลี่ยนรูปร่างของแบบจำลอง numpy flatten และ ravel ได้ และยังสามารถเปลี่ยนลำดับอิเลย์ท์ rot90 และ flip และ fliplr และ flipud อีกด้วย ฟังก์ชันเหล่านี้เป็นส่วนของ numpy ที่อยู่ในระดับปานกลางถึงระดับสูง
- หน้าก่อน NumPy ฉบับรูปแบบแบบฟอร์มแถว
- หน้าต่อไป NumPy ฉบับวนแบบฟอร์มแถว