คำว่า shape ใน NumPy หมายถึงการให้ข้อมูลว่า array นั้นมีสมาชิกกี่ตัว กี่แถว กี่คอลัมน์ กี่ตาราง

เราสามารถหา shape ของ array ได้โดยใช้ attribute ต่อไปนี้

ndarray.shape

ผลลัพธ์ที่ได้เมื่อใช้ attribute นี้คือ ข้อมูลตัวเลขในรูปของ tuple (เซ็ตของข้อมูลที่มีเครื่องหมายวงเล็บคลุม)

Shape ของ 0-D

shape ของ 0-D จะเป็น tuple ว่างๆ เพราะมันมีแค่ค่าเดียว ไม่ใช่เซ็ตของข้อมูล

ตัวอย่างเช่น

x = np.array(1)
print(x.shape)
print(x)

output:
()
1

x มี 0 มิติ เมื่อแสดงค่า shape ก็จะได้เป็น tuple ว่าง () แบบนี้ เพราะมันไม่ใช่ array ไม่ได้มีสมาชิกอะไร ค่าของมันคือ 1 เห็นได้ว่าเมื่อใส่คำสั่ง print(x) ให้แสดงค่า x มันไม่ได้แสดงในรูปของ array (ข้อมูลที่คลุมด้วย []) แต่จะแสดงเป็นค่าเดี่ยวๆ

Shape ของ 1-D

shape ของ numpy array 1 มิติ จะแสดงจำนวนของสมาชิกทั้งหมดใน array

ตัวอย่างเช่น

y = np.array([1,2,3])
print(y.shape)
print(y)

output:
(3,)
[1 2 3]

y มี 1 มิติ เมื่อใช้ attribute นี้เราจะได้ข้อมูลว่า array นี้มีสมาชิกกี่ตัวเท่านั้น ซึ่งในตัวอย่างมีสมาชิก 3 ตัว เมื่อใช้คำสั่ง print(y) จะพบว่าข้อมูลดังกล่างคือ numpy array [1 2 3]

Shape ของ 2-D

shape ของ numpy array 2 มิติ จะแสดงจำนวนแถวและจำนวนคอลัมน์ของ array

ตัวอย่างเช่น

z = np.array([[1,2,3],[4,5,6]])
print(z.shape)
print(z)

output:
(2,3)
[[123]
 [456]]

z มี 2 มิติ เมื่อใช้ attribute ndarray.shape จะได้ tuple (2,3) คือมี 2 แถว แต่ละแถวมีสมาชิก 3 ตัว หรือมี 3 คอลัมน์นั่นเอง

Shape ของ 3-D

shape ของ numpy array ที่มี 3 มิติ จะบอกได้ว่า array นี้มีกี่ตาราง แต่ละตารางมีกี่แถว และแต่ละแถวมีกี่คอลัมน์

ตัวอย่างเช่น

a = np.array([[[1,2,3],[4,5,6]],
              [[1,2,3],[4,5,6]]])
print(a.shape)
print(a)

output:
(2, 2, 3)
[[[1 2 3]
  [4 5 6]]

 [[1 2 3]
  [4 5 6]]]

a เป็น numpy array 3 มิติ มี 2 ตาราง แต่ละตารางมี 2 แถว แต่ละแถวมี 3 คอลัมน์