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

numpy的array/asarray/asanyarray的格式转化错误问题解决

关于numpy的array()、asarray()、asanyarray()

当前numpy版本:1.26.3

有时一些依赖numpy的旧项目,在运行时,会出现如下错误

ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part

这个ValueError错误通常发生在你尝试将一个序列(比如列表或元组)赋值给一个数组(numpy数组)的元素时,而这个数组元素的大小与序列中的元素数量不匹配。简单来说,就是你试图把一个长度大于1的序列放入一个一维数组的单个位置中,或者试图把一个序列放入一个二维数组的单个位置中,而这个位置应该存放一个与序列长度相同的子序列。

解决办法

降低numpy的版本,这里使用conda直接安装1.23.5的版本

conda install numpy==1.23.5

安装完成后,验证一下

import numpy as nparr= [[1,2],[1,2,3]]
np.asarray(arr) # 或者使用 asanyarray()

使用时,提示了一下waring

/tmp/ipykernel_105515/1083838339.py:1: 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.np.asarray(arr)

上面,提示了一个warring,勉强接受了,当然可以再找更旧的numpy版本,应该就不会出现这个问题,比如1.15.0版本的是默认直接转化的,不给任何提示的;

查看一下转化后的数据结构,如下所示,数组的元素转化为了list

array([list([1, 2]), list([1, 2, 3])], dtype=object)

新版本的asnumpy、asanynumpy是不支持这种,维度不相同的格式转化,我们最后看看numpy的array()、asarray()、asanyarray()这几个的作用

1、numpy.array()

作用:
numpy.array(object, dtype=None, copy=True, order=‘K’, subok=False, ndmin=0) 函数用于创建一个数组。

参数和返回值:
参数:
object:数组的输入数据,可以是列表、元组、其他数组或者其他可迭代对象。
dtype(可选):所需的数组数据类型,可以是字符串、类型对象或者 None。如果未提供,则将根据输入数据推断出数据类型。
copy(可选):如果为 True(默认),则复制输入数据;如果为 False,则尽可能地使用输入数据的视图。
order(可选):创建数组时使用的存储顺序,可以是 ‘C’(按行存储)或 ‘F’(按列存储)。
subok(可选):如果为 True,则返回一个与 object 相同类型的子类数组;如果为 False(默认),则返回一个基类数组。
ndmin(可选):生成的数组的最小维度。

返回值:返回一个新的numpy数组。

注意事项:
array 函数用于将输入数据转换为数组。
输入数据可以是列表、元组、其他数组或者其他可迭代对象。
生成的数组的数据类型可以通过 dtype 参数指定,如果未提供,则将根据输入数据推断出数据类型。
可以通过 copy 参数控制是否复制输入数据。如果 copy=True(默认),则复制输入数据;如果 copy=False,则尽可能地使用输入数据的视图。
order 参数用于指定生成数组时的存储顺序。默认情况下,使用 ‘K’,即保持输入数据的存储顺序。可以选择按行存储(‘C’)或按列存储(‘F’)。
subok 参数用于控制返回的数组类型。如果为 True,则返回一个与输入数据相同类型的子类数组;如果为 False(默认),则返回一个基类数组。
ndmin 参数用于指定生成数组的最小维度。默认情况下,数组的维度由输入数据的维度决定。

2、numpy.asarray()

作用:
numpy.asarray(a, dtype=None, order=None) 函数将输入转换为数组。

参数和返回值:
参数:
a:输入数据,可以是列表、元组、其他数组或者其他可迭代对象。
dtype(可选):所需的数组数据类型,可以是字符串、类型对象或者 None。如果未提供,则将根据输入数据推断出数据类型。
order(可选):创建数组时使用的存储顺序,可以是 ‘C’(按行存储)或 ‘F’(按列存储)。

返回值:返回一个新的数组

注意事项:
asarray 函数用于将输入数据转换为数组,与 array 函数的功能相似。
输入数据可以是列表、元组、其他数组或者其他可迭代对象。
生成的数组的数据类型可以通过 dtype 参数指定,如果未提供,则将根据输入数据推断出数据类型。
可以通过 order 参数控制生成数组时的存储顺序。默认情况下,使用输入数据的存储顺序。
如果输入数据已经是一个数组,asarray 函数将原样返回,而不是复制数组。
与 array 函数不同,asarray 函数不具有 copy、subok 和 ndmin 参数。

3、numpy.asanyarray()

