กวดวิชาNumPy

NumPy HOME แนะนำ NumPy NumPy เริ่มต้นใช้งาน NumPy การสร้างอาร์เรย์ การจัดทำดัชนี NumPy Array NumPy Array Slicing ประเภทข้อมูล NumPy NumPy Copy เทียบกับ View NumPy Array Shape การปรับรูปร่าง NumPy Array NumPy Array Iterating NumPy Array เข้าร่วม NumPy Array Split ค้นหาอาร์เรย์ NumPy NumPy Array Sort ตัวกรองอาร์เรย์ NumPy

NumPyสุ่ม

สุ่มอินโทร การกระจายข้อมูล การเรียงสับเปลี่ยนแบบสุ่ม โมดูล Seaborn การกระจายแบบปกติ การกระจายทวินาม จำหน่ายปลา กระจายสม่ำเสมอ การกระจายโลจิสติกส์ การกระจายพหุนาม การกระจายแบบเอกซ์โพเนนเชียล จิสแควร์ ดิสทริบิวชั่น การกระจาย Rayleigh พาเรโต้ ดิสทริบิวชั่น การกระจาย Zipf

NumPy ufunc

ufunc Intro ufunc สร้างฟังก์ชัน ufunc เลขคณิตอย่างง่าย ufunc การปัดเศษทศนิยม ufunc บันทึก ufunc ผลรวม ผลิตภัณฑ์ ufunc ufunc ความแตกต่าง ufunc ค้นหา LCM ufunc กำลังหา GCD ufunc ตรีโกณมิติ ufunc ไฮเปอร์โบลิก ufunc Set Operations

แบบทดสอบ/แบบฝึกหัด

แบบทดสอบ NumPy แบบฝึกหัด NumPy

ประเภทข้อมูล NumPy


ประเภทข้อมูลใน Python

โดยค่าเริ่มต้น Python มีประเภทข้อมูลเหล่านี้:

  • strings- ใช้เพื่อแสดงข้อมูลข้อความ ข้อความอยู่ภายใต้เครื่องหมายคำพูด เช่น "ABCD"
  • integer- ใช้แทนตัวเลขจำนวนเต็ม เช่น -1, -2, -3
  • float- ใช้แทนจำนวนจริง เช่น 1.2, 42.42
  • boolean - ใช้เพื่อแสดงถึง จริง หรือ เท็จ
  • 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'สำหรับจำนวนเต็ม เป็นต้น หรือคุณสามารถใช้ชนิดข้อมูลโดยตรงเช่น floatfloat และintinteger

ตัวอย่าง

เปลี่ยนประเภทข้อมูลจาก 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)

ทดสอบตัวเองด้วยแบบฝึกหัด

ออกกำลังกาย:

NumPy ใช้อักขระเพื่อแสดงข้อมูลแต่ละประเภทต่อไปนี้ อันไหน?

i = integer
 = boolean
 = unsigned integer
 = float
 = complex float
 = timedelta
 = datatime
 = object
 = string