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-总览|← 返回总览]]

相关新闻

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

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

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

2026/10/22 7:23:38 阅读更多 →
第8讲|模型微调  平台型 AI 产品:从单点 AI 应用到企业级 AI 能力平台

第8讲|模型微调 平台型 AI 产品:从单点 AI 应用到企业级 AI 能力平台

写在前面:微调不是万能药,平台也不是“套壳工具” 前七讲,我们已经完成了 AI 产品经理从基础认知到核心实战的主要路径。 第一讲,我们讲了 AI 产品经理岗位图谱,明确 AI PM 不是“会用 AI 工具”,而是能把模型能力转化为产品价值的人。 第二讲,我们讲了大模型底层通识…

2026/10/21 17:14:01 阅读更多 →
RPG Maker加密资源解密工具:三分钟掌握专业解密技巧

RPG Maker加密资源解密工具:三分钟掌握专业解密技巧

RPG Maker加密资源解密工具:三分钟掌握专业解密技巧 【免费下载链接】RPGMakerDecrypter Tool for decrypting and extracting RPG Maker XP, VX and VX Ace encrypted archives and MV and MZ encrypted files. 项目地址: https://gitcode.com/gh_mirrors/rp/RPG…

2026/10/21 10:41:21 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/22 10:18:38 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/22 11:01:53 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/22 9:44:47 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/22 10:42:00 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/22 10:40:08 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/22 10:56:37 阅读更多 →

日新闻

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/22 1:47:45 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/21 21:32:28 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/22 5:12:39 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:50:56 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:51:55 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 16:24:48 阅读更多 →