簡體   English   中英

切割一個numpy結構化的1-d數組以獲取記錄的一部分

[英]slice a numpy structured 1-d array to get part of a record

我有一個n-out 1-D結構化數組,我想得到一個記錄的一部分。 我試圖弄清楚如何切片這種類型的請求。 這是我的代碼:

summary_stat_list = ['mean', 'variance', 'median', 'kurtosis', 'skewness']
model_summary_stats = np.zeros(5,dtype=[('statistic',
                                                       'object'),
                                           ('f1', 'float'),
                                           ('f2', 'float'),
                                           ('f3', 'float'),
                                           ('m1', 'float'),
                                           ('m2', 'float'),
                                           ('m3', 'float'),
                                           ('t3', 'float'),
                                           ('t2', 'float'),
                                           ('t1', 'float'),
                                           ('prom1', 'float'),
                                           ('prom2', 'float')])
for r in range(model_summary_stats.shape[0]):
    model_summary_stats['statistic'][r] = summary_stat_list[r]

現在,數組看起來像這樣:

[('mean', 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
('variance', 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
('median', 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
('kurtosis', 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
('skewness', 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)]

我的問題是,除了第一個數組的第一個元素外,我怎樣才能獲得所有元素。 也就是說,在'mean'數組中,我想獲得數字條目。

我正在嘗試類似的東西

model_summary_stats[0]['f1':]

要么:

model_summary_stats[0][1:]

但這些都不起作用。 有什么建議。

切片不適用於字段名稱索引。 您必須使用所需字段名稱的列表:

model_summary_stats[0][['f1','f2','f3',etc]

你也可以通過類似的方式獲得該列表

model_summary_stats.dtype.names[1:]

您應該記住,這種多字段索引編寫得很糟糕。 可以檢索值,但不能以這種方式設置值。 你不能跨列進行數學運算。

http://docs.scipy.org/doc/numpy/user/basics.rec.html#accessing-multiple-fields-at-once

不同的dtype可能更有用

dt = np.dtype([('statistic',object),('values',(float,11))])
dt = np.dtype([('statistic',object),('values',(float,8)),('prom',(float,3))])

或者在處理數據時哪些分組最有意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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