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

numpy第三方库学习(更新中)

介绍

NumPy是 Python 中用于科学计算的基础库,它提供了高性能的多维数组对象和处理这些数组的工具。

pip install numpy

pip

pip 是 Python 的包管理工具,下面是一些 pip 的常用命令:

  • 显示pip的版本:pip --version

  • 查看 pip 命令的帮助信息:pip --help

  • 查看已安装的包:pip list

  • 安装最新版本的包:pip install package_name

  • 安装指定版本的包:pip install package_name==version_number

  • 升级指定的包到最新版本:pip install --upgrade package_name

  • 卸载指定的包:pip uninstall package_name

  • 查看包的详细信息:pip show package_name

  • 指定镜像源下载:pip install package_name -i link

数组创建

1. 从列表创建一维数组

import numpy as np# 从列表创建一维数组
lst = [1,2,3,4,5]
arr = np.array(lst)
print("一维数组:", arr)

运行结果

一维数组: [1 2 3 4 5]

(说明:np.array 将 Python 列表转换为 NumPy 一维数组,元素类型默认是 int64,输出时元素间用空格分隔。)

2. 创建二维数组

# 创建一个二维数组
arr = np.array([[1,2,3,4],[5,6,7,8]])
print("二维数组:", arr)

运行结果

二维数组: [[1 2 3 4][5 6 7 8]]

(说明:传入嵌套列表[[行1], [行2]],生成 2 行 4 列的二维数组,输出时会按行分行显示,保持矩阵结构。)

3. 创建全 0 矩阵

# 全0矩阵
arr = np.zeros((3,4))  # 参数(行数, 列数),默认元素类型是float64
print("全0矩阵:")
print(arr)

运行结果

全0矩阵:
[[0. 0. 0. 0.][0. 0. 0. 0.][0. 0. 0. 0.]]

(说明:np.zeros 生成指定形状的矩阵,所有元素为 0,默认是浮点数(带小数点),若需整数可加dtype=int参数。)

4. 创建全 1 矩阵

# 全1矩阵
arr = np.ones((3,4))  # 参数(行数, 列数),默认元素类型float64
print("全1矩阵:")
print(arr)

运行结果

全1矩阵:
[[1. 1. 1. 1.][1. 1. 1. 1.][1. 1. 1. 1.]]

(说明:类似全 0 矩阵,所有元素为 1,默认浮点数,可通过dtype=int改为整数。)

5. 创建指定值的全 n 矩阵(3 维)

# 创建指定的全n矩阵(这里是3维矩阵,值为8)
arr = np.full((3,4,5), 8)  # 参数(维度1, 维度2, 维度3, ...),值为8
print("全n矩阵:")
print(arr)

运行结果

全n矩阵:
[[[8 8 8 8 8][8 8 8 8 8][8 8 8 8 8][8 8 8 8 8]][[8 8 8 8 8][8 8 8 8 8][8 8 8 8 8][8 8 8 8 8]][[8 8 8 8 8][8 8 8 8 8][8 8 8 8 8][8 8 8 8 8]]]

(说明:np.full 生成任意指定值的矩阵,这里(3,4,5)表示 3 个 “4 行 5 列” 的二维矩阵,构成 3 维数组,所有元素为 8。)

6. 创建等差数列矩阵

# 创建等差数列矩阵([start, stop),步长step)
arr = np.arange(0,10,2)  # 起始0,终止10(不包含10),步长2
print("等差数列矩阵:")
print(arr)

运行结果

等差数列矩阵:
[0 2 4 6 8]

(说明:np.arange 类似 Python 的 range,但返回 NumPy 数组,支持浮点数步长(如np.arange(0,5,0.5))。)

7. 创建等间距矩阵(包含终止值)

# 创建等间距的矩阵(将[start, stop]等分成num份)
arr = np.linspace(0,1,5)  # 起始0,终止1(包含1),分成5份
print("等间距矩阵:")
print(arr)

运行结果

等间距矩阵:
[0.   0.25 0.5  0.75 1.  ]

(说明:np.linspace 按 “份数” 划分区间,确保包含终止值,元素间间距相等(这里间距是 (1-0)/(5-1)=0.25),常用于生成绘图的横坐标。)

8. 创建随机整数矩阵(并重塑形状)

