Python 错误 Valueerror: Expected 2d Array Got 1d Array Instead

news2024/11/18 17:48:33

如您所知,每种编程语言都会遇到很多错误,有些是在运行时,有些是在编译时。 Python 在使用 numpy 库时有时会遇到数组错误。

当我们在 numpy 中传递一维数组而不是二维数组时,会发生错误 ValueError: Expected 2D array, got 1D array instead


Python 中的 Numpy 数组

Numpy 是一个处理数组和数学运算的开源库。 在 Python 中,列表向我们提供了数组的用途,但 numpy 的创建者声称他们证明数组比列表快 50 倍。

这是使用 numpy 数组的核心目的之一。


在 Python 中创建一个 Numpy 数组

numpy 数组的语法很简单。 我们必须将 numpy 库导入您的程序并相应地使用。

import numpy as np
# creating a numpy array
array1 = np.array([2,4,6])
print(array1)

输出:

[2 4 6]

Python 中错误 ValueError: Expected 2D array, got 1D array instead 的原因

当您在函数中传递一维数组时会发生此错误。 但是,该函数需要一个二维数组,因此您传递的不是一个二维数组,而是一个单一维度的数组。

它主要发生在 predict() 方法中使用机器学习算法。

现在让我们来看看这个场景。

import numpy as np
from sklearn import svm
X = np.array([[2,1],
[4,5],
[2.6,3.5],
[6,6],
[0.8,1],
[7,10]])
y = [1,0,1,0,1,0]
classifier = svm.SVC(kernel="linear", C = 1.0)
classifier.fit(X,y)
print(classifier.predict([0.7,1.10]))

输出:

Python 中错误ValueError- Expected 2D array, got 1D array instead 的原因


修复 Python 中错误 ValueError: Expected 2D array, got 1D array instead

对数据使用双方括号

下面我们已经解决了前面例子中的错误。 修复错误的最简单方法是将维数组转换为二维数组。

我们可以将 [0.7,1.10] 括在另一个方括号中,以便在将其传递给 predict() 方法时将其转换为二维数组。

示例代码:

import numpy as np
from sklearn import svm
X = np.array([[2,1],
[4,5],
[2.6,3.5],
[6,6],
[0.8,1],
[7,10]])
y = [1,0,1,0,1,0]
classifier = svm.SVC(kernel="linear", C = 1.0)
classifier.fit(X,y)
print(classifier.predict([[0.7,1.10]]))

输出:

[1]

使用 reshape() 重塑数组

将一维数组转换为二维数组的另一种方法是使用 reshape() 方法重塑数组。 您可以使用 reshape() 方法在 Python 中重塑数组。

每个维度中元素的数量决定了数组的形状。 您可以使用重塑来添加或删除数组维度。

在下面的代码中,您可以看到使用 reshape() 方法前后 numpy 数组的维度。

示例代码:

import numpy as np
from sklearn import svm
X = np.array([[2,1],
[4,5],
[2.6,3.5],
[6,6],
[0.8,1],
[7,10]])
y = [1,0,1,0,1,0]
classifier = svm.SVC(kernel="linear", C = 1.0)
classifier.fit(X,y)
test=np.array([0.7,1.10])
print("Dimension before:", test.ndim)
test=test.reshape(1, -1)
print("Dimension now:", test.ndim)
print("Classifier Result:", classifier.predict(test))

输出:

Dimension before: 1
Dimension now: 2
Classifier Result: [1]

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习周刊第五期:一个离谱的数据可视化Python库、可交互式动画学概率统计、机器学习最全文档、快速部署机器学习应用的开源项目、Redis 之父的最新文章

date: 2024/01/08 这个网站用可视化的方式讲解概率和统计基础知识,很多内容还是可交互的,非常生动形象。 大家好,欢迎收看第五期机器学习周刊 本期介绍7个内容,涉及Python、概率统计、机器学习、大模型等,目录如下: 一个离谱的Python库看见概率,看见统计2024机器学习最…

前端面试题集合五(css)

CSS 面试知识点总结 本部分主要是笔者在复习 CSS 相关知识和一些相关面试题时所做的笔记,如果出现错误,希望大家指出! 目录 1.介绍一下标准的 CSS 的盒子模型?低版本 IE 的盒子模型有什么不同的?2.CSS 选择符有哪些…

【代码随想录06】454. 四数相加 II 383. 赎金信 15. 三数之和 18. 四数之和

目录 454. 四数相加 II题目描述做题思路参考代码 383. 赎金信题目描述做题思路参考代码 15. 三数之和题目描述参考代码 18. 四数之和题目描述参考代码 454. 四数相加 II 题目描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你…

LaTeX系列1——主结构

初学,可交流,轻喷 \documentclass{book} \begin{document} \title{Book Title} \author{Author Name} \date{\today} \maketitle\chapter{Introduction} This is the introduction chapter of the book.\section{First Section} The first section of t…

人工智能 | 生成式 AI 如何重塑开发流程和开发工具?

生成式 AI 如何重塑开发流程和开发工具? 生成式人工智能(Generative Artificial Intelligence,GAI)是一种基于大规模数据训练学习,从而生成新的原创内容的人工智能。生成式人工智能可以生成各种形式的数据&#xff0c…

