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

numpy库的基础知识

 一.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.xdnf.cn/news/15934.html

相关文章:

  • oracle 数据库中,将几张表的数据按指定日期范围实时同步至同一个数据库的备份表中。
  • CLIP与SIGLIP对比浅析
  • 小架构step系列21:参数和返回值的匹配
  • FastAPI 中,数据库模型(通常使用 SQLAlchemy 定义)和接口模型(使用 Pydantic 定义的 schemas)的差异
  • 【智能协同云图库】智能协同云图库第二期:基于腾讯云 COS 对象存储—开发图片各功能模块
  • SQLite以及Room框架的学习:用SQLite给新闻app加上更完善的登录注册功能
  • 蜂窝物联网模组市场新展望:中国企业继续保持最强竞争力
  • 进阶向:基于Python的电脑硬件监控工具(GUI + 系统信息采集)
  • 51c大模型~合集157
  • 138. Java 泛型 - 通配符捕获Helper程序方法:类型安全解决方案
  • 二维码扫描登录流程详解
  • 【设计模式】迭代器模式 (游标(Cursor)模式)
  • JavaEE初阶第十期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(八)
  • WinUI3开发_Frame用法
  • 服务器设置国外IP无法访问对防御攻击有用吗?
  • 一文详解REST风格
  • 一个适合MCU的分级菜单框架
  • .NET SDK 9.0.200引入对SLNX解决方案文件的支持
  • django filter按两个属性 去重
  • Linux——自制shell命令行解释器
  • 【LeetCode 热题 100】208. 实现 Trie (前缀树)
  • 剖析Sully.ai:革新医疗领域的AI助手功能启示
  • ssms(SQL 查询编辑器) 添加快捷键 Ctrl+D(功能等于Ctrl+C + Ctrl+V),一步到位
  • Bun v1.2.19发布,node_modules隔离,sql比node快6倍
  • Kotlin 高阶函数初步学习
  • Laravel 系统版本查看及artisan管理员密码找回方法针对各个版本通用方法及原理-优雅草卓伊凡
  • 信息学奥赛一本通 1576:【例 2】选课 | 洛谷 P2014 [CTSC1997] 选课
  • 子网划分核心原理 (网络原理1)
  • [学习] Hilbert变换:从数学原理到物理意义的深度解析与仿真实验(完整实验代码)
  • 《通信原理》学习笔记——第五章