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

我有一个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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值