一.numpy是什么 ?

Numpy 是 Python 中专门用于高性能数值计算的库,其核心是一个功能强大的 n 维数组对象(ndarray),可以用来存储和操作大规模的数字矩阵或张量数据。

numpy库的作用:

核心功能:实现矩阵运算,为人工智能和数据分析提供基础支持
应用场景:
人工智能领域(包括计算机视觉、自然语言处理等)
数据分析岗位(从海量数据中挖掘有效规律)
金融行业(量化交易、投行分析等)
数据分析与人工智能的关系 
包含关系:数据分析属于人工智能岗位的组成部分
数据特征:
需要处理的数据量级通常在几十万到上百万条
少量数据(如10-20条)不需要专门的分析工具

Numpy提高运行速度的优势:底层架构:核心计算部分用C语言实现python层仅负责调用接口
速度对比:比纯Python列表运算快数十倍执行效率超过Excel的数据处理
numpy底层与C语言的关系 :
技术架构:底层:C语言实现高性能计算上层:Python提供易用接口
设计优势:兼顾开发效率(Python)和运行效率(C),避免直接编写复杂的C代码

二.numpy库的安装

1.精确安装命令: 使用pip install numpy==1.23.5指定版本安装,双等号表示严格版本匹配

2.镜像加速: 安装时可添加国内镜像地址提高下载速度(如清华源、阿里云源等)

3.安装问题解决方法

  • 错误处理:
  • 当指定版本不存在时,pip会列出所有可用版本
  • 可根据Python版本选择兼容的次新版本(如1.26.x不可用时选择1.25.x)
  • 版本选择原则:
  • Python 3.7建议安装1.21.x版本
  • Python 3.8+可安装1.22+版本
  • 主版本号(第一个数字)应保持一致

三. Nunpy函数详解

导入惯例: 使用import numpy as np作为标准导入方式

1.一维数组:

import numpy as np
list1 = [1,2,3,4,5] #python自带的列表数据类型
print(list1)  #[1,2,3,4,5]
v = np.array(list1)
print(v)   #[1 2 3 4 5]

 2.二维数组[多个一维数组构成]

import numpy as np
list1 = [1,2,3,4,5]
m = np.array([list1,list1,list1])
print(m)
##[[1 2 3 4 5]
# [1 2 3 4 5]
#[1 2 3 4 5]]

3.三维数组[多个二维数组构成]

import numpy as np
list1 = [1,2,3,4,5]
z = np.array([[list1,list1,list1],[list1,list1,list1],[list1,list1,list1]])
print(z)

可视化特性:在调试模式下查看ndarray对象时,数值越大显示颜色越红,越小则颜色越深,便于快速识别极值。

由于三维数组无法直接在计算机上表示,所以以z[0]的形式展现。

z[0]访问第一个二维矩阵切片,以此类推实现不同维度的数据提取,z[1]访问第二个二维矩阵切片

 4.数组的基本属性

1.shape 查询数组的形状

import numpy as np
list1 = [1,2,3,4,5]
z = np.array([[list1,list1,list1],[list1,list1,list1],[list1,list1,list1]])
print(z.shape)#(3, 3, 5)

输出结果(3,3,5)表示:3个二维矩阵,每个二维矩阵有3行,每行有5个元素

2.ndim  查询数组的维度

import numpy as np
list1 = [1,2,3,4,5]
z = np.array([[list1,list1,list1],[list1,list1,list1],[list1,list1,list1]])
print(z.ndim)#3

3.size  查询数组中数据个数

import numpy as np
list1 = [1,2,3,4,5]
z = np.array([[list1,list1,list1],[list1,list1,list1],[list1,list1,list1]])
print(z.size)#45

4.dtype 查询数组中的元素类型

import numpy as np
list1 = [1,2,3,4,5]
z = np.array([[list1,list1,list1],[list1,list1,list1],[list1,list1,list1]])
print(z.dtype)#int32

 int8, int16, int32, int64: 表示不同长度的有符号整数。默认为int32

