Python-numpy-基础入门

发布时间:2026/9/22 10:13:15

Python-numpy-基础入门 NumPy 基础入门ndarray 什么是 ndarrayndarrayN-dimensional Array是 NumPy 的核心数据结构——一个同构多维数组。所有元素类型相同内存连续存储因此比 Python list 快 10~100 倍。对比Python listNumPy ndarray元素类型可以不同必须相同同构内存分散存储连续内存块运算循环遍历C 级别向量化速度慢极快内存占用大小固定类型 创建 ndarray从 Python 数据结构创建importnumpyasnp# 从列表创建arrnp.array([1,2,3,4,5])print(arr)# [1 2 3 4 5]# 从嵌套列表二维matnp.array([[1,2,3],[4,5,6],[7,8,9]])print(mat)# [[1 2 3]# [4 5 6]# [7 8 9]]# 三维及以上tensornp.array([[[1,2],[3,4]],[[5,6],[7,8]]])print(tensor.shape)# (2, 2, 2)# 从元组arrnp.array((10,20,30))# 指定数据类型arrnp.array([1,2,3],dtypenp.float64)arrnp.array([1,2,3],dtypefloat32)特殊数组# 全零anp.zeros(5)# [0. 0. 0. 0. 0.]anp.zeros((3,4))# 3×4 全零矩阵anp.zeros_like(b)# 和 b 形状相同的全零# 全一anp.ones(5)# [1. 1. 1. 1. 1.]anp.ones((2,3,4))# 2×3×4 全一张量anp.ones_like(b)# 全填充anp.full((3,4),7)# 全为 7 的 3×4 矩阵anp.full_like(b,3.14)# 单位矩阵anp.eye(4)# 4×4 单位矩阵anp.identity(5)# 5×5 单位矩阵anp.eye(3,4,k1)# 对角偏移k0 向右上偏# 对角矩阵anp.diag([1,2,3,4])# 以 [1,2,3,4] 为对角线的矩阵anp.diag(mat)# 提取矩阵的对角线# 未初始化更快但数据不定anp.empty((3,4))序列数组 ⭐# arange: 等差序列最常用anp.arange(10)# [0 1 2 3 4 5 6 7 8 9]anp.arange(2,10)# [2 3 4 5 6 7 8 9]anp.arange(0,10,2)# [0 2 4 6 8] 步长2anp.arange(10,0,-1)# [10 9 8 7 6 5 4 3 2 1] 倒序# linspace: 等分序列包含终点anp.linspace(0,1,5)# [0. 0.25 0.5 0.75 1. ]anp.linspace(0,10,100)# 0~10 均匀取 100 个点# logspace: 对数等分anp.logspace(0,3,4)# [1. 10. 100. 1000.] 10^0~10^3 取4个# geomspace: 等比数列anp.geomspace(1,1000,4)# [1. 10. 100. 1000.]# meshgrid: 网格坐标二维绘图必备xnp.linspace(-5,5,100)ynp.linspace(-5,5,100)X,Ynp.meshgrid(x,y)# X, Y 都是 (100, 100)Znp.sqrt(X**2Y**2)# 网格运算# mgrid / ogrid: 更便捷的网格X,Ynp.mgrid[-5:5:100j,-5:5:100j]# mgrid: 完整网格100j 100 个点X,Ynp.ogrid[-5:5:100j,-5:5:100j]# ogrid: 开放网格节省内存模仿形状创建anp.arange(12).reshape(3,4)np.zeros_like(a)# 和 a 同形的全零np.ones_like(a)# 和 a 同形的全一np.full_like(a,3.14)# 和 a 同形的填充np.empty_like(a)# 和 a 同形的未初始化 ndarray 属性arrnp.arange(24).reshape(2,3,4)print(arr.shape)# (2, 3, 4) — 各维度大小print(arr.ndim)# 3 — 维度数print(arr.dtype)# int32默认取决于系统— 元素类型print(arr.size)# 24 — 总元素数print(arr.itemsize)# 4 — 每个元素的字节数int324字节print(arr.nbytes)# 96 — 总内存占用 size × itemsizeprint(arr.strides)# (48, 16, 4) — 每维步长print(arr.flags)# 内存布局标志print(arr.base)# 如果是视图返回原始数组print(arr.T)# 转置视图不复制数据print(arr.real)# 实部print(arr.imag)# 虚部print(arr.flat)# 展平迭代器关于 strides步长arrnp.arange(24).reshape(2,3,4)print(arr.strides)# (48, 16, 4)# 含义沿 axis0 跨 48 字节3×4×4沿 axis1 跨 16 字节4×4沿 axis2 跨 4 字节1 个 int32 数据类型dtype常用数值类型类型别名字节范围np.int8i11-128 ~ 127np.int16i22-32768 ~ 32767np.int32i44-2³¹ ~ 2³¹-1np.int64i8,np.int_8-2⁶³ ~ 2⁶³-1np.uint8u110 ~ 255np.uint16u220 ~ 65535np.float16f22半精度np.float32f44单精度深度学习常用np.float64f8,np.float_8双精度默认np.complex64c88复数两 32bitnp.complex128c1616复数两 64bitnp.bool_?1True / False特殊类型# 字符串arrnp.array([hello,world],dtypeU10)# Unicode, 最长 10 字符arrnp.array([bhello,bworld],dtypeS10)# 字节字符串# 对象存 Python 对象性能差少用arrnp.array([{a:1},[1,2,3]],dtypeobject)# 结构化类型存不同类型列dtnp.dtype([(name,U10),(age,i4),(score,f8)])# datetimearrnp.array([2024-01-01,2024-06-15],dtypedatetime64[D])类型转换arrnp.array([1,2,3],dtypenp.int64)# 方式一: astype()推荐明确创建副本arr2arr.astype(np.float64)arr2arr.astype(float32)# 方式二: 直接指定arrnp.array([1,2,3],dtypefloat64)# 方式三: 转换函数np.float64(arr)np.int32(arr)# 查看类型范围print(np.iinfo(np.int16))# min-32768, max32767print(np.finfo(np.float32))# bits32, eps1.192e-07类型提升规则# 不同类型运算时自动提升到更安全类型anp.array([1,2,3],dtypenp.int32)bnp.array([0.5,1.5,2.5],dtypenp.float32)print((ab).dtype)# float32cnp.array([1,2,3],dtypenp.float32)dnp.array([0.5,1.5,2.5],dtypenp.float64)print((cd).dtype)# float64向更高精度提升 快速上手示例importnumpyasnp# 1. 创建一个图像模拟数据imagenp.random.default_rng(42).integers(0,256,(1080,1920,3),dtypenp.uint8)print(f图像形状:{image.shape})# (1080, 1920, 3)print(f数据类型:{image.dtype})# uint8print(f内存占用:{image.nbytes/1e6:.1f}MB)# 2. 统计信息print(f最小像素:{image.min()})print(f最大像素:{image.max()})print(f均值:{image.mean():.1f})print(f每个通道均值:{image.mean(axis(0,1))})# 3. 灰度化grayimage.mean(axis2).astype(np.uint8)# (1080, 1920)# 4. 翻转flippedimage[:,::-1,:]# 水平翻转用切片零拷贝# 5. 裁剪croppedimage[100:500,200:800,:]print(f裁剪后:{cropped.shape})# (400, 600, 3) 速查表需求代码列表创建np.array([1, 2, 3])全零np.zeros((3, 4))全一np.ones((2, 3, 4))全填充np.full((3, 4), 7)单位矩阵np.eye(4)等差数列np.arange(0, 10, 2)等分数列np.linspace(0, 1, 100)等比数列np.geomspace(1, 1000, 4)网格坐标np.meshgrid(x, y)形状arr.shape维数arr.ndim元素类型arr.dtype总元素数arr.size内存大小arr.nbytes类型转换arr.astype(np.float64)[[numpy-总览|← 返回总览]]
延伸阅读

