1. 程式人生 > >numpy中的複合陣列

numpy中的複合陣列

1.複合陣列的建立

# 複合陣列,最重要的是定義dtype
a = np.array([('ABC', [1, 2, 3])], dtype="U3, 3i4")
print(a)
# [('ABC', [1, 2, 3])]
print(a[0]["f0"], a[0]["f1"][0])  # 預設的名稱為f0, f1 .....
# ABC 1

2.如果不想用預設的名稱,那就如下操作,得到的值和上面一樣

b = np.array([('ABC', [1, 2, 3])], dtype=[("fa", np.str_, 3), ("fb", np.int32, 3)])
print
(b) print(b[0]["fa"], b[0]["fb"][0]) c = np.array([('ABC', [1, 2, 3])], dtype={"names": ["fa", "fb"], "formats":["U3", "3i4"]}) print(c) print(c[0]["fa"], c[0]["fb"][0])

3.由於複合陣列,是不是有可能就會改變數組裡面的值,因此也可以為某一段陣列多有一些位元組或位

# 這裡的0和16是偏移,以0位偏移基點,為陣列預留空間
d = np.array([('ABC', [1, 2, 3])], dtype={"fa": ("U3", 0),"
fb": ("3i4", 16)}) print(d) # [('ABC', [1, 2, 3])] print(d[0]["fa"], c[0]["fb"][0]) # ABC 1 print(c.itemsize) # 24 # 獲取陣列元素的位數, 1位元組 = 8位 print(d.itemsize) # 28