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 ที่อยู่ในระดับปานกลางถึงระดับสูง