作用:
numpy.asanyarray(a, dtype=None) 函数将输入转换为 ndarray 对象,但保留子类数组的子类性质。

参数和返回值:
参数:
a:输入数据,可以是列表、元组、其他数组或者其他可迭代对象。
dtype(可选):所需的数组数据类型,可以是字符串、类型对象或者 None。如果未提供,则将根据输入数据推断出数据类型。
返回值:返回一个新的numpy 数组。

注意事项
asanyarray 函数用于将输入数据转换为 ndarray 对象,与 array 函数和 asarray 函数不同的是,它保留了子类数组的子类性质。
输入数据可以是列表、元组、其他数组或者其他可迭代对象。
生成的数组的数据类型可以通过 dtype 参数指定,如果未提供,则将根据输入数据推断出数据类型。
如果输入数据已经是一个数组,asanyarray 函数将原样返回,而不是复制数组。
asanyarray 函数不具有 order 参数。

4、三者的区别

numpy.array 用于创建数组,适用于各种输入数据类型。
numpy.asarray 用于将输入转换为数组,与 array 函数的功能相似,但不具有 copy、subok 和 ndmin 参数。
numpy.asanyarray 用于将输入转换为 ndarray 对象,保留子类数组的子类性质,不具有 order 参数。

内容来源:https://baijiahao.baidu.com/s?id=1769755191352203083&wfr=spider&for=pc

相关文章:

numpy的array/asarray/asanyarray的格式转化错误问题解决

关于numpy的array()、asarray()、asanyarray() 当前numpy版本:1.26.3 有时一些依赖numpy的旧项目,在运行时,会出现如下错误 ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1…...

C++:STL容器-map

