NumPy - แอตทริบิวต์อาร์เรย์
ในบทนี้เราจะพูดถึงคุณลักษณะอาร์เรย์ต่างๆของ NumPy
ndarray.shape
แอตทริบิวต์อาร์เรย์นี้ส่งคืนทูเพิลที่ประกอบด้วยมิติอาร์เรย์ นอกจากนี้ยังสามารถใช้เพื่อปรับขนาดอาร์เรย์
ตัวอย่าง 1
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print a.shape
ผลลัพธ์มีดังนี้ -
(2, 3)
ตัวอย่าง 2
# this resizes the ndarray
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a.shape = (3,2)
print a
ผลลัพธ์มีดังนี้ -
[[1, 2]
[3, 4]
[5, 6]]
ตัวอย่างที่ 3
NumPy ยังมีฟังก์ชัน reshape เพื่อปรับขนาดอาร์เรย์
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
b = a.reshape(3,2)
print b
ผลลัพธ์มีดังนี้ -
[[1, 2]
[3, 4]
[5, 6]]
ndarray.ndim
แอตทริบิวต์อาร์เรย์นี้ส่งกลับจำนวนมิติอาร์เรย์
ตัวอย่าง 1
# an array of evenly spaced numbers
import numpy as np
a = np.arange(24)
print a
ผลลัพธ์มีดังนี้ -
[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
ตัวอย่าง 2
# this is one dimensional array
import numpy as np
a = np.arange(24)
a.ndim
# now reshape it
b = a.reshape(2,4,3)
print b
# b is having three dimensions
ผลลัพธ์มีดังนี้ -
[[[ 0, 1, 2]
[ 3, 4, 5]
[ 6, 7, 8]
[ 9, 10, 11]]
[[12, 13, 14]
[15, 16, 17]
[18, 19, 20]
[21, 22, 23]]]
numpy.itemsize
แอตทริบิวต์อาร์เรย์นี้ส่งกลับความยาวของแต่ละองค์ประกอบของอาร์เรย์เป็นไบต์
ตัวอย่าง 1
# dtype of array is int8 (1 byte)
import numpy as np
x = np.array([1,2,3,4,5], dtype = np.int8)
print x.itemsize
ผลลัพธ์มีดังนี้ -
1
ตัวอย่าง 2
# dtype of array is now float32 (4 bytes)
import numpy as np
x = np.array([1,2,3,4,5], dtype = np.float32)
print x.itemsize
ผลลัพธ์มีดังนี้ -
4
numpy.flags
อ็อบเจ็กต์ ndarray มีคุณสมบัติดังต่อไปนี้ ค่าปัจจุบันจะถูกส่งกลับโดยฟังก์ชันนี้
ซีเนียร์ | คุณสมบัติและคำอธิบาย |
---|---|
1 | C_CONTIGUOUS (C) ข้อมูลอยู่ในเซ็กเมนต์ที่ต่อเนื่องกันสไตล์ C เดียว |
2 | F_CONTIGUOUS (F) ข้อมูลอยู่ในเซ็กเมนต์เดียวที่ต่อเนื่องกันสไตล์ Fortran |
3 | OWNDATA (O) อาร์เรย์เป็นเจ้าของหน่วยความจำที่ใช้หรือยืมจากวัตถุอื่น |
4 | WRITEABLE (W) พื้นที่ข้อมูลสามารถเขียนถึง การตั้งค่านี้เป็น False จะล็อกข้อมูลทำให้เป็นแบบอ่านอย่างเดียว |
5 | ALIGNED (A) ข้อมูลและองค์ประกอบทั้งหมดได้รับการจัดวางอย่างเหมาะสมสำหรับฮาร์ดแวร์ |
6 | UPDATEIFCOPY (U) อาร์เรย์นี้เป็นสำเนาของอาร์เรย์อื่น ๆ เมื่ออาร์เรย์นี้ถูกยกเลิกการจัดสรรอาร์เรย์พื้นฐานจะได้รับการอัปเดตด้วยเนื้อหาของอาร์เรย์นี้ |
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงค่าปัจจุบันของแฟล็ก
import numpy as np
x = np.array([1,2,3,4,5])
print x.flags
ผลลัพธ์มีดังนี้ -
C_CONTIGUOUS : True
F_CONTIGUOUS : True
OWNDATA : True
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : False