---
title: numpy array — สร้าง ndarray จากข้อมูลที่มีอยู่แล้ว
url: https://www.thepexcel.com/functions/python/creation/numpy-array/
type: function-explainer
program: Python
syntax: "np.array(object, dtype)"
date: 2026-05-31
scores:
  popularity: 5
  difficulty: 3
  usefulness: 5
---

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

> np.array คือประตูหน้าบ้านของ NumPy ครับ ผมใช้มันแปลง Python list หรือ nested list ให้กลายเป็น ndarra

## คำอธิบาย

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

## Syntax

```excel
np.array(object, dtype)
```

## Arguments

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

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: สร้าง 1D array จาก list ธรรมดา

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

**ผลลัพธ์:** `[10 20 30 40 50]`

ผมส่ง Python list เข้าไปตรงๆ ได้ ndarray 1 มิติออกมาเลยครับ ง่ายมาก แค่ห่อ list ด้วย np.array() เท่านี้ก็พร้อมทำ vectorized operations ได้แล้ว

### 2. ตัวอย่างที่ 2: สร้าง 2D array จาก nested list

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

**ผลลัพธ์:** `[[1 2 3]
 [4 5 6]]`

ผมส่ง list ซ้อน list (2 แถว 3 คอลัมน์) เข้าไป NumPy จัดการ shape ให้อัตโนมัติเลยครับ ได้ matrix 2×3 ออกมา ใช้บ่อยมากตอนสร้างข้อมูลทดสอบหรือแปลงตารางจาก CSV

### 3. ตัวอย่างที่ 3: ระบุ dtype เป็น float

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

**ผลลัพธ์:** `[1. 2. 3. 4.]`

ถ้า input เป็นเลขจำนวนเต็มแต่อยากได้ float ผมใส่ dtype=float เข้าไปเลยครับ NumPy แปลงทุกตัวให้เป็น float64 อัตโนมัติ ใช้บ่อยตอนจะทำหาร หรือส่งเข้าฟังก์ชันที่ต้องการ float

### 4. ตัวอย่างที่ 4: vectorized operation — ทำไม ndarray ถึงดีกว่า list

```excel
arr * 2
```

**ผลลัพธ์:** `[ 20  40  60  80 100]`

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

## หมายเหตุเพิ่มเติม

- 💡 ผมแนะนำให้ระบุ dtype ไว้เสมอตอนเขียน production code ครับ เพราะ NumPy เดา dtype จาก input บางครั้งได้ผลต่างจากที่คาดไว้ เช่น list ของ int แต่อยากได้ float ต้องบอกชัดๆ

- ส่วนตัวผมมักต่อ np.array ด้วย .reshape() ทันทีถ้าอยากได้ shape ที่ต้องการ เช่น np.array([1,2,3,4,5,6]).reshape(2,3) ได้ matrix 2×3 ในบรรทัดเดียวเลยครับ ไม่ต้องสร้าง nested list เองก่อน

## คำถามที่พบบ่อย

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

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

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

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

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

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

## แหล่งข้อมูลเพิ่มเติม

- [numpy.array — NumPy official docs](https://numpy.org/doc/stable/reference/generated/numpy.array.html) _(article)_

---

_Source: [https://www.thepexcel.com/functions/python/creation/numpy-array/](https://www.thepexcel.com/functions/python/creation/numpy-array/)_
