当前位置: 首页 > news >正文

解决方案:ValueError: setting an array element with a sequence.

ValueError: setting an array element with a sequence.

报错原因

使用np.asarray()np.asanyarray()函数将对象转换为数组时,如果对象在第一维之后形状不均匀(即内部子序列长度不一致),就会出现该错误。例如将[[1, 2], [3, 4, 5]]这样的列表转换为数组时,由于内部两个子列表长度不同,会触发错误。部分numpy版本不会报错,而是发出VisibleDeprecationWarning警告,提示从参差不齐的嵌套序列创建ndarray已被弃用。

import numpy as np# 定义一个形状不均匀的列表
ragged_list = [[1, 2], [3, 4, 5]]try:# 尝试使用 np.asarray 转换为数组arr = np.asarray(ragged_list)print(arr)
except ValueError as e:print(f"ValueError: {e}")

在上述代码中,我们定义了一个形状不均匀的列表ragged_list,当使用np.asarray()将其转换为数组时,会尝试触发ValueError异常(不同版本行为可能不同,有的版本会给出警告)。

解决方法

根据错误和警告提示,在使用np.asarray()np.asanyarray()函数时,指定dtype=object参数,可以避免报错或警告,此时得到的数组元素是包含原始子序列的对象。如果是在np.save()函数中遇到该问题,由于np.save()内部会调用np.asanyarray(),为避免改变内置函数,可在外部将形状不均匀的列表先转换为np.ndarray(转换时指定dtype=object ),再将转换后的数组传入np.save()

使用np.asarray时指定dtype=object
import numpy as np# 定义一个形状不均匀的列表
ragged_list = [[1, 2], [3, 4, 5]]# 指定 dtype=object 进行转换
arr = np.asarray(ragged_list, dtype=object)
print(arr)

在这个代码中,我们在使用np.asarray()时指定了    dtype=object   ,这样就可以避免报错或警告,成功将形状不均匀的列表转换为数组。

np.save中处理形状不均匀列表
import numpy as np# 定义一个形状不均匀的列表
ragged_list = [[1, 2], [3, 4, 5]]# 先将形状不均匀的列表转换为 np.ndarray,指定 dtype=object
arr = np.asarray(ragged_list, dtype=object)# 保存数组到文件
np.save('ragged_array.npy', arr)# 读取保存的文件进行验证
loaded_arr = np.load('ragged_array.npy', allow_pickle=True)
print(loaded_arr)

在使用np.save()保存形状不均匀列表时的正确处理方式,先将列表转换为指定dtype=object的数组,再进行保存,最后读取文件验证结果。

有时候和numpy版本也有关系

相关文章:

  • 主成分分析(PCA)是什么?简易理解版
  • web 自动化之 selenium+webdriver 环境搭建及原理讲解
  • 第三天 车联网云架构
  • CAS、CAS自旋、CAS自旋锁、CLH锁与Java AQS:深入理解并发编程核心机制
  • stable diffusion的attention-map:提取和可视化跨注意力图
  • DRAM详解
  • 【Electron】electron-vue 借助 element-ui UI 库助力桌面应用开发
  • MIST:一键解锁 macOS 历史版本,旧系统安装不再难!
  • 学习黑客 MAC 地址深入了解
  • 问题 | 低空经济未来发展前景机遇及挑战
  • C++ 工具链与开发实践:构建安全、高效与创新的开发生态
  • 探索大语言模型(LLM):词袋法(Bag of Words)原理与实现
  • 【愚公系列】《Manus极简入门》026-市场分析专家:“市场洞察家”
  • 【JavaScript】二十九、垃圾回收 + 闭包 + 变量提升
  • Python实例题:Python获取喜马拉雅音频
  • laravel 使用异步队列,context带的上下文造成反序列化出问题
  • day05_java中常见的运算符
  • python学生作业提交管理系统-在线作业提交系统
  • Hutool的`BeanUtil.toBean`方法详解
  • 自定义Widget开发:自定义布局实现
  • 国家税务总局泰安市税务局:山东泰山啤酒公司欠税超536万元
  • 98年服装“厂二代”:关税压力下,我仍相信中国供应链|湃客Talk
  • 大四本科生已发14篇SCI论文?重庆大学:成立工作组核实
  • 债券市场“科技板”来了:哪些机构能尝鲜,重点支持哪些领域
  • 从黄土高原到黄浦江畔,澄城樱桃品牌推介会明日在上海举办
  • 甘怀真:天下是神域,不是全世界