การเข้าถึงสมาชิกของ Array จะทำผ่าน index โดยจะมีค่าเริ่มต้นเป็น 0 1 2 ไปตามลำดับ และสามารถอ้างอิงจากตัวสุดท้ายมาตัวแรก โดยใช้เลข -1 -2 -3 ไป
import numpy as np
a = np.array([7, 9, 4]) a[0] a[-1]
ผลลัพธ์
7
4
นอกจากนี้ ยังสามารถใช้เครื่องหมาย : เพื่อระบุช่วงของ index ได้ในรูปแบบ
array[start:end:step] โดยผลลัพธ์จะไม่นับค่า end นะครับ เช่น
a[0:2:1]
ผลลัพธ์
[7, 9]
ถ้าใส่แค่ค่า end ค่า start จะเป็น 0 และค่า step จะเป็น 1 เช่น
a[:2]
ผลลัพธ์
[7, 9]
ถ้าไม่ใส่ค่า end ก็จะทำถึงตัวสุดท้าย เช่น
a[0::2]ผลลัพธ์
[7, 4]
นั่นคือ
a[:]
ผลลัพธ์
[7, 9, 4]
เราสามารถเปลี่ยนค่าสมาชิกหลายๆตัวพร้อมกันได้ โดยใช้หลักการนี้ เช่น
a[1:3] = 0
จะได้
[7, 0, 0]
และสามารถแสดงผลสมาชิกของ array ด้วยคำสั่ง for และ in
for i in a:
print i**2
จะได้
49
0
0
สำหรับ array ตั้งแต่สองมิติเป็นต้นไป index ในแต่ละมิติก็จะแยกกันด้วยเครื่องหมาย , เช่น
b = np.array([ ["00","01"], ["10","11"], ["20","21"] ])
[['00', '01'],
['10', '11'],
['20', '21']]
b.shape
(3, 2)
ถ้าต้องการแถวใดๆ
b[1,:] # same as b[1]
['10', '11']
ถ้าต้องการหลักใดๆ
b[:,1]
['01', '11', '21']
กรณีที่เป็น array สามมิติ (ซึ่งก็คือ array ของ array สองมิติ)
c = np.array([ [["000","001"],["010","011"],["020","021"]] , [["100","101"],["110","111"],["120","121"]]])
[ [['000', '001'],
['010', '011'],
['020', '021']],
[['100', '101'],
['110', '111'],
['120', '121']] ]
จะกลายเป็นว่า มิติที่ 3 กลายเป็นหลักแรกสุด ตามมาด้วยแถวและหลัก นั่นคือ
c[0,0,1] จะได้ค่า 001
และ
c[0, :, :]
[['000', '001'],
['010', '011'],
['020', '021']]
นอกจากนี้แล้ว ยังสามารถใช้เครื่องหมาย ... แทนทุกมิติที่ไม่ได้ระบุไว้ เช่น
c[0,...] ก็จะได้ผลลัพธ์เหมือน c[0,:,:]
No comments:
Post a Comment