Thep Excel

numpy array — สร้าง ndarray จากข้อมูลที่มีอยู่แล้ว

np.array คือประตูหน้าบ้านของ NumPy ครับ ผมใช้มันแปลง Python list หรือ nested list ให้กลายเป็น ndarray ที่ทำ vectorized operations ได้ทันที โดยไม่ต้องวน loop เองเลยแม้แต่บรรทัดเดียว

np.array(object, dtype)

By ThepExcel AI Agent
31 May 2026

Function Metrics


Popularity
5/10

Difficulty
3/10

Usefulness
5/10

Syntax & Arguments

np.array(object, dtype)

คืนค่า (Returns)
ndarray

คืนเป็น NumPy ndarray ครับ เอาไปทำ vectorized operations ได้ทันที บวก ลบ คูณ หาร เปรียบเทียบ หรือส่งเข้าฟังก์ชัน NumPy อื่นต่อไปได้เลย

Argument Type Required Default Description
object array_like Yes ข้อมูล input ที่จะแปลงเป็น ndarray เช่น list, tuple, nested list หรือ array อื่น
dtype dtype Optional None ชนิดข้อมูลที่ต้องการ เช่น np.float64, np.int32 ถ้าไม่ใส่ NumPy จะเดาจาก input อัตโนมัติ
ndmin int Optional 0 จำนวน dimension ขั้นต่ำของ array ที่ได้ออกมา ถ้า input มีน้อยกว่าจะเพิ่ม axis ให้อัตโนมัติ
copy bool Optional True ถ้าเป็น True จะ copy ข้อมูลเสมอ ถ้า False จะ reuse memory เดิมถ้าเป็นไปได้ — ใช้ False เมื่อต้องการประหยัด memory

Examples

ตัวอย่างที่ 1: สร้าง 1D array จาก list ธรรมดา
np.array([10, 20, 30, 40, 50])
ผมส่ง Python list เข้าไปตรงๆ ได้ ndarray 1 มิติออกมาเลยครับ ง่ายมาก แค่ห่อ list ด้วย np.array() เท่านี้ก็พร้อมทำ vectorized operations ได้แล้ว
Python Code:

np.array([10, 20, 30, 40, 50])

Result:

[10 20 30 40 50]

ตัวอย่างที่ 2: สร้าง 2D array จาก nested list
np.array([[1, 2, 3], [4, 5, 6]])
ผมส่ง list ซ้อน list (2 แถว 3 คอลัมน์) เข้าไป NumPy จัดการ shape ให้อัตโนมัติเลยครับ ได้ matrix 2×3 ออกมา ใช้บ่อยมากตอนสร้างข้อมูลทดสอบหรือแปลงตารางจาก CSV
Python Code:

np.array([[1, 2, 3], [4, 5, 6]])

Result:

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

ตัวอย่างที่ 3: ระบุ dtype เป็น float
np.array([1, 2, 3, 4], dtype=float)
ถ้า input เป็นเลขจำนวนเต็มแต่อยากได้ float ผมใส่ dtype=float เข้าไปเลยครับ NumPy แปลงทุกตัวให้เป็น float64 อัตโนมัติ ใช้บ่อยตอนจะทำหาร หรือส่งเข้าฟังก์ชันที่ต้องการ float
Python Code:

np.array([1, 2, 3, 4], dtype=float)

Result:

[1. 2. 3. 4.]

ตัวอย่างที่ 4: vectorized operation — ทำไม ndarray ถึงดีกว่า list
arr * 2
นี่คือเหตุผลหลักที่ผมใช้ NumPy ครับ เขียน arr * 2 บรรทัดเดียว ทุกตัวเลขคูณ 2 พร้อมกันเลย ถ้าเป็น list ธรรมดาต้องเขียน [x * 2 for x in lst] แทน ยิ่งข้อมูลใหญ่ vectorized operations เร็วกว่ามากครับ
Python Code:

arr * 2

Result:

[ 20 40 60 80 100]

FAQs

ต่างจาก Python list ยังไง ทำไมต้องแปลงเป็น ndarray?

ต่างกันที่ประสิทธิภาพและความสะดวกครับ list ใน Python เก็บข้อมูลต่างชนิดกันได้และเข้าถึงแบบ random แต่ ndarray เก็บชนิดเดียวกันทั้งหมดแบบ contiguous ใน memory ทำให้ vectorized ops เร็วกว่ามากๆ และที่สำคัญ arr * 2 ใช้ได้เลยโดยไม่ต้อง loop ครับ ผมแทบไม่ใช้ list เลยพอเริ่มทำ numerical work

np.array กับ np.asarray ควรใช้ตัวไหน?

ถ้า input เป็น list หรือ tuple ใช้ตัวไหนก็ได้ผลเหมือนกันครับ แต่ถ้า input เป็น ndarray อยู่แล้ว — np.array จะ copy ข้อมูลเสมอ ส่วน np.asarray จะ reuse memory เดิม ผมเลยใช้ np.asarray เป็น default ตอนเขียนฟังก์ชันที่รับ input ได้หลายรูปแบบ ประหยัด memory กว่าครับ

nested list ไม่เท่ากันได้ไหม เช่น [[1,2], [3,4,5]]?

ได้ครับแต่ NumPy จะสร้างเป็น array ชนิด object แทน dtype=object ไม่ใช่ array ตัวเลขปกติ ทำให้ vectorized operations ส่วนใหญ่ใช้ไม่ได้ ผมแนะนำให้ทำให้แถวยาวเท่ากันก่อนครับ ถ้าข้อมูลไม่เท่ากันจริงๆ ให้ใช้ pandas แทนจะเหมาะกว่า

Resources & Related

Additional Notes

np.array คือฟังก์ชันแรกที่ผมต้องรู้จักเวลาเริ่มใช้ NumPy ครับ มันเป็น constructor พื้นฐานที่แปลง Python list (หรือ nested list สำหรับ 2D) ให้กลายเป็น ndarray — โครงสร้างข้อมูลหลักของ NumPy ที่เก็บข้อมูลชนิดเดียวกันทั้งหมดแบบ contiguous ใน memory ทำให้คำนวณได้เร็วกว่า list ธรรมดามากครับ

ส่วนที่ทำให้ ndarray เด่นกว่า list คือ vectorized operations ผมเขียน arr * 2 บรรทัดเดียว ทุกตัวเลขใน array คูณ 2 พร้อมกันเลย ถ้าใช้ list ต้อง list comprehension หรือ for loop แทน นอกจากนี้ยังระบุ dtype ได้ตั้งแต่ตอนสร้าง เพื่อควบคุม memory และ precision ตามต้องการ

ที่เจ๋งคือ np.array รองรับ nested list ได้เลย — แค่ส่ง list ซ้อน list เข้าไปก็ได้ 2D array (matrix) ออกมาทันที NumPy จัดการ shape ให้อัตโนมัติ ไม่ต้องประกาศขนาดก่อน ✨

ส่วนตัวผมใช้ np.array บ่อยมากตอนรับข้อมูลจากภายนอก เช่น CSV หรือ API แล้วอยากเอามาคำนวณเลย — แปลงเป็น array ก่อน แล้วที่เหลือทำ vectorized ได้หมดเลยครับ 😎

Leave a Reply

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