int8 的最小值为 0(二进制全为 0),最大值为 256(二进制全为 1),实际存储范围为 0 到 255。自然界中的亮度值(如 RGB 颜色)范围是 0 到 255,因此计算机视觉中常用 int8 存储颜色值。
int32 的存储范围为 0 到 2³²,适用于大数值存储;float32 和 float64 用于高精度浮点数(如保留多位小数)。

四.数组的升维

a.reshape(newshape, order='C')

 a:要重新形状的数组。
newshape:一个整数或者元组,用于定义新的形状。
order:可选参数,指定元素在数组中的读取顺序。'C'意味着按行,'F'意味着按列,'A'意味着原顺序,'K'意味着元素在内存中的出现顺序。

import numpy as np
list1 = [1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8]#
v = np.array(list1)
r1 = v.reshape(4,4)
print(r1)
print(r1.ndim)
r2 = v.reshape(1,-1,2)
print(r2)
print(r2.ndim)
r3 = r1.reshape(2,2,4)
print(r3)
print(r3.ndim)

resize:调整矩阵大小,可直接修改原始数据到相应的维度,返回值 None。reshape()方法则返回的是修改后的矩阵而原来的矩阵并不会改变

不返回计算结果,直接修改原始数组

import numpy as np
list1=[1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4]
v=np.array(list1)
r = v.resize(4,4)#直接会修改原始数据到相应的维度
print(r)#None
print(v)#[[1 2 3 4]# [1 2 3 4]#[1 2 3 4]#[1 2 3 4]]
print(v.ndim)#2

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在UniApp中防止页面上下拖动的方法

