簡體   English   中英

如何從現有的單個向量創建復合 dtype numpy 數組?

[英]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時,您必須將ab列壓縮在一起:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM