概述
我有一个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:]
您应该记住,这种多字段索引开发不完善.可以检索值,但是您不能以这种方式设置值.而且您不能跨列进行数学运算.
不同的dtype可能更有用
dt = np.dtype([('statistic',object),('values',(float,11))])
dt = np.dtype([('statistic',object),('values',(float,8)),('prom',(float,3))])
或在处理数据时最有意义的分组方式.
标签:structured-array,arrays,python,numpy
最后
以上就是美好冬瓜为你收集整理的python获取数组一部分_python-切片一个numpy结构的一维数组以获取记录的一部分的全部内容,希望文章能够帮你解决python获取数组一部分_python-切片一个numpy结构的一维数组以获取记录的一部分所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复