Python 中 IndexError: too many indices for array 错误
当我们在访问一维 numpy 数组时指定过多的索引值时,会出现 Python“IndexError: too many indices for array”。 要解决此错误,需要声明一个二维数组或更正索引访问器。
下面是一个产生上述错误的示例代码
import numpy as np
arr = np.array([1, 2, 3])
print(arr.shape) # 👉️ (3, ) 👈️ this is one-dimensional array
# ⛔️ IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed
print(arr[:, 0])
我们有一个一维 numpy
数组,但指定了 2 个导致错误的索引。
如果我们有一个一维数组,则可以使用单个索引或切片。
import numpy as np
arr = np.array([1, 2, 3])
print(arr[0]) # 👉️ 1
print(arr[0:2]) # 👉️ [1 2]
我们可以改为声明一个二维 numpy
数组。
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6]])
print(arr.shape) # 👉️ (3, 2) 👈️ this is two-dimensional array
print(arr[:, 0]) # 👉️ [1 3 5]
上面的示例使用 2 个索引来获取每个嵌套数组的第一个元素。
我们可以打印您尝试索引的数组以检查您是否包含您期望的内容。
如果我们只有一个一维数组,请在访问它时使用单个索引,例如 arr[0]
或 arr[0:3]
。
错误的另一个常见原因是声明一个二维数组,其中并非所有嵌套数组都具有相同类型和大小的项目。
import numpy as np
# 👇️ declared one-dimensional array (second nested list has only 1 item)
arr = np.array([[1, 2], [3], [5, 6]])
print(arr.shape) # 👉️ (3,)
# ⛔️ IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed
print(arr[:, 0])
请注意
,第二个嵌套数组只有一项,因此我们最终声明了一个一维数组。
numpy
数组是一个表示固定大小项目的多维同构数组的对象。
如果我们向第二个嵌套数组添加第二个项目,我们将声明一个二维数组。
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6]])
print(arr.shape) # 👉️ (3, 2)
print(arr[:, 0]) # 👉️ [1 3 5]
请注意
,数组的形状是(3, 2)
,而前面示例中的数组形状是(3,)
。
一旦声明了二维数组,就可以使用两个索引来访问嵌套数组中的项。
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6]])
# ✅ 从前两个嵌套数组中获取第一项
print(arr[0:2, 0]) # 👉️ [1 3]
# ✅ 从前两个嵌套数组中获取最后一项
print(arr[0:2, -1]) # 👉️ [2 4]
总结
当我们在访问一维 numpy 数组时指定过多的索引值时,会出现 Python“IndexError: too many indices for array”。 要解决此错误,请声明一个二维数组或更正索引访问器。
相关文章
Python for 循环中的下一项
发布时间:2023/04/26 浏览次数:179 分类:Python
-
本文讨论了 Python 中的 for 循环以及如何通过使用 for 循环和示例来跳过列表的第一个元素。
Python While 循环用户输入
发布时间:2023/04/26 浏览次数:148 分类:Python
-
我们可以在 while 循环中使用 input() 函数来输入数据,直到在 Python 中满足某个条件。
在 Python 中将整数转换为罗马数字
发布时间:2023/04/26 浏览次数:87 分类:Python
-
本篇文章将介绍在 Python 中将整数转换为罗马数字。以下是一个 Python 程序的实现,它将给定的整数转换为其等效的罗马数字。
在 Python 中将罗马数字转换为整数
发布时间:2023/04/26 浏览次数:144 分类:Python
-
本文讨论如何在 Python 中将罗马数字转换为整数。 我们将使用 Python if 语句来执行此操作。 我们还将探讨在 Python 中将罗马数字更改为整数的更多方法。
在 Python 中读取 gzip 文件
发布时间:2023/04/26 浏览次数:70 分类:Python
-
本篇文章强调了压缩文件的重要性,并演示了如何在 Python 中使用 gzip 进行压缩和解压缩。
在 Python 中锁定文件
发布时间:2023/04/26 浏览次数:141 分类:Python
-
本文解释了为什么在 Python 中锁定文件很重要。 这讨论了当两个进程在没有锁的情况下与共享资源交互时会发生什么的示例,为什么在放置锁之前知道文件状态很重要,等等
在 Python 中将 PDF 转换为文本
发布时间:2023/04/26 浏览次数:196 分类:Python
-
在本教程中,我们将学习如何使用 Python 使用 PyPDF2、Aspose 和 PDFminer 将 PDF 文档转换为文本文件。
在 Python 中创建临时文件
发布时间:2023/04/26 浏览次数:53 分类:Python
-
本文讲解了tempfile库函数的四个子函数:TemporaryFile、NamedTemporaryFile、mkstemp、TemporaryDirectory。 每个部分都提供了适当的程序,以简化对概念的理解。