ประเภทข้อมูล NumPy
ประเภทข้อมูลใน Python
โดยค่าเริ่มต้น Python มีประเภทข้อมูลเหล่านี้:
strings
- ใช้เพื่อแสดงข้อมูลข้อความ ข้อความอยู่ภายใต้เครื่องหมายคำพูด เช่น "ABCD"integer
- ใช้แทนตัวเลขจำนวนเต็ม เช่น -1, -2, -3float
- ใช้แทนจำนวนจริง เช่น 1.2, 42.42boolean
- ใช้เพื่อแสดงถึง จริง หรือ เท็จcomplex
- ใช้แทนจำนวนเชิงซ้อน เช่น 1.0 + 2.0j, 1.5 + 2.5j
ประเภทข้อมูลใน NumPy
NumPy มีประเภทข้อมูลพิเศษบางประเภท และอ้างถึงประเภทข้อมูลที่มีอักขระตัวเดียว เช่นi
สำหรับจำนวนเต็ม สำหรับจำนวนu
เต็มที่ไม่ได้ลงนาม เป็นต้น
ด้านล่างนี้คือรายการประเภทข้อมูลทั้งหมดใน NumPy และอักขระที่ใช้แทน
i
- จำนวนเต็มb
- บูลีนu
- จำนวนเต็มไม่ได้ลงนามf
- ลอยc
- โฟลตที่ซับซ้อนm
- ไทม์เดลต้าM
- วันเวลาO
- วัตถุS
- สตริงU
- สตริงยูนิโค้ดV
- หน่วยความจำแบบคงที่สำหรับประเภทอื่น ( เป็นโมฆะ )
การตรวจสอบประเภทข้อมูลของอาร์เรย์
ออบเจ็กต์ NumPy array มีคุณสมบัติที่เรียกdtype
ว่าส่งคืนชนิดข้อมูลของอาร์เรย์:
ตัวอย่าง
รับชนิดข้อมูลของวัตถุอาร์เรย์:
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr.dtype)
ตัวอย่าง
รับประเภทข้อมูลของอาร์เรย์ที่มีสตริง:
import numpy as np
arr = np.array(['apple',
'banana', 'cherry'])
print(arr.dtype)
การสร้างอาร์เรย์ด้วยประเภทข้อมูลที่กำหนด
เราใช้array()
ฟังก์ชันเพื่อสร้างอาร์เรย์ ฟังก์ชันนี้สามารถใช้อาร์กิวเมนต์dtype
ที่เป็นตัวเลือกได้ ซึ่งช่วยให้เรากำหนดประเภทข้อมูลที่คาดหวังขององค์ประกอบอาร์เรย์ได้:
ตัวอย่าง
สร้างอาร์เรย์ด้วยสตริงประเภทข้อมูล:
import numpy as np
arr = np.array([1, 2, 3, 4],
dtype='S')
print(arr)
print(arr.dtype)
สำหรับi
, u
, f
,
S
และU
เราสามารถกำหนดขนาดได้เช่นกัน
ตัวอย่าง
สร้างอาร์เรย์ที่มีข้อมูลชนิดจำนวนเต็ม 4 ไบต์:
import numpy as np
arr = np.array([1, 2, 3, 4],
dtype='i4')
print(arr)
print(arr.dtype)
เกิดอะไรขึ้นถ้าไม่สามารถแปลงค่าได้?
หากกำหนดประเภทที่ไม่สามารถส่งองค์ประกอบได้ NumPy จะเพิ่ม ValueError
ValueError:ใน Python ValueError จะเพิ่มขึ้นเมื่อประเภทของอาร์กิวเมนต์ที่ส่งผ่านไปยังฟังก์ชันไม่คาดคิด/ไม่ถูกต้อง
ตัวอย่าง
สตริงที่ไม่ใช่จำนวนเต็มเช่น 'a' ไม่สามารถแปลงเป็นจำนวนเต็มได้ (จะทำให้เกิดข้อผิดพลาด):
import numpy as np
arr = np.array(['a', '2', '3'], dtype='i')
การแปลงประเภทข้อมูลบนอาร์เรย์ที่มีอยู่
วิธีที่ดีที่สุดในการเปลี่ยนชนิดข้อมูลของอาร์เรย์ที่มีอยู่คือการทำสำเนาอาร์เรย์ด้วยastype()
วิธีดังกล่าว
ฟังก์ชันastype()
จะสร้างสำเนาของอาร์เรย์ และให้คุณระบุชนิดข้อมูลเป็นพารามิเตอร์ได้
สามารถระบุชนิดข้อมูลได้โดยใช้สตริง เช่น'f'
float
'i'
สำหรับจำนวนเต็ม เป็นต้น หรือคุณสามารถใช้ชนิดข้อมูลโดยตรงเช่น
float
float และint
integer
ตัวอย่าง
เปลี่ยนประเภทข้อมูลจาก float เป็น integer โดยใช้'i'
ค่าพารามิเตอร์:
import numpy as np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype('i')
print(newarr)
print(newarr.dtype)
ตัวอย่าง
เปลี่ยนประเภทข้อมูลจาก float เป็น integer โดยใช้int
ค่าพารามิเตอร์:
import numpy as np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype(int)
print(newarr)
print(newarr.dtype)
ตัวอย่าง
เปลี่ยนประเภทข้อมูลจากจำนวนเต็มเป็นบูลีน:
import numpy as np
arr = np.array([1, 0, 3])
newarr = arr.astype(bool)
print(newarr)
print(newarr.dtype)