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

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.lryc.cn/news/594865.html

相关文章:

  • 用Dify构建气象智能体:从0到1搭建AI工作流实战指南
  • React-useEffect的闭包陷阱(stale closure)
  • react 录音功能
  • 《Linux 环境下 Nginx 多站点综合实践:域名解析、访问控制与 HTTPS 加密部署》​
  • 大模型——Prompt 优化还是模型微调
  • Ubuntu 22.04 安装 Docker (安装包形式)
  • WPF 项目设置应用程序图标和设置程序集图标
  • 移星科技 modbus-tcp 转 modbus-Rtu模块
  • (数据结构)线性表(中):SLIst单链表
  • tcpdump 命令解析(随手记)
  • IOPaint+CPolar:零公网IP也能搭建专属AI图像编辑平台
  • 高级技术【Java】【反射】【注解】【动态代理】
  • 复习博客:JVM
  • 【Project】ELK 7.17.16 日志分析系统部署
  • 阿里云平台使用的ack创建的pod与服务器中的MongoDB不在同一网段如何解决
  • 【图像处理基石】什么是相机的内外参数?
  • 单表查询-分页提前获取数据
  • 自动化与安全 - 将 Terraform 集成到 CI/CD
  • 安装pytorch(cpu版)
  • 电科金仓2025发布会,国产数据库的AI融合进化与智领未来
  • 【Lucene】SimScorer
  • 【Spring AI】Advisors API—顾问(即拦截器)
  • 轨迹优化 | 基于边界中间值问题(BIVP)的路径平滑求解器(附C++/Python仿真)
  • 6.String、StringBuffer、StringBuilder区别及使用场景
  • C++学习笔记(六:数组)
  • AI Agent与MCP Service技术进展结构化分析报告(2025Q2)
  • 解决win10下Vmware虚拟机在笔记本睡眠唤醒后ssh连接不上的问题
  • 项目研发进度安排
  • 音视频学习(四十二):H264帧间压缩技术
  • 【时时三省】(C语言基础)使用字符指针变量和字符数组的比较