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

numpy使用0.1步长循环时存储结果到矩阵出现IndexError报错

问题原因

numpy数组仅支持整数、切片、布尔数组等类型作为索引。步长为1时,循环变量v、w的值均为整数,和res矩阵的索引值刚好重合,因此可以正常赋值。步长改为0.1后,循环变量为浮点数,不符合索引类型要求,因此触发IndexError。

解决方法

推荐使用enumerate同时遍历参数序列的索引和对应数值,用整数索引对res矩阵赋值:

import numpy as np
# 预先定义参数序列
v_list = np.arange(0,5,0.1)
w_list = np.arange(0,5,0.1)
# 初始化res矩阵,大小和参数序列长度匹配
res = np.zeros((len(v_list), len(w_list)), dtype=int)

# 遍历索引和对应参数值
for i, v in enumerate(v_list):
    for j, w in enumerate(w_list):
        C1 = v 
        C2 = w
        # 原有计算逻辑,得到变量x
        # ...
        if x < 0:
            res[i,j]=1
        else:
            res[i,j]=0

如果后续需要根据v、w的实际数值查询对应结果,可以通过参数序列匹配索引:

# 示例:查询v=1.5、w=2.0对应的结果
target_v = 1.5
target_w = 2.0
i = np.argmin(np.abs(v_list - target_v))
j = np.argmin(np.abs(w_list - target_w))
print(res[i,j])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 07:57:04