[英]How do I create a compound dtype numpy array from existing individual vectors?
我正在學習 numpy 中的dtypes
,我有以下疑問。
我可以如下定義復合類型:
myrecord = np.dtype([
('col1', 'u4'),
('col2', 'f8')
])
如果我有兩個單獨的 numpy 數組:
a=np.array([1,2,3,4])
b=np.array([10.1,20.1,30.1,40.1])
我將如何生成my_record
類型的第三個數組c
?
這是我嘗試過的,它不起作用,但它可能會讓我知道我在尋找什么:
c=np.array((a,b), dtype=myrecord)
這將是預期的輸出:
array([(1, 10.1),
(2, 20.1),
(3, 30.1),
(4, 40.1),],
dtype=[('col1', '<u4'),('col2', '<f8')])
您快到了! 創建c
時,您必須將a
和b
列壓縮在一起:
import numpy as np
myrecord = np.dtype([
('col1', 'u4'),
('col2', 'f8')
])
a=np.array([1,2,3,4])
b=np.array([10.1,20.1,30.1,40.1])
c = np.array(list(zip(a, b)), dtype=myrecord)
然后當我們查看c
時,您會得到想要的結果:
>>>c
array([(1, 10.1), (2, 20.1), (3, 30.1), (4, 40.1)],
dtype=[('col1', '<u4'), ('col2', '<f8')])
您的示例代碼正在嘗試創建一個數組元組。 你真正想要的是一個元組數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.