# 创建随机整数矩阵:[0,10)的整数,共20个,再重塑为4×5矩阵
arr = np.random.randint(10, size=20).reshape(4,5)  # randint(上限, 元素总数)
print("随机矩阵:")
print(arr)

运行结果(示例,每次运行不同)

随机矩阵:
[[3 7 2 9 5][1 8 0 4 6][2 5 7 3 1][9 0 4 8 2]]

(说明:

  • np.random.randint(10, size=20)生成 20 个 [0,10) 的随机整数,是一维数组;
  • reshape(4,5)将一维数组重塑为 4 行 5 列的二维矩阵(元素总数必须相等:4×5=20);
  • 随机数每次运行不同,上述仅为示例结果。)

9. 持久化存储矩阵(保存到硬盘)

# 持久化数据:将矩阵保存为.npy文件(NumPy专用二进制格式)
np.save("data", arr)  # 第一个参数是文件名(无需加.npy后缀,自动添加),第二个是要保存的数组
print("矩阵已保存为 data.npy 文件")

运行结果

矩阵已保存为 data.npy 文件

(说明:运行后会在当前代码所在文件夹生成data.npy文件,该文件是二进制格式,仅能通过 NumPy 的np.load读取,保存时会保留数组的形状、类型等信息。)

10. 读取持久化的矩阵

# 读取持久化数据:加载.npy文件中的矩阵
arr = np.load("data.npy")
print("读取的持久化矩阵:")
print(arr)

运行结果(与第 8 步的随机矩阵完全一致)

读取的持久化矩阵:
[[3 7 2 9 5][1 8 0 4 6][2 5 7 3 1][9 0 4 8 2]]

(说明:np.load会还原保存时的数组结构和元素,因此读取结果与第 8 步生成的随机矩阵完全相同(即使关闭代码重新运行,只要data.npy不被修改,读取结果就不变)。)

数组的属性

可以通过数组的属性来获取数组的相关信息。

import numpy as nparr = np.random.randint(10, size=24).reshape(2,3,4)# 维度
print(arr.ndim)
# 形状
print(arr.shape)
# 数据总数
print(arr.size)
# 元素类型
print(arr.dtype) #int32 4字节整数
http://www.dtcms.com/a/470276.html

相关文章:

  • 【开题答辩全过程】以 报考意向分析系统为例,包含答辩的问题和答案
  • Spring AI
  • ssm速通1(2/2)
  • Android GPS定位与行车轨迹追踪完整实战
  • [持续更新] HPC高性能计算CUDA/C++面试知识点
  • 【有源码】基于Hadoop生态的大数据共享单车数据分析与可视化平台-基于Python与大数据的共享单车多维度数据分析可视化系统
  • 上海做网站推荐做景观要用的植物网站
  • 珠海 网站建设和推广万网网站空间
  • Jasperreport 导出word 多个element重叠部分导致不显示(不支持)
  • GRU(门控循环单元) 笔记
  • 莱州网站建设哪家好做网站要会哪些知识
  • ubuntu离线安装 xl2tpd
  • 如何在百度上做网站最好用的免费建站
  • 关联网站有那些wordpress超级排版器插件
  • 熊猫比分 APP:开启体育赛事观赛新“姿势”
  • 第二章:模块的编译与运行-9 Platform Dependency
  • java多模块概念
  • 小企业网站维护什么东西互联网培训
  • 找人做网站做的很烂网站自助建设推广
  • uhttpd HTTPS 在嵌入式与 OpenWrt 上的实战部署与排查
  • 合肥网站建设正规公司抖音如何推广引流
  • [cpprestsdk] 构建HTTP消息 | http_headers.h
  • SCI论文写作:从实验设计到发表(选题、文献调研、实验设计、数据分析、论文结构及语言规范)
  • 西安哪里有做网站的网页界面ps制作步骤
  • 《彻底理解C语言指针全攻略(2)》
  • JavaScript 性能优化实战:从原理到落地
  • 网上公司注册申请的流程江西短视频搜索seo推荐
  • 网站建设哪家好知道数字化档案馆及网站的建设
  • 汽车行业密钥灌装解决方案:构建可信的车载安全启动与通信体系
  • Vue2+Django TodoList项目跨域解决方案实战