ValueError: setting an array element with a sequence...

报错:ValueError: setting an array element with a sequence…

案例1:numpy库使用numpy.array转换list

a是一个list,其包含两个元组,使用np.array进行转换,会报错:

import numpy as np
a = ([([1, 2, 3], 0, 1.0, [3, 4], 0), ([1, 2, 3], 0, 1.0, [3, 4], 0)])
a = np.array(a)
ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 2 dimensions. The detected shape was (2, 5) + inhomogeneous part.

有的numpy版本不报错而是警告:

VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify ‘dtype=object’ when creating the ndarray.

加上 dtype=object 就不会再报错或警告:

import numpy as np
a = ([([1, 2, 3], 0, 1.0, [3, 4], 0), ([1, 2, 3], 0, 1.0, [3, 4], 0)])
a = np.array(a, dtype=object)

简单介绍一下此处的背景,在python中,list无法被数组进行索引:

a = ([([1, 2, 3], 0, 1.0, [3, 4], 0), ([1, 2, 3], 0, 1.0, [3, 4], 0)])
index = [1, 0]
b = a[index]
print(f'{b}')
TypeError: list indices must be integers or slices, not list

将list转换成numpy,然后就可以使用数组进行索引了:

import numpy as np
a = ([([1, 2, 3], 0, 1.0, [3, 4], 0), ([1, 2, 3], 0, 1.0, [3, 4], 0)])
a = np.array(a, dtype=object)
index = [1, 0]
b = a[index]
print(f'{b}')

输出为:
在这里插入图片描述

案例2:新版gym库使用state = env.reset()

新版本gym库的env.reset()返回是两个元组,其中第二个为dict,一般不包含数据。若直接使用state = env.reset()返回的数值如下所示:
在这里插入图片描述
因此,继续原来的操作(状态分析转换等等)就会报错ValueError: setting an array element with a sequence,正确的写法如下所示,这样就能直接得到agent所对应的状态了:

state, _ = env.reset()

同理,env.step(action)的返回值也有所改变,返回参数由原来的四个改为了五个,如果使用下面代码则会报错(ValueError: too many values to unpack (expected 4)):

next_state, reward, done, _ = env.step(action)

需要使用如下的修改代码:

next_state, reward, done, _, _ = env.step(action)

新版gym库返回参数的详细定义可以参考官方网站:
https://www.gymlibrary.dev/api/core/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/250911.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nodejs微信小程序+python+PHP的微博网络舆情分析系统-计算机毕业设计推荐

(4)微博信息交流:在首页导航栏上我们会看到“微博信息交流”这一菜单,我们点击进入进去以后,会看到所有管理员在后台发布的交流信息; (5)新闻资讯:用户可以查看新闻资讯信…

关于“Python”的核心知识点整理大全24

10.1.6 包含一百万位的大型文件 前面我们分析的都是一个只有三行的文本文件,但这些代码示例也可处理大得多的文件。 如果我们有一个文本文件,其中包含精确到小数点后1 000 000位而不是30位的圆周率值,也可 创建一个包含所有这些数字的字符串。…

HiveSql语法优化三 :join优化

前面提到过:Hive拥有多种join算法,包括Common Join,Map Join,Bucket Map Join,Sort Merge Buckt Map Join等;每种join算法都有对应的优化方案。 Map Join 在优化阶段,如果能将Common Join优化为…

Java 基础学习(十二)文本I/O、日期与时间API

1 文本 I/O 1.1 字符流 1.1.1 什么是字符流 在Java中,字符流是指提供了基于字符的I/O能力的API。 Java 1.0中提供的基于字节的I/O流API只能支持8位字节流,无法妥善地处理16位Unicode字符。由于需要支持Unicode处理国际化字符,因此Java 1.…

TCP/IP详解——HTTPS 协议

文章目录 1. HTTPS 协议1.1 HTTPS 原理1.2 HTTPS 过程1.3 从数据包角度看 HTTPS 交互过程1.4 常见的 HTTPS 数据包解码1.4.1 ClientHello 数据包1.4.2 ServerHello 数据包 1.5 思考 1. HTTPS 协议 1.1 HTTPS 原理 HTTPS概念 HTTPS 是以安全为目标的HTTP通道,并不…