1、pages.json中在某个页面设置禁用弹性滚动的页面 {"path": "pages/yourPage/yourPage","style": {"app-plus": {"bounce": "none"}} } 2、 pages.json中在所有页面设置禁用弹性滚动的页面 {"globalStyl…

LinkedList的模拟实现(双向链表Java)

一:结构LinkedList的底层是双向链表结构(链表后面介绍),由于链表没有将元素存储在连续的空间中,元素存储在单独的节点中,然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素…

Shopify 知识点

📜 一、Liquid模板语言(核心基础)语法结构 • 输出变量:{{ product.title }} 动态显示商品标题。 • 逻辑控制:{% if product.available %}…{% endif %} 条件渲染。 • 循环遍历:{% for item in collectio…

Web LLM 安全剖析:以间接提示注入为核心的攻击案例与防御体系

文章目录1 间接提示注入2 训练数据中毒为什么会出现这种漏洞?3 泄露敏感训练数据攻击者如何通过提示注入获取敏感数据?为什么会出现这种泄露?4 漏洞案例间接提示注入利用 LLM 中的不安全输出处理5 防御 LLM 攻击把LLM能访问的API当成“公开接…

ElasticSearch:不停机更新索引类型(未验证)

文章目录**一、前期准备****1. 集群健康检查****2. 备份数据****3. 监控系统准备****二、创建新索引并配置****1. 设计新索引映射****2. 创建读写别名****三、全量数据迁移****1. 执行初始 Reindex****2. 监控 Reindex 进度****四、增量数据同步****1. 方案选择****五、双写切换…

python学智能算法(二十七)|SVM-拉格朗日函数求解上

【1】引言 前序学习进程中,我们已经掌握了支持向量机算法中,为寻找最佳分割超平面,如何用向量表达超平面方程,如何为超平面方程建立拉格朗日函数。 本篇文章的学习目标是:求解SVM拉格朗日函数。 【2】求解方法 【2.…

mac安装node的步骤

适用于macOS 10.15及以上版本。 前提条件 macOS版本:确保系统为macOS 10.15(Catalina)或更高版本。可在“苹果菜单 > 关于本机”查看。管理员权限:部分安装可能需要管理员权限。网络连接:需要联网下载安装包或工具…

【LeetCode数据结构】栈的应用——有效的括号问题详解

🔥个人主页:艾莉丝努力练剑 ❄专栏传送门:《C语言》、《数据结构与算法》、C语言刷题12天IO强训、LeetCode代码强化刷题 🍉学习方向:C/C方向 ⭐️人生格言:为天地立心,为生民立命,为…

多尺度卷积模型:Inception块

在GoogLeNet中,基本的卷积块被称为Inception块(Inception block)。 使用窗口大小为11,33,551\times1,3\times3,5\times511,33,55的卷积层,从不同空间大小中提…

Android 默认图库播放视频没有自动循环功能,如何添加

Android 默认图库播放视频没有自动循环功能, 如何添加 按如下方式添加 开发云 - 一站式云服务平台 .../apps/Gallery2/res/values-zh-rCN/strings.xml | 3 ++ packages/apps/Gallery2/res/values/strings.xml | 3 ++ .../com/android/gallery3d/app/MovieActivity…

7月21日总结

命令执行 RCE RCE(remote code execute):远程命令执行或者代码执行,我们平时说的rce,比如thinkPHP的 rce漏洞,即算代码注入漏洞,也算rce漏洞,因为渗透的最终情况可以实现执行命令或…

Linux——自制shell命令行解释器

文章目录1.打印命令提示符2.获取用户输入指令3.重定向分析4.命令行参数表,环境变量表,初始化5.命令解析6.命令执行6.1.创建子进程6.2 处理内建命令6.3 文件重定向7.源码前言 在实现shell的时候我们先创建自己myshell目录,在目录中创建myshell.cc文件,因…

Boost库智能指针boost::shared_ptr详解和常用场景使用错误示例以及解决方法

1、Boost智能指针 —— boost::shared_ptr 详解一、什么是 boost::shared_ptr boost::shared_ptr 是 Boost 库中实现的一个智能指针模板类,用于管理动态分配的对象生命周期,采用引用计数机制。多个 shared_ptr 实例可以共享同一个对象的所有权&#xff0…

科学分析指南,如何快速找到并清理磁盘的无用文件

随着时间的推移,系统中会积累大量的临时文件、缓存文件、不再需要的安装包或其他大型文件。磁盘清理可以删除这些不必要的文件,从而释放宝贵的磁盘空间。它无需安装,插上 U 盘就能直接使用。只需勾选需要扫描的磁盘,点击“开始分析…

Laravel 系统版本查看及artisan管理员密码找回方法针对各个版本通用方法及原理-优雅草卓伊凡

Laravel 系统版本查看及artisan管理员密码找回方法针对各个版本通用方法及原理-优雅草卓伊凡一、查看 Laravel 版本的方法优雅草蜻蜓T会议系统专业版 最近又有客户要了,但是发现 密码不对 管理员账户密码不对,卓伊凡必须处理下,这里顺便讲解密…

针对大规模语言模型的上下文工程技术调研与总结(翻译并摘要)

针对大规模语言模型的上下文工程技术调研与总结声明摘要部分翻译介绍部分翻译相关工作部分翻译并摘要为什么使用上下文工程(翻译并摘要)基础组件(翻译并摘要)RAG(翻译并摘要简单介绍一下个人认为比较好的技术&#xff…

QT配置Quazip外部库

1.下载QuaZip源码网址:https://sourceforge.net/projects/quazip/  注:下载->解压->打开.pro文件2.编译QuaZip源码2.1配置zlib注:QuaZip需zlib的支持,我们需要引用zlib找到本地安装Qt目录下zlib目录:注&#x…

从C++开始的编程生活(4)——类的定义、访问限定符、类域、类的实例化和this指针

前言 本系列文章承接C语言的学习,需要有C语言的基础才能学会哦~ 第3篇主要讲的是有关于C的类的定义、访问限定符、类域、类的实例化和this指针。 C才起步,都很简单呢! 目录 前言 类 基本语法 访问限定符 基本语法 类域 类的实例化 内…

AD域控制器虚拟化的安全加固最佳实践

以下是AD域控制器虚拟化安全加固的7项核心实践,结合最新Windows Server 2022特性与虚拟化环境需求:基础架构强化‌ 采用静态IP分配并确保所有域控节点DNS指向主DC(如192.168.1.10)‌ 虚拟机模板需预配置林/域功能级别为Windows Se…

java解析nc气象数据

1.1pom.xml<dependency><groupId>edu.ucar</groupId><artifactId>netcdfAll</artifactId><version>5.4.1</version></dependency>1.2 netcdf使用/** param type 0 ,1, 2 wind 1 or 2 其他 0 .* return Map* */public Map i…