更多相关文章

2026/9/20 7:48:44

PromQL入门到进阶:编写高效监控查询的10个实用技巧

PromQL入门到进阶:编写高效监控查询的10个实用技巧 【免费下载链接】docs Prometheus documentation: content and static site generator 项目地址: https://gitcode.com/gh_mirrors/docs21/docs PromQL是Prometheus监控系统的核心查询语言,它允…

2026/9/21 23:52:53

2023最新SvelteKit博客方案:swyxkit从安装到部署完整教程

2023最新SvelteKit博客方案:swyxkit从安装到部署完整教程 【免费下载链接】swyxkit An opinionated blog starter for SvelteKit Tailwind Netlify. Refreshed for SvelteKit 1.0! 项目地址: https://gitcode.com/gh_mirrors/sw/swyxkit swyxkit是一个基于…

2026/9/20 7:48:44

全球EMBA哪个好?民营企业家择校选择指南

不少民营企业家、企业创始人在迭代管理认知、搭建高端人脉、布局企业出海与数字化升级时,都会纠结全球EMBA哪个好。市面上海内外EMBA项目繁多,办学定位、课程侧重、圈层资源差异极大,盲目择校容易出现适配度低、资源不匹配的问题。本文将从全…

2026/9/22 10:10:26

2026最新如何在图片上添加文字:从卡顿到毫秒级渲染实战