小 cookie,大作用:探索网站中的隐私追踪器(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

持续集成交付CICD:Jenkins使用GitLab共享库实现基于Ansible的CD流水线部署前端应用的蓝绿发布

目录 一、实验 1.蓝绿发布准备 2.Jenkins使用GitLab共享库实现基于Ansible的CD流水线部署前端应用的蓝绿发布 二、问题 1.手动构建Jenkins前端项目CI流水线报错 2.如何优化手动构建流水线选项参数 一、实验 1.蓝绿发布准备 (1)环境 表1 蓝绿发布…

flume:Ncat: Connection refused.

一:nc -lk 44444 和 nc localhost 44444区别 nc -lk 44444 和 nc localhost 44444 是使用 nc 命令进行网络通信时的两种不同方式。 1. nc -lk 44444: - 这个命令表示在本地监听指定端口(44444)并接受传入的连接。 - -l 选项…

前端视角看 Docker : 基础命令全面指南

引言 Docker是一种开源的容器化平台,它允许开发者将应用程序和其依赖打包在一个轻量级的、可移植的容器中。这使得应用程序在不同的环境中部署变得简单且高效。本文将介绍Docker的一些基础命令和概念,帮助初学者快速上手。 1. Docker简介 Docker使用…

054:vue工具 --- BASE64加密解密互相转换

第054个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

云原生之深入解析使用Telepresence轻松在本地调试和开发Kubernetes应用程序

一、 准备 telepresence 下载:https://www.telepresence.io/docs/latest/install/kubectl 下载:https://kubernetes.io/docs/tasks/tools/ 二、版本检测 $telepresence version Client: v2.5.3 (api v3) Root Daemon: not running User Daemon: not r…

css文本样式的使用

在CSS中,可以通过以下属性来设置文本的样式: color:设置文本的颜色。 p {color: red; }效果图: font-size:设置文本的字体大小。 p {font-size: 16px; }效果图: font-family:设置文本的字…

uniGUI学习之UniHTMLMemo1富文本编辑器

1]系统自带的富文本编辑器 2]jQueryBootstarp富文本编辑器插件summernote.js 1]系统自带的富文本编辑器 1、末尾增加<p> 2、增加字体 3、解决滚屏问题 4、输入长度限制问题 5、显示 并 编辑 HTML源代码(主要是图片处理) 1、末尾增加<p> UniHTMLMemo1.Lines…

【星环云课堂大数据实验】kafka消息发布与订阅

文章目录 一、Kafka概述二、实验环境三、实验准备四、实验目的五、实验步骤5.1、创建Kafka Topic5.2、Kafka消息发布5.3、Kafka消息订阅 六、实验感悟 一、Kafka概述 Kafka是由Apache软件基金会开发的一个开源流处理平台&#xff0c;由Scala和Java编写。该项目的目标是为处理实…

持续集成交付CICD:Jenkins使用GitLab共享库实现基于Ansible的CD流水线部署前后端应用

目录 一、实验 1.部署Ansible自动化运维工具 2.K8S 节点安装nginx 3.Jenkins使用GitLab共享库实现基于Ansible的CD流水线部署前后端应用 二、问题 1.ansible安装报错 2.ansible远程ping失败 3. Jenkins流水线通过ansible命令直接ping多台机器的网络状态报错 一、实验 …

Hadoop分布式配置小白篇(附加各阶段问题解决方式)

看的黑马的课&#xff0c;记录一下配置步骤 目录 1.VMware安装&#xff1a; 方法1&#xff1a; 方法2&#xff1a; 2.创建虚拟机 1.ISO镜像文件获取&#xff08;CentOS&#xff09;&#xff1a; 2.创建&#xff08;简略步骤&#xff09; 3.克隆虚拟机&#xff08;克隆伪…

idea第一次提交到git(码云)

1.先创建一个仓库 2.将idea和仓库地址绑定 2.将idea和仓库地址绑定

《Kotlin核心编程》笔记:集合、序列与内联函数

集合的高阶函数API map 操作 val list listOf(1, 2, 3, 4, 5, 6) val newList list.map { it * 2 }当然&#xff0c;在 Java 8 中&#xff0c;现在也能像Kotlin那样去操作集合了。 上面的方法实际上就是一个高阶函数&#xff0c;它接收的参数实际上就是一个函数&#xff0…

使用Pytorch从零开始构建LoRA

引言 在这篇博文中&#xff0c;我将向大家展示如何使用Pytorch从头开始构建 LoRA。LoRA 是Low-Rank Adaptation或Low-Rank Adapters的缩写&#xff0c;它提供了一种高效且轻量级的方法来微调预先存在的语言模型。这包括BERT和RoBERTa等掩码语言模型&#xff0c;以及GPT、Llama…

微服务实战系列之ZooKeeper(中)

前言 昨日博主的第一篇ZooKeeper&#xff0c;对它自身具备的能力做了初步介绍。书接上文&#xff0c;马不停蹄&#xff0c;我们继续挖掘它内在的美&#xff0c;充分把握它的核心与脉络。 揭秘ZooKeeper Q&#xff1a;集群一致性协同是如何进行的 我们讲到分布式&#xff0c;…