numpy中的複合陣列
阿新 • • 發佈:2018-12-03
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