2026最新如何在图片上添加文字:从卡顿到毫秒级渲染实战 看了一堆教程还是不会写项目,卡在“图片加水印”这一步的人,我见得太多了。很多教程只给你一段 PIL 的 draw.text() ,跑是能跑,但一旦并发上量,服务器 CPU…

2026/9/22 10:10:26

会计要求源码深度剖析:手写实现避坑指南

会计要求源码深度剖析:手写实现避坑指南 上周三晚上十点半,我盯着 IDE 里的红色波浪线发呆。一个看似简单的“会计要求”模块,跑起来直接抛出一串 Stack Trace ,满屏的 NullPointerException 和…

2026/9/22 10:10:26

胖头鱼字体实战:3个维度避坑指南

胖头鱼字体实战:3个维度避坑指南 屏幕前是不是也出现过这种场景:UI切图给得清清楚楚,字号14px,行高20px,颜色#333333。你照着写,浏览器渲染出来却是一坨“胖头鱼”——字间距忽大忽小,某些笔画发虚,甚至在不同浏览器里长得都不一样…

2026/9/22 10:10:26

淘宝上的好店报错解析:3步搞懂新手避坑指南

淘宝上的好店报错解析:3步搞懂新手避坑指南 看到满屏红色的 StackTrace,是不是脑子瞬间嗡嗡作响?这种报错一堆看不懂的情况,是新手避坑路上最折磨人的环节。别慌,这其实是系统对你代码逻辑的一次“暴力反馈”。…

2026/9/22 10:05:25

3个坑教你cad怎么加粗线条:手写实现底层逻辑

3个坑教你cad怎么加粗线条:手写实现底层逻辑 面试被问原理答不上来?别慌,很多老手也卡在“为什么线型不显示”或“打印出来还是细线”。今天咱们不背概念,直接上手 手写实现 一个最小化 CAD 线条渲染引擎。通过从零搭建项目,彻底搞懂…

2026/9/22 10:02:42

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/22 9:07:39

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/22 0:04:49

输电线路在线监测高频面试题拆解 3秒抓住官方文档重点

输电线路在线监测高频面试题拆解 3秒抓住官方文档重点 官方文档几百页翻到头还是懵?面试问到 输电线路在线监测 的数据链路时,脑子一片空白?别慌,这种 高频面试题 我整理了10年,专门治各种“文档太长抓不住重点”的毛病。…

2026/9/22 0:04:49

中介房源管理系统重构避坑:3个关键步骤搞定API变更

中介房源管理系统重构避坑:3个关键步骤搞定API变更 版本升级后 API 全变了,这种痛只有真做过的人懂。 很多团队在接手老旧房产项目时,最崩溃的不是代码烂,而是底层框架升级后,原本熟悉的接口调用方式彻底失效。 这份 保姆级教程…

2026/9/22 0:04:49

3个坑点带你一文搞懂55gg小游戏源码

3个坑点带你一文搞懂55gg小游戏源码 盯着控制台满屏的红色报错,看着那一长串 StackTrace ,是不是脑子瞬间宕机?别急,这种时候最忌讳的就是盲目改代码。很多刚入行的前端同学,面对 55gg 小游戏这类轻量级 H5…

2026/9/20 4:54:47

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/21 18:32:12

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/21 10:29:02

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码