โมดูล NumPy เป็นโมดูลส่วนเสริมของภาษา Python สำหรับใช้คำนวณทางคณิตศาสตร์และวิทยาศาสตร์ โดยมีคำสั่งพร้อมใช้งานจำนวนมากมาย และโมดูลนี้สามารถสร้างข้อมูลชนิดอาร์เรย์ (ที่ภาษา Python ไม่มี) และคำนวณอาร์เรย์ของตัวเลข สตริงและวัตถุได้ครับ
โมดูล NumPy รองรับทั้ง Python 2 , Python 3 และใช้ License: BSD
การติดตั้งโมดูล NumPy
สามารถติดตั้งได้โดยใช้คำสั่ง pip: (ตรวจสอบการตั้งค่า c compiler กับ Python ให้เรียบร้อยก่อนติดตั้งครับ)
$ pip install numpy
สำหรับผู้ใช้ Windows สามารถโหลดไฟล์ .whl มาติดตั้งได้จาก http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
การใช้งาน
ในการใช้งานต้อง import NumPy เข้ามาครับ
[python]import numpy as np[/python]
ข้อมูลชนิดอาร์เรย์กับ NumPy
อย่างที่เรารู้กัน ภาษา Python ไม่มีข้อมูลชนิดอาร์เรย์ สามารถใช้ list แทนได้ แต่หากใช้โมดูล NumPy เราจะสามารถใช้ข้อมูลชนิดอาร์เรย์ได้ดังนี้ครับ
>>> x = np.array([1,2,3])
>>> x
array([1, 2, 3])
ต่อไปเราจะมาสร้าง array เก็บข้อมูลระหว่าง 0 - 10 กันครับ
>>> x = np.arange(10)
>>> x
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
เมื่อเรานำ x ที่เก็บข้อมูลอาร์เรย์ของตัวเลขไว้ มาบวกกับ 10 และนำมาบวกกับตัวมันเอง
>>> x = np.arange(10)
>>> x
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> y = x + 10 # มาบวกกับ 10
>>> y
array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
>>> z = x + x # บวกกับตัวมันเอง
>>> z
array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18])
การเรียกใช้ข้อมูลจากอาร์เรย์ และแทนที่ข้อมูลในอาร์เรย์ได้ดังนี้
>>> x = np.arange(10)
>>> x
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> x[1]
1
>>> x[8]
8
>>> x[9]
9
>>> x[0] = 99
>>> x
array([99, 1, 2, 3, 4, 5, 6, 7, 8, 9])
หาค่าสูงสุด ต่ำสุด
x = np.arange(5) + 1
x.mean() # ค่าเฉลี่ยเลขคณิต คือ 3.0
x.max() # ค่ามากสุดือ 5
x.min() # ค่าน้อยสุดคือ 1
x.std() # คำนวณส่วนเบี่ยงเบนมาตรฐาน คือ 1.414
ต่อไปเราจะย้ายข้อมูลอาร์เรย์จากแถวเดียว (อาร์เรย์ 1 มิติ) ไปเป็น 2 แถว (อาร์เรย์ 2 มิติ) ได้ โดยแถวและหลักต้องสมดุลกัน เป็นเมทริกซ์ สามารถใช้คำสั่ง reshape() ได้ดังนี้
>>> x = np.arange(10)
>>> y = x.reshape(2,5) # สร้างเมทริกซ์ 2 * 5
>>> y
array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]])
หากเรากำหนดค่าเมทริกซ์ไม่สมดุลกัน
>>> x = np.arange(10)
>>> y = x.reshape(2,2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: total size of new array must be unchanged
เมทริกซ์
>>> A = np.matrix('1.0 2.0; 3.0 4.0')>>> A
[[ 1. 2.]
[ 3. 4.]]
>>> type(A) # ตรวจสอบชนิดของข้อมูลตัวแปร A
<class 'numpy.matrixlib.defmatrix.matrix'>
>>> A.T # เมทริกซ์สลับเปลี่ยน (transpose)
[[ 1. 3.]
[ 2. 4.]]
>>> X = np.matrix('5.0 7.0')
>>> Y = X.T
>>> Y
[[5.]
[7.]]
>>> print(A*Y) # การคูณเมทริกซ์
[[19.]
[43.]]
>>> print(A.I) # อินเวอร์สของเมทริกซ์
[[-2. 1. ]
[ 1.5 -0.5]]
อ่านเอกสารการใช้งาน NumPy เพิ่มเติมได้ที่ http://wiki.scipy.org/Tentative_NumPy_Tutorial
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
ขอบคุณมากเลยค่ะ
ตอบลบ