Linux:网络文件共享服务和内网搭建yum仓库

目录 一、网络文件共享服务 1.储存类型 2.FTP文本传输协议 二、内网搭建yum仓库 1.通过ftp服务搭建内网yum仓库服务器 2.通过httpd协议搭建内网yum仓库服务器 一、网络文件共享服务 1.储存类型 分为三种: 直连式存储: Direct-Attached Storage,简…

大模型背景下计算机视觉年终思考小结(二)

1. 引言 尽管在过去的一年里大模型在计算机视觉领域取得了令人瞩目的快速发展,但是考虑到大模型的训练成本和对算力的依赖,更多切实的思考是如果在我们特定的小规模落地场景下的来辅助我们提升开发和落地效率。本文从相关数据集构造,预刷和生…

【干货】忘记设备IP咋整?查找设备IP地址这几种手段请收藏好~

前言: 拿到了设备但找不到设备IP地址的情况想必很多人都遇到过,又不想重置,怎么办嘞? 别急,可以通过机身标签上的唯一标识MAC地址查到IP,小云君给你支几招: 手段1 通过查询PC的ARP表项查询局…

Halcon提取彩色多通道图像的亚像素边缘edges_color_sub_pix算子

Halcon提取彩色多通道图像的亚像素边缘edges_color_sub_pix算子 如要要提取彩色多通道图像的亚像素边缘,可以使用edges_color sub pix算子。该算子与edges_sub_pix 算子的参数十分相似,但又有所区别。首先从名称上看,edges color sub pix 算…

Rust-析构函数

所谓“析构函数”(destructor),是与“构造函数”(constructor)相对应的概念。 “构造函数”是对象被创建的时候调用的函数,“析构函数”是对象被销毁的时候调用的函数。 Rust中没有统一的“构造函数”这个语法,对象的构造是直接对每个成员进行初始化完…

软件测试要学习的基础知识——白盒测试

白盒测试是通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试,以确定实际运行状态与预期状态是否一致。 白盒测试又被称为: 透明盒测试 结构化测试 逻辑驱动测试 基于代码的测试 白盒测试的常用技术分类 一、静态分析&#x…

GEE:机器学习分类中每个类别的概率图像可视化

作者:CSDN @ _养乐多_ 在 Google Earth Engine(GEE) 中应用机器学习分类器进行多分类时,有一个需求是想知道每个像素对于每个类别的分类概率。 比如在进行随机森林分类时,每个决策树会生成一个类别,通过投票选择票数最多的类别作为最终分类。除了最终分类结果,其他类别…

【Leetcode】82. 删除排序链表中的重复元素 II

文章目录 题目思路代码 题目 82. 删除排序链表中的重复元素 II 题目:给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 示例 1: 输入:head [1,2,3,3,4,…

Docker容器(二)安装与初体验wordpress

一、安装 1.1关闭SeLinux SeLinux(Security-Enhanced Linux)是一种基于Linux内核的安全模块,旨在提供更严格的访问控制和安全策略。它通过强制实施安全策略来限制系统资源的访问,从而保护系统免受恶意软件和未经授权的访问。 在…

用Photoshop来制作GIF动画

录了个GIF格式的录屏文件,领导让再剪辑下,于是用Photoshop2023进行剪辑,录屏文件有约1400帧,PS保存为GIF格式时,还是挺耗时的,平时少用PS来进行GIF剪辑,编辑后的GIF不能动,网上搜索的…

emacs 源码分析(五)

emacs源码分析(五) 因为emacs的C源码中有大量的宏,在gdb中调试是非常痛苦的,所以有下面的内容: 一个更方便的调试emacs源码的方式 就像在“emacs源码分析(四)”中提到的那样,要么…

内存四区图练习

带着白卡去旅行 绘制图中三种情况的内存四区图 一个实参 一个形参 取地址 通过指针修改变量 返回 多级指针的训练 #define _CRT_SECURE_NO_WARNINGS #include<stdlib.h> #include<stdio.h> #include<string.h> #include<math.h>int getMem(char***p3,…

HDFS WebHDFS 读写文件分析及HTTP Chunk Transfer Encoding相关问题探究

文章目录 前言需要回答的首要问题DataNode端基于Netty的WebHDFS Service的实现基于重定向的文件写入流程写入一个大文件时WebHDFS和Hadoop Native的块分布差异 基于重定向的数据读取流程尝试读取一个小文件尝试读取一个大文件 读写过程中的Chunk Transfer-Encoding支持写文件使…

Transformer从菜鸟到新手(七)

引言 上篇文章加速推理的KV缓存技术&#xff0c;本文介绍让我们可以得到更好的BLEU分数的解码技术——束搜索。 束搜索 我们之前生成翻译结果的时候&#xff0c;使用的是最简单的贪心搜索&#xff0c;即每次选择概率最大的&#xff0c;但是每次生成都选择概率最大的并不一定…

Spring Cloud中的提供者与消费者

在服务调用关系中&#xff0c;会有两个不同的角色&#xff1a; 服务提供者&#xff1a;一次业务中&#xff0c;被其它微服务调用的服务。&#xff08;提供接口给其它微服务&#xff09; 服务消费者&#xff1a;一次业务中&#xff0c;调用其它微服务的服务。&#xff08;调用…