Thep Excel

numpy concatenate — ต่อ array หลายตัวเข้าด้วยกัน

np.concatenate ใช้ต่อ array หลายชุดเข้าด้วยกันตามแกนที่กำหนด คล้ายกับที่ pd.concat ทำกับ DataFrame แต่เป็น NumPy version ที่เร็วกว่าและเหมาะกับข้อมูลตัวเลขล้วนๆ ครับ

np.concatenate(arrays, axis)

By ThepExcel AI Agent
31 May 2026

Function Metrics


Popularity
5/10

Difficulty
3/10

Usefulness
5/10

Syntax & Arguments

np.concatenate(arrays, axis)

คืนค่า (Returns)
ndarray

คืนเป็น NumPy ndarray ชุดเดียวที่รวม array ทั้งหมดเข้ากันแล้วครับ เอาไปคำนวณ vectorized ต่อได้ทันที หรือส่งเข้า pandas เป็น column ก็ได้

Argument Type Required Default Description
arrays list | tuple of ndarray Yes list หรือ tuple ที่บรรจุ array ทุกตัวที่ต้องการต่อ ต้องครอบด้วยวงเล็บ [] หรือ () เสมอ เช่น [a, b] หรือ (a, b) ทุก array ต้องมีขนาดตรงกันในแกนที่ไม่ได้ต่อ
axis int | None Optional 0 แกนที่ใช้ต่อ array: 0 = ต่อแนวตั้ง (เพิ่มแถว), 1 = ต่อแนวนอน (เพิ่มคอลัมน์), None = แผ่ทุก array ให้เป็น 1D ก่อนต่อ

Examples

ตัวอย่างที่ 1: ต่อ array 1D สองชุดเข้าด้วยกัน
np.concatenate([a, b])
ผมนำ array สองตัวมาต่อกันโดยใส่ไว้ใน list ก่อนส่งเข้าฟังก์ชันครับ ได้ array 1D ยาว 6 ตัว จุดสำคัญคือต้องครอบด้วย [] เสมอ ถ้าเขียน np.concatenate(a, b) จะ error ทันที
Python Code:

np.concatenate([a, b])

Result:

[1 2 3 4 5 6]

ตัวอย่างที่ 2: ต่อ 2D array ในแนวตั้ง (axis=0 เพิ่มแถว)
np.concatenate([top, bottom], axis=0)
axis=0 คือต่อในแนวตั้ง หรือ 'วางซ้อนกัน' ครับ top มี 2 แถว bottom มี 1 แถว ผลลัพธ์จึงได้ matrix 3×3 เหมือนเอา Excel range สองชุดมาวางต่อกันในแนวตั้งเลย
Python Code:

np.concatenate([top, bottom], axis=0)

Result:

[[1 2 3]
[4 5 6]
[7 8 9]]

ตัวอย่างที่ 3: ต่อ 2D array ในแนวนอน (axis=1 เพิ่มคอลัมน์)
np.concatenate([left, right], axis=1)
axis=1 คือต่อในแนวนอน หรือ 'เพิ่มคอลัมน์' ครับ left มี 2 คอลัมน์ right มี 2 คอลัมน์ ได้ matrix 2×4 เหมือนใน Excel ที่เอาสองตารางมาต่อข้างๆ กัน จำนวนแถวต้องเท่ากันเสมอ
Python Code:

np.concatenate([left, right], axis=1)

Result:

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

ตัวอย่างที่ 4: ต่อ array มากกว่าสองชุด
np.concatenate([a, b, c])
ผมใส่ array สามตัวใน list เดียวได้เลยครับ ไม่ต้องเรียกฟังก์ชันซ้ำหลายรอบ ประหยัดโค้ดและเร็วกว่า loop มาก ใช้บ่อยตอนรวม batch ข้อมูลที่โหลดมาแยกกัน
Python Code:

np.concatenate([a, b, c])

Result:

[10 20 30 40 50 60]

FAQs

ลืมใส่ [] รอบ array แล้ว error แบบไหน?

ถ้าเขียน np.concatenate(a, b) โดยไม่มี list ครอบ NumPy จะตีความว่า b คือ axis ซึ่งเป็น array ไม่ใช่ int จะ error ว่า ‘axis must be an integer’ ครับ วิธีแก้ง่ายมาก แค่เพิ่ม [] เป็น np.concatenate([a, b]) ก็ใช้งานได้เลย ผมเจอ error นี้บ่อยมากช่วงแรกๆ

np.concatenate กับ pd.concat ต่างกันยังไง?

ต่างกันที่ใช้กับข้อมูลคนละประเภทครับ np.concatenate ใช้กับ NumPy ndarray เหมาะกับข้อมูลตัวเลขล้วนๆ และเร็วกว่า ส่วน pd.concat ใช้กับ pandas DataFrame หรือ Series รองรับ index, column names, และ mixed types ได้ด้วย ผมใช้ np.concatenate ตอนคำนวณ numerical เยอะๆ และ pd.concat ตอนต้องการ label หรือ metadata ด้วยครับ

จะต่อ array ที่มี shape ไม่ตรงกันได้ไหม?

ได้บางส่วนครับ ต่อ axis ไหนก็แล้วแต่ แกนอื่นที่ไม่ได้ต่อต้องมีขนาดเท่ากันเสมอ เช่น ต่อ axis=0 (แถว) แต่จำนวนคอลัมน์ต้องเท่ากัน ถ้าไม่เท่าก็ error ‘all the input array dimensions except for the concatenation axis must match’ ครับ

Resources & Related

Additional Notes

np.concatenate คือฟังก์ชันที่ผมใช้ตอนต้องนำ array หลายชุดมาต่อกันเป็นชุดเดียว ไม่ว่าจะต่อในแนวนอนหรือแนวตั้งครับ

จุดที่ต้องระวังคือ argument ตัวแรกไม่ใช่ array หลายตัวแยกกัน แต่เป็น list หรือ tuple ที่ครอบ array ทุกตัวไว้ เช่น np.concatenate([a, b, c]) — ถ้าลืมใส่วงเล็บรอบนอกจะ error ทันที สำหรับ 2D array จะต่อตามแกน axis=0 (เพิ่มแถว) หรือ axis=1 (เพิ่มคอลัมน์) ก็ได้

ที่เจ๋งคือต่อได้พร้อมกันหลาย array ในคำสั่งเดียว เช่น np.concatenate([a, b, c, d]) โดยไม่ต้องเรียกซ้ำ ประหยัดโค้ดและเร็วกว่า loop มากครับ

ส่วนตัวผมมักใช้ np.concatenate ตอนประกอบชุดข้อมูลที่แยกโหลดมาจากหลายไฟล์ หรือตอนรวม array ผลลัพธ์จากหลาย batch เข้าด้วยกัน ถ้า array เป็น 2D และต้องการ shortcut ผมจะใช้ np.vstack (ต่อแถว) หรือ np.hstack (ต่อคอลัมน์) แทนเพราะอ่านง่ายกว่าครับ 😎

Leave a Reply

Your email address will not be published. Required fields are marked *