我可以在 numpy 中創建以下結構化陣列:
dt = np.dtype([('n', 'i4'),('x', 'f8'), ('y', 'f8'), ('z', 'f8')])
arr = np.array((1, 5.0, 6.0, 7.0))
這將創建陣列:
array((1, 5., 6., 7.), dtype=[('n', '<i4'), ('x', '<f8'), ('y', '<f8'), ('z', '<f8')])
最后三dt列都是浮點數,當有多個相同型別的連續列時,f8是否有更短的宣告方式?dt
uj5u.com熱心網友回復:
不是更快,但您可以創建一個輔助函式來生成 dtype:
def gen_dtype(names, override=None, default='f8'):
d = dict(zip(names, [default]*len(names)))
d.update(override)
return np.dtype(list(d.items()))
dt = gen_dtype(list('nxyz'), {'n': 'i4'})
輸出:
>>> dt
dtype([('n', '<i4'), ('x', '<f8'), ('y', '<f8'), ('z', '<f8')])
uj5u.com熱心網友回復:
另一種方法是使用字典格式來定義 dtype:
dt2 = np.dtype( {'names': ['n','x','y','z'],
'formats': ['i4'] ['f8']*3} )
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/412355.html
標籤:
下一篇:熊貓多標記資料到熱圖
