迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

修复 Python 中错误 ValueError: Setting an Array Element With a Sequence

作者:迹忆客 最近更新:2023/07/06 浏览次数:

在Python中,数组是最常见和最有用的数据结构之一,是多个值的集合。 数组的元素是通过索引访问的,索引是元素的位置。

您可能在某个时刻以某种方式产生错误 ValueError: setting an array element with a sequence。 这个ValueError主要发生在两种场景; 第一个是当您尝试将多个值分配给单个数组索引时,第二个是当您尝试将无效数据类型分配给定义的数组时。

众所周知,数组本质上是同质的。 它们在整个数组中接受单一数据类型。


Python 中的 Numpy 数组

Numpy 是一个开源库,最常用于度量、线性代数、傅立叶变换等。它由 Travis Oliphant 于 2005 年创建。

在 Python 中,列表为我们提供了数组的用途,但 Numpy 创建者声称他们证明数组比列表快 50 倍。 这是使用 Numpy 数组的核心目的之一。


在 Python 中创建 Numpy 数组

Numpy 数组的语法非常简单。 您必须将 numpy 库导入到您的程序中并相应地使用它。

# import numpy library
import numpy as np

# creating a numpy array
arr = np.array([1,2,4,5,6])

print(arr)

输出:

[1 2 4 5 6]

我们还可以将传统数组转换为 Numpy 数组。

# import numpy library
import numpy as np

conventional_array = [1,2,3,4,5]
print("The data type conventional array is: ",type(conventional_array))

# converting a conventional array into a numpy array
arr = np.array(conventional_array)

print("The data type of numpy array is: ",type(arr))
print(arr)

输出:

The data type conventional array is:  <class 'list'>
The data type of numpy array is:  <class 'numpy.ndarray'>
[1 2 3 4 5]

常规数组的类型属于 list 类,而将其转换为 Numpy 数组后,它现在属于 numpy.ndarray 类。


Python中 ValueError: setting an array element with a sequence 原因

正如所讨论的,当您尝试将多个值分配给单个位置或将不正确的数据类型分配给数组时,Python 中会出现 ValueError:设置带有序列的数组元素错误。 众所周知,数组是同质数据结构,不能在单个数组上存储多种数据类型。

让我们通过示例来理解这两种情况。

# import numpy library
import numpy as np
arr = [1,2,3,4,5,6,7]
numpy_arr = np.array(arr)

# print the element at 0 index, which is the first element
print("The first element of the array: ",numpy_arr[0])

# assign two values (1,2) to the 0th index  --> Error
numpy_arr[0] = 1,2

输出:

The first element of the array:  1
ValueError: setting an array element with a sequence.

正如您在上述程序的最后代码中看到的,当我们尝试将两个值 1,2 分配给 numpy_arr 的 0 索引时,我们得到错误 ValueError: seting an array element with a sequence

这是因为我们只能在索引中存储单个值。 但是,我们可以将其替换为另一个值,以便单个索引指向单个值。

现在,我们来看看第二种情况。

# import numpy library
import numpy as np

# Creating an array
array1 = [1, 2,[0,0],4,5]
print(array1)
print("The data type of the conventional array is: ",type(array1))

# This causes Value error
np_array = np.array(array1, int)

print("\n", np_array)
print("The data type of of numpy array is: ",type(np_array))

输出:

[1, 2, [0, 0], 4, 5]
The data type of the conventional array is:  <class 'list'>
ValueError: setting an array element with a sequence.

在这种情况下,我们分配给 numpy 数组的数据类型是造成此错误的原因。 在此语句 np_array = np.array(array1, int) 中,第二个参数 int 导致了此错误。

正如你所看到的,array1的类是一个列表,所以不可能直接将其转换为int。


修复Python中的 ValueError: setting an array element with a sequence 错误

我们现在已经在上面的示例中看到了导致 ValueError 的原因。 让我们看一下并了解如何修复这个 ValueError。

第一个场景非常简单。 您只能将一个值分配给单个索引。

# import numpy library
import numpy as np

# creating a numpy array
numpy_arr = np.array([1,2,3,4,5])
print(numpy_arr)

# assigning 0 value at the 0th index
numpy_arr[0] = 0
print(numpy_arr)

输出:

[1 2 3 4 5]
[0 2 3 4 5]

在第二种情况下,我们可以使用在每种情况下都接受的通用数据类型,即对象。 让我们在下面的例子中看看。

# import numpy library
import numpy as np

# creating an array
arr = [1,2,[9,8],3,4]

# This causes Value error
np_arr = np.array(arr, object)

print(np_arr)

输出:

[1 2 list([9, 8]) 3 4]

可以看到,我们将数据类型从 int 改为 object 后,程序运行顺利。 因为 object 是通用数据类型,所以它将数组的每一部分都视为一个对象,无论是列表还是单个 int 值。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

修复 Python 中 SyntaxError: Can't Assign to Function Call 错误

发布时间:2023/07/09 浏览次数:165 分类:Python

本文将讨论如何修复 Python 中的 SyntaxError: Can't Assign to Function Call 错误。Python 中的语法错误 计算机编程的语法是开发人员必须有效遵循以避免代码错误的语法或正确的书写结构。

修复 Python中错误 NameError: Input Name Is Not Defined

发布时间:2023/07/09 浏览次数:55 分类:Python

在Python 3.0版本以下,有两个内置方法来获取用户的输入。 一个是输入函数,另一个是 raw_input 函数。 但后来,在 3.X 版本中,两者被结合起来并成为一个单一的输入函数。修复Python中 NameError

Python 错误 TypeError: Int Object Is Not Callable

发布时间:2023/07/08 浏览次数:142 分类:Python

本篇文章将讨论所有场景以及修复 TypeError: 'int' object is not callable in Python 的解决方案。python 中添加缺少的运算符以修复 TypeError: 'int' object is not callable 有时您可能忘记在代码中添加数学运算符。

Python 回溯最近一次调用

发布时间:2023/07/08 浏览次数:74 分类:Python

本篇文章将介绍如何修复 Python 中的回溯错误。修复 Python 中的 Traceback (most recent call last) 错误一些常见的回溯错误包括 IndexError、ImportError、NameError、ValueError、SyntaxError、TypeError、AttributeError 和

Python 中 ImportError: Cannot Import Name _Remove_dead_weakref

发布时间:2023/07/08 浏览次数:181 分类:Python

在Python中,我们使用模块来定义和存储文件中的功能和类,这些文件可以导入到其他程序中。 我们使用 import 语句从模块导入函数和对象。Python 中 ImportError: cannot import name _remove_dead_weakref错误

Python 中 Error: else & elif Statements Not Working 错误

发布时间:2023/07/08 浏览次数:166 分类:Python

我们可以将 Python 中的 else 语句与 elif 和 if 语句结合起来。 但是,在代码中运行 if...elif...else 语句时,您可能会收到Python 中 SyntaxError: invalid syntax 的错误。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便