gpt4 book ai didi

python - 切片 numpy 结构化一维​​数组以获取记录的一部分

转载 作者:太空宇宙 更新时间:2023-11-03 15:05:20 26 4
gpt4 key购买 nike

我有一个 numpy 的一维结构化数组,我只想取出一条记录的一部分。我试图弄清楚如何分割这种类型的请求。这是我的代码:

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)]

我的问题是,我怎样才能得到第一个数组中除了第一个元素以外的所有元素。也就是说,在“平均”数组中,我只想获取数字条目。

我正在尝试类似的东西

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))])

或者在处理数据时最有意义的分组。

关于python - 切片 numpy 结构化一维​​数组以获取记录的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33483912/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com