当前位置: 首页 > 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.dtcms.com/a/291245.html

相关文章:

  • 【VASP】机器学习势概述
  • 5G/4G PHY SoC:RNS802,适用于集成和分解的小型蜂窝 RAN 架构。
  • 在github上搭建自己主页
  • Blender软件入门-了解软件界面
  • JS逆向 - 滴滴(dd03、dd05)WSGSIG
  • Webpack源代码泄露漏洞
  • 云原生技术与应用-Kubernetes Pod调度基础
  • 热室机械手市场报告:智能装备推动高温制造自动化升级
  • 【推荐系统】推荐系统常用数据集介绍
  • 【系统全面】linux基础以及命令——基础知识介绍
  • stm32内存分析
  • ZYNQ硬核操作:免IIC驱动直控MCP4661T数字电位器
  • python实现接收九数云的异常分析指标推送通知
  • 海康威视视觉算法岗位30问及详解
  • 【开源】基于 C# 编写的轻量级工控网关和 SCADA 组态软件
  • 管理项目环境和在环境中使用conda或pip里如何查看库版本———Linux命令行操作
  • 工业仪表识别(一)环境安装
  • 一个月掌握数据结构与算法:高效学习计划
  • boost::asio 中 io_service与线程的关系
  • 企业开发转型 | 前端AI化数字化自动化现状
  • TestCase Studio - 自动生成测试用例详解
  • 注册表清理优化丨Wise RegistryCleaner_v11.1.10.725(官方赠品)
  • C# --- 使用Redis分布式锁实现初始化任务
  • Navicat数据建模三模型高效用法详解
  • 淘宝获取商品分类接口操作指南
  • Java学习 ------BIO模型
  • 识别并计算滑块距离
  • 高性能I/O的终极武器:epoll深度解析与实战
  • 关于java8里边Collectors.toMap()的空限制
  • 使用 PyTorch 的 torchvision 库加载 CIFAR-10 数据集