【发布时间】:2018-03-27 18:40:54
【问题描述】:
我在尝试切片时收到错误“IndexError: too many indices for array”。
我可以打印数组的每个字段,如下所示:
vector = np.random.choice(data)
print(vector)
vec1 = vector[-1]
print(vec1)
vec2 = vector[1]
print(vec2)
(5.5, 2.5, 4., 1.3, '鸢尾花')
鸢尾花
2.5
当我添加那行时:
vec3 = vector[:-1]
我收到错误:
IndexError: 数组索引过多
这可能是什么问题?
//编辑
我从 iris 文件中获取数据
names = ['sepal length', 'sepal width', 'petal length', 'petal width', 'class']
data = np.genfromtxt('iris.data', delimiter=',', dtype=None, encoding=None, names=names)
我还检查了 vecotr 的类型
print(type(vector))
类'numpy.void'
【问题讨论】:
-
你真的应该在问调试问题时发minimal reproducible example。
-
初始化
vector = (5.5, 2.5, 4., 1.3, 'Iris-versicolor'),我没有收到任何错误。所以一定有其他原因导致了这个问题。请举一个完整的例子。 -
genfromtxt带有这些参数会返回一个结构化数组。查看data.dtype和data.shape。然后vector是相同dtype的单个元素数组。