You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python分割数据数组时报slice indices must be integers错误如何解决

报错原因

Python(包括numpy等常用数据处理库)要求切片的索引必须为整数类型、None或者实现了__index__方法的对象。你计算得到的x虽然数值为90,但除法运算/在Python3中默认返回浮点数类型,也就是x的实际类型是float,值为90.0,不符合切片索引的整数类型要求,因此触发报错。

解决方案

可以通过以下任意一种方式处理:

  • 直接将计算结果强制转换为整数
    split_ratio=[3,1,1]
    x=int(split_ratio[0]/sum(split_ratio)*data.shape[0])
    print(x)
    print(data[0:x,:])
    
    注意该方式会直接截断浮点数的小数部分,若计算结果存在浮点精度误差(例如本应为90的结果被计算为89.99999999999999),强制转换会得到89。
  • 使用四舍五入获取整型索引,避免浮点精度误差影响
    split_ratio=[3,1,1]
    x=round(split_ratio[0]/sum(split_ratio)*data.shape[0])
    print(x)
    print(data[0:x,:])
    
  • 若有向下取整/向上取整的业务需求,可使用math.floor或math.ceil处理后再转整型
    import math
    split_ratio=[3,1,1]
    # 向下取整
    x=math.floor(split_ratio[0]/sum(split_ratio)*data.shape[0])
    # 向上取整
    # x=math.ceil(split_ratio[0]/sum(split_ratio)*data.shape[0])
    print(x)
    print(data[0:x,:])
    

内容的提问来源于stack exchange,提问作者mesut_comak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 02:06:05