เกณฑ์ในการสร้างรูปร่างใหม่คือ'รูปร่างใหม่ควรเข้ากันได้กับรูปร่างเดิม'
numpy อนุญาตให้เรากำหนดพารามิเตอร์รูปร่างใหม่เป็น -1 (เช่น: (2, -1) หรือ (-1,3) แต่ไม่ใช่ (-1, -1)) มันหมายถึงว่ามันเป็นมิติที่ไม่รู้จักและเราต้องการให้ผู้ใช้เข้าใจมัน และจำนวนจะคำนวณโดยดูที่ 'ความยาวของอาเรย์และขนาดที่เหลืออยู่'และตรวจสอบให้แน่ใจว่าเป็นไปตามเกณฑ์ที่กล่าวมาข้างต้น
ตอนนี้ดูตัวอย่าง
z = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
z.shape
(3, 4)
ตอนนี้พยายามที่จะก่อร่างใหม่ด้วย (-1) ผลลัพธ์รูปร่างใหม่คือ (12,) และเข้ากันได้กับรูปร่างดั้งเดิม (3,4)
z.reshape(-1)
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
ทีนี้พยายามเปลี่ยนรูปใหม่ด้วย (-1, 1) เราให้คอลัมน์เป็น 1 แต่ไม่ทราบแถว ดังนั้นเราจึงได้รูปร่างใหม่ผลลัพธ์เป็น (12, 1) .again เข้ากันได้กับรูปร่างดั้งเดิม (3,4)
z.reshape(-1,1)
array([[ 1],
[ 2],
[ 3],
[ 4],
[ 5],
[ 6],
[ 7],
[ 8],
[ 9],
[10],
[11],
[12]])
ด้านบนสอดคล้องกับnumpy
คำแนะนำ / ข้อความแสดงข้อผิดพลาดเพื่อใช้reshape(-1,1)
สำหรับฟีเจอร์เดียว; เช่นคอลัมน์เดียว
ปรับแต่งข้อมูลของคุณใหม่array.reshape(-1, 1)
หากข้อมูลของคุณมีคุณสมบัติเดียว
รูปร่างใหม่เป็น (-1, 2) ไม่ทราบแถว, คอลัมน์ 2, เราได้ผลลัพธ์ใหม่เป็นรูปร่าง (6, 2)
z.reshape(-1, 2)
array([[ 1, 2],
[ 3, 4],
[ 5, 6],
[ 7, 8],
[ 9, 10],
[11, 12]])
ตอนนี้พยายามทำให้คอลัมน์ไม่เป็นที่รู้จัก รูปร่างใหม่เป็น (1, -1) เช่นแถวคือ 1 ไม่ทราบคอลัมน์ เราได้ผลลัพธ์ใหม่เป็นรูปร่าง (1, 12)
z.reshape(1,-1)
array([[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]])
ด้านบนสอดคล้องกับnumpy
คำแนะนำ / ข้อความแสดงข้อผิดพลาดเพื่อใช้reshape(1,-1)
สำหรับตัวอย่างเดียว เช่นแถวเดียว
จัดรูปแบบข้อมูลของคุณใหม่array.reshape(1, -1)
หากมีตัวอย่างเพียงชุดเดียว
รูปร่างใหม่ (2, -1) แถว 2, คอลัมน์ที่ไม่รู้จัก เราได้ผลลัพธ์ใหม่เป็นรูปร่าง (2,6)
z.reshape(2, -1)
array([[ 1, 2, 3, 4, 5, 6],
[ 7, 8, 9, 10, 11, 12]])
รูปร่างใหม่เป็น (3, -1) แถว 3, คอลัมน์ที่ไม่รู้จัก เราได้ผลลัพธ์ใหม่เป็นรูปร่าง (3,4)
z.reshape(3, -1)
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
และสุดท้ายถ้าเราพยายามให้ทั้งสองมิติไม่เป็นที่รู้จักเช่นรูปร่างใหม่เป็น (-1, -1) มันจะทำให้เกิดข้อผิดพลาด
z.reshape(-1, -1)
ValueError: can only specify one unknown dimension
reshape
เพื่อรักษาองค์ประกอบจำนวนเดียวกัน