首页 > 解决方案 > IndexError: too many indices for array ... 运行此代码时出错

问题描述

我收到以下错误

IndexError:数组的索引过多

运行此代码时:

import numpy as np
import matplotlib.pyplot as plt

y = np.array([[208500, 181500,      
               223500, 
           140000, 250000, 143000, 
           307000, 200000, 129900, 
           118000]])

X = np.array([[1710, 1262, 1786, 
           1717, 2198, 1362, 
           1694, 2090, 1774, 
           1077], 
           [2003, 1976, 2001, 
            1915, 2000, 1993, 
            2004, 1973, 1931, 
            1939]])

data=[X, y]

# print data
print(data)

input= np.array(data)
print(input)

# Setup matrices
m = np.shape(input)[0]
X=np.matrix([np.ones(m),input[:,0]]).T
y = np.matrix(input[:,1]).T

有人可以帮我找出问题所在吗?

标签: pythonnumpy

解决方案


首先,您命名的变量input是一维数组。您不能使用两个索引来访问一维数组。一个很好的例子是你不能只用一个索引访问一个矩阵,或者你不能访问一个有两个索引的向量。

input如果执行,您可以检查大小input.shape

如我所见,您在input变量中有一个包含两个嵌套数组的一维数组。如果要访问第一个数组,则应执行 input[0] 并在该位置的数组中附加索引,例如input[0][0,0]

第一个数组是 2D 形状,如果你执行你可以检查它 input[0].shape 所以,你应该使用 2 个索引来访问它。

如果您需要进一步的帮助,请告诉我。


推荐阅读