循环步骤为0.1,但尝试将结果存储到矩阵中时出现索引错误

2024-04-18 10:43:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个使用0.1而不是1的步骤的循环。但是,现在我不知道如何将结果存储到矩阵中。当我使用步骤1循环时,我可以使用这些步骤作为结果矩阵的索引,但当使用步骤0.1时,这不起作用

`for v in np.arange(0,5,0.1):
    for w in np.arange(0,5,0.1):
        C1 = v 
        C2 = w
        ...
        if x < 0:
            res[v,w]=1
        else:
            res[v,w]=0`

res[v,w]=0索引器错误:只有整数、片(:)、省略号(...)、numpy.newaxis(None)和整数或布尔数组是有效的索引


2条回答

浮点数不是有效的索引。您只需要使用整数进行索引

试试这个:

temp1 = np.arange(0, 5, 0.1)
temp2 = np.arange(0, 5, 0.1)
res = np.zeros((temp1.shape[0], temp2.shape[0]))
for i, v in enumerate(temp1):
    for j, w in enumerate(temp2):
        ...
        if x < 0:
           res[i, j] = 1

您可以使用enumerate函数来获取索引和值。例如,您可以使用:

for i, v in enumerate(np.arange(0,5,0.1)):
    for j, w in enumerate(np.arange(0,5,0.1)):
        # Inner loop body

现在,ij可以用于索引。例如,您现在可以使用res[i,j] = ...

相关问题 更多 >