C:STL容器-map 1. map构造和赋值2. map大小和交换3. map插入和删除4. map查找和统计5. map容器排序 map中所有元素都是pair(对组) pair中第一个元素为key(键),起到索引作用,第二个元素为value(实…...

你好,复变函数2.0

第一行&#xff1a;0 或 1 第二行&#xff1a;&#xff08;空格&#xff09;函数&#xff08;后缀&#xff09; #pragma warning(disable:4996) #include <easyx.h> #include <stdio.h> #include <math.h> #define PI 3.141592653589793 #define E 2.71828…...

汉语拼音字母表 (声母表和韵母表)

汉语拼音字母表 [声母表和韵母表] 1. 汉语拼音声母表2. 汉语拼音韵母表References 1. 汉语拼音声母表 声母是韵母前的辅音&#xff0c;与韵母一起构成一个完整的音节。 辅音是发声时&#xff0c;气流在口腔中受到各种阻碍所产生的声音&#xff0c;发音的过程即是气流受阻和克…...

C++20中的Feature Test Mocros

C20定义了一组预处理器宏&#xff0c;用于测试各种语言和库的feature。 Feature Test Mocros(特性测试宏)是C20中引入的一种强大机制&#xff0c;用于应对兼容性问题。Feature Test Mocros作为预处理器指令(preprocessor directives)出现&#xff0c;它使你能够在编译过程中仔细…...

运维iptables与firewalld详解

iptables与firewalld 一、iptables 1.1 iptables简介 iptables 是一个在 Linux 系统上用来配置 IPv4 数据包过滤规则的工具。它允许系统管理员控制数据包的流向&#xff0c;实现网络安全、网络地址转换&#xff08;NAT&#xff09;和端口转发等功能。 具体来说&#xff0c;…...

适用于 Android 的 几种短信恢复应用程序

Android 设备上的短信丢失可能由于多种原因而丢失&#xff0c;例如意外删除、恢复出厂设置、系统崩溃或病毒攻击。是否有应用程序可以恢复 Android 上已删除的短信&#xff1f;幸运的是&#xff0c;有几款短信恢复应用程序可以扫描您的 Android 手机并从内存或 SIM 卡中检索已删…...

Lodash-js工具库

1. Lodash 简介 Lodash 是一个现代 实用工具库&#xff0c;提供了许多有用的函数&#xff0c;帮助开发者处理常见的编程任务&#xff0c;如数组操作、对象处理、字符串处理等。Lodash 使得代码更简洁、更高效&#xff0c;极大地提高了开发效率。Lodash 的设计灵感来自于 Under…...

Makefile实战论(一)

为什么写这个呢&#xff0c;其实我有系统学过Makefile和CMake。但是因为用的不是很多或者说没有深入的使用场景&#xff0c;导致我不是很熟练&#xff0c;或者说没法优雅地使用。刚好最近对Linux的嵌入式编程比较感兴趣&#xff0c;借着demo来分析一下资深工程师写的Makefile&a…...

Hi3861 OpenHarmony嵌入式应用入门--PWM 三色灯

这篇文章是讲解的pwm控制三色灯的部分&#xff0c;这部分也是后续全彩智能灯的基础。 硬件原理如下 IO管脚定义在hi-12f_v1.1.2-规格书-20211202.pdf文档中 GPIO API API名称 说明 unsigned int IoTGpioInit(unsigned int id); GPIO模块初始化 hi_u32 hi_io_set_func(hi_i…...

CH5xx USB下载工具

文章目录 CH5xx USB下载工具1.前言2.介绍3. USB下载4. 串口免按键下载4.SWD下载 CH5xx USB下载工具 1.前言 CH5xx USB下载工具是一款专为沁恒 CH5xx系列 BLE SOC设计的程序的下载工具。这款工具与串口下载相比较&#xff0c;不仅提供了稳定的数据传输能力&#xff0c;而且提高…...

问题1.用PGP解密出keybox.xml,过程中报“Can‘t check signature: No public key”如图,这个正常吗?如何解决?

问题1.我要写Google attenstation key到设备。就需要keybox.xml生成keybox.kdb文件。而测试机构给我们的是加密的文件&#xff0c;需要用PGP解密出keybox.xml&#xff0c;过程中报“Can’t check signature: No public key”如图&#xff0c;这个正常吗&#xff1f;如何解决&am…...

网络物理隔离后 可以用保密U盘进行数据安全交换吗?

企业用的保密U盘通常被设计用于存储和传输敏感信息&#xff0c;以确保数据的安全和保密性。 在网络之间实现了物理隔离后&#xff0c;使用保密U盘进行数据安全交换是一种常见的做法。物理隔离确保了两个网络之间的完全分离&#xff0c;因此使用保密U盘可以作为一种安全的手段来…...

机械臂 CoppeliaSim Simulink联合仿真

实现机械臂在CoppeliaSim&#xff08;以前称为V-REP&#xff09;和Simulink上的联合仿真涉及多个步骤&#xff0c;包括环境设置、模型导入、通信配置、控制算法设计和测试调试。 前期准备 安装软件配置工作环境创建和配置CoppeliaSim场景 导入机械臂模型配置机械臂参数在Simuli…...

MySQL数据库(一):数据库介绍与安装

在嵌入式开发中&#xff0c;数据库的重要性体现在高效的数据存储和管理、数据持久化、复杂查询和处理、数据同步和共享、安全性和可扩展性。常见嵌入式数据库包括SQLite、MySQL、LevelDB等&#xff0c;应用于智能家居、工业控制、车载系统和物联网设备&#xff0c;提升了系统功…...

天津媒体邀约,及媒体名单?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体宣传加速季&#xff0c;100万补贴享不停&#xff0c;一手媒体资源&#xff0c;全国100城线下落地执行。详情请联系胡老师。 天津作为中国北方的重要城市&#xff0c;拥有丰富的媒体资…...

Java | Leetcode Java题解之第168题Excel表列名称

题目&#xff1a; 题解&#xff1a; class Solution {public String convertToTitle(int columnNumber) {StringBuffer sb new StringBuffer();while (columnNumber ! 0) {columnNumber--;sb.append((char)(columnNumber % 26 A));columnNumber / 26;}return sb.reverse().t…...

代码随想录算法训练营刷题复习10:二叉树、二叉搜索树复习2

二叉树、二叉搜索树 力扣题复习 110. 平衡二叉树257. 二叉树的所有路径404. 左叶子之和513. 找树左下角的值112.路径之和113.路经总和ii450. 删除二叉搜索树中的节点701. 二叉搜索树中的插入操作 110. 平衡二叉树 左右子树高度差要小于1 ->递归调用&#xff08;need新的函…...

预测准确率达95.7%,ChatMOF利用LLM预测和生成金属有机框架,包含人工智能词汇表(AI glossary)

预测准确率达95.7%,ChatMOF利用LLM预测和生成金属有机框架,包含人工智能词汇表(AI glossary)。 金属有机框架(MOF)因其孔隙率大、表面积大和出色的可调性而用于许多化学应用。然而,在利用 AI 深入探索 MOF 设计与性能优化的研究征途中,科学家们正面临着前所未有的挑战。…...

【Linux】环境基础开发工具使用(yum、vim、gcc/g++、gdb、make/Makefile)

文章目录 Linux 软件包管理器 yumLinux开发工具Linux编辑器-vim使用vim的基本概念vim下各模式的切换vim命令模式各命令汇总vim底行模式各命令汇总批量化注释和批量化去注释vim简单的配置解决一个小问题 Linux编译器-gcc/g作用gcc/g 语法预处理编译汇编链接什么是函数库 Linux调…...

MAA明日方舟小助手:让游戏回归乐趣的智能伙伴

MAA明日方舟小助手&#xff1a;让游戏回归乐趣的智能伙伴 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手&#xff0c;全日常一键长草&#xff01;| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitcode.com…...

爱普生SG-8201CJ石英可编程振荡器:精准频率控制,高效能工业级应用首选

引言在电子设计中&#xff0c;晶振是不可或缺的元器件&#xff0c;它为整个系统提供精准的时间基准。然而&#xff0c;面对市场上琳琅满目的晶振产品&#xff0c;工程师们常常感到选型困难&#xff0c;特别是在需要高精度、高稳定性和快速交付的情况下。今天&#xff0c;我们就…...

ElevenLabs阿拉伯文语音在Qur’anic Arabic场景下韵律崩塌?20年古兰经语音工程团队验证的4层音节边界校准协议

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs阿拉伯文语音在Qur’anic Arabic场景下的韵律失效现象全景扫描 Qur’anic Arabic&#xff08;古兰经阿拉伯语&#xff09;具有高度规范化的诵读规则&#xff08;Tajwīd&#xff09;&#x…...

阿里Qwen3.6系列实测

阿里Qwen3.6系列实测&#xff5c;1M上下文封神&#xff01;企业香爆&#xff0c;个人用官方举步维艰AI圈彻底沸腾&#xff01;阿里Qwen3.6系列甩出王炸——Plus/Flash支持1MToken超大上下文&#xff0c;思维链推理、全栈编程、多模态理解拉满&#xff0c;企业级生产力怪兽实锤&…...

ADAU1701(含A2B)的开发详解五:SigmaStudio实战技巧与模块高效应用

1. SigmaStudio模块查找的终极技巧 第一次打开SigmaStudio时&#xff0c;面对左侧密密麻麻的模块列表&#xff0c;我完全懵了。就像走进一个巨大的图书馆却找不到分类标签&#xff0c;ADI把200多个算法模块分散在30多个分类里&#xff0c;光Volume Controls下面就有12种音量调节…...

Zotero Duplicates Merger终极教程:3步自动化清理文献重复项

Zotero Duplicates Merger终极教程&#xff1a;3步自动化清理文献重复项 【免费下载链接】ZoteroDuplicatesMerger A zotero plugin to automatically merge duplicate items 项目地址: https://gitcode.com/gh_mirrors/zo/ZoteroDuplicatesMerger 还在为Zotero文献库中…...

FakeLocation深度探索:安卓应用级位置伪装的三层架构解析

FakeLocation深度探索&#xff1a;安卓应用级位置伪装的三层架构解析 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 在数字时代&#xff0c;位置数据已成为个人隐私的敏感边界。…...

从零到一:我的CentOS私服游戏搭建实战与避坑指南

1. 环境准备&#xff1a;从零开始的CentOS系统部署 第一次接触游戏私服搭建时&#xff0c;我像大多数新手一样对Linux系统充满敬畏。但实际用CentOS搭建环境比想象中简单——只要避开几个关键雷区。推荐使用CentOS 7.9这个经典版本&#xff0c;它在稳定性和软件兼容性上表现最好…...

nv-context:开发者必备的上下文管理工具,提升开发效率与团队协作

1. 项目概述&#xff1a;一个为开发者量身定制的上下文管理工具 如果你是一名开发者&#xff0c;尤其是在处理大型项目、复杂配置或者需要频繁切换工作环境时&#xff0c;一定对“上下文”这个概念又爱又恨。爱的是&#xff0c;它能帮你隔离环境、管理配置&#xff0c;让项目井…...

二维无金属铁磁半金属AsN2:p轨道自旋电子学的理论突破与计算设计

1. 二维无金属铁磁半金属&#xff1a;一个值得深挖的“潜力股”最近几年&#xff0c;二维材料这个领域真是热闹非凡&#xff0c;从石墨烯一炮而红开始&#xff0c;各种新奇的结构和性质层出不穷。作为一名长期关注计算材料学和自旋电子学的从业者&#xff0c;我一直在寻找那些既…...