学习TensorFlow前的NumPy核心知识点

深度学习系列(1) TensorFlow---Tensorflow学习路线 TensorFlow入门学习路线 阅读详情

学习TensorFlow前的NumPy核心知识点

一、数组创建与属性

数组创建

核心方法:使用np.array()、np.zeros()、np.ones()、np.arange()、np.linspace()创建数组。

import numpy as np

# 创建一维数组
arr1 = np.array([1, 2, 3])

# 创建全零二维数组
zeros_arr = np.zeros((2, 3))  # shape为(2,3)

# 创建等差数组
range_arr = np.arange(0, 10, 2)  # 输出: [0, 2, 4, 6, 8]

使用场景:初始化神经网络权重、生成输入数据或占位符。

数组属性

关键属性:shape(形状)、dtype(数据类型)、ndim(维度数)。

arr = np.array([[1, 2], [3, 4]])
print(arr.shape)  # (2, 2)
print(arr.dtype)  # int64
print(arr.ndim)   # 2

使用场景:调试TensorFlow张量形状或数据类型时快速验证。

二、数组操作与计算

算术运算

操作:四则运算(+、-、*、/)、点乘(np.dot())、矩阵乘法(@或np.matmul())。

a = np.array([2, 0])
b = np.array([1, 1])
dot_product = np.dot(a, b)  # 2*1 + 0*1 = 2

matrix_a = np.array([[1, 2], [2, 2]])
matrix_b = np.array([[3, 4], [4, 5]])
matrix_product = matrix_a @ matrix_b  # [[11,14], [14,18]]

使用场景:神经网络中的线性层计算(如全连接层的前向传播)。

广播机制

规则:不同形状的数组在算术运算时自动扩展维度。

a = np.array([[1, 2], [3, 4]])
b = np.array([10, 20])
result = a + b  # [[11,22], [13,24]]

使用场景:批量数据处理时自动对齐维度(如批量归一化)。

三、数组变形与合并

变形操作

方法:reshape()、flatten()调整数组形状。

arr = np.arange(6).reshape(2, 3)  # [[0,1,2], [3,4,5]]
flat_arr = arr.flatten()  # [0,1,2,3,4,5]

使用场景:将图像数据(如28x28像素)展平为输入向量。

合并与拆分

方法:np.concatenate()、np.split()。

arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6]])
merged = np.concatenate((arr1, arr2), axis=0)  # 按行合并
# [[1,2], [3,4], [5,6]]

使用场景:合并多个训练批次数据或拆分验证集。

四、高级索引与统计

切片与布尔索引

操作:通过条件筛选数据。

arr = np.array([5, 10, 15, 20])
filtered = arr[arr > 10]  # [15, 20]

使用场景:数据预处理时过滤异常值。

统计函数

常用函数:np.sum()、np.mean()、np.max()。

data = np.array([[1, 2], [3, 4]])
sum_all = np.sum(data)        # 10
mean_col = np.mean(data, axis=0)  # [2, 3]

使用场景:计算损失函数(如均方误差)或评估指标。

五、数据类型转换

方法:astype()转换数据类型。

arr = np.array([1, 2, 3], dtype=np.float32)
int_arr = arr.astype(np.int32)  # [1,2,3] (int类型)

使用场景:图像数据归一化(将uint8转换为float32)。

六、与TensorFlow的衔接

无缝转换:TensorFlow张量与NumPy数组可直接互转。

import tensorflow as tf

np_array = np.ones((2, 2))
tf_tensor = tf.constant(np_array)  # 转换为TensorFlow张量
back_to_np = tf_tensor.numpy()     # 转回NumPy数组

使用场景:数据加载后通过tf.data.Dataset输入模型。

补充的NumPy核心知识点

七、随机数生成

方法:np.random模块生成随机数,如rand()、randn()、randint()。

# 生成均匀分布随机数组(0~1之间)
uniform_data = np.random.rand(3, 2)  # 3行2列

# 生成正态分布随机数组(均值为0,标准差为1)
normal_data = np.random.randn(100)   # 100个样本

# 生成随机整数(范围1~10)
int_data = np.random.randint(1, 10, size=(5,))  # 如[3,7,2,9,5]

使用场景:神经网络权重初始化、数据增强(随机噪声)、Dropout层的随机掩码生成。

八、文件输入/输出

方法:np.save()、np.load()保存和加载数组数据。

# 保存数组到文件
data = np.array([[1, 2], [3, 4]])
np.save("data.npy", data)  

# 加载数据
loaded_data = np.load("data.npy")

使用场景:存储预处理后的数据集(如图像特征)、加载预训练模型参数。

九、线性代数函数

关键函数:np.linalg.norm()(范数)、np.linalg.inv()(逆矩阵)、np.linalg.eig()(特征值)。

matrix = np.array([[2, 1], [1, 2]])

# 计算矩阵的逆
inv_matrix = np.linalg.inv(matrix)  # [[ 0.666, -0.333], [-0.333, 0.666]]

# 计算L2范数
norm = np.linalg.norm(matrix)  # 3.0(√(2²+1²+1²+2²))

使用场景:正则化(如L2范数惩罚项)、主成分分析(PCA)降维。

十、布尔掩码与高级索引

操作:使用布尔数组或整数数组索引。

data = np.array([[10, 20], [30, 40], [50, 60]])

# 布尔索引(选择第一列大于20的行)
mask = data[:, 0] > 20  # [False, True, True]
result = data[mask]      # [[30,40], [50,60]]

# 整数数组索引
indices = np.array([0, 2])
selected = data[indices] # [[10,20], [50,60]]

使用场景:数据清洗(过滤异常样本)、批量选择特定样本。

十一、向量化操作与性能优化

核心思想:避免Python循环,用NumPy内置函数加速计算。

# 低效方式(循环)
arr = np.random.rand(10000)
slow_sqrt = [np.sqrt(x) for x in arr]

# 高效方式(向量化)
fast_sqrt = np.sqrt(arr)

使用场景:大规模数据预处理(如图像归一化)、自定义损失函数实现。

十二、内存管理与视图/副本

概念:

  • 视图(View):共享数据内存的数组(如切片操作)。
  • 副本(Copy):独立内存的新数组(需显式调用copy())。
arr = np.array([1, 2, 3, 4])
view_arr = arr[1:3]   # 视图(修改view_arr会影响arr)
copy_arr = arr.copy() # 副本(独立内存)

使用场景:处理大型数据集时减少内存占用(如分块加载数据)。

十三、结构化数组与记录数组

方法:定义复杂数据类型(类似Pandas的DataFrame)。

# 定义结构化数据类型
dtype = [('name', 'S10'), ('age', 'i4'), ('score', 'f4')]
data = np.array([('Alice', 25, 89.5), ('Bob', 30, 92.0)], dtype=dtype)

# 按字段查询
ages = data['age']  # [25, 30]

使用场景:处理非数值数据(如带标签的异构数据集)。

十四、通用函数(ufunc)

作用:对数组元素执行快速逐元素运算(如np.sin()、np.exp())。

x = np.array([0, np.pi/2, np.pi])
sin_x = np.sin(x)  # [0, 1, 0]
exp_x = np.exp(x)  # [1, 4.81, 23.14]

使用场景:激活函数计算(如Sigmoid、ReLU)、自定义层实现。

十五、数组重复与平铺

方法:np.repeat()、np.tile()扩展数组维度。

arr = np.array([1, 2])
repeated = np.repeat(arr, 3)  # [1,1,1,2,2,2]
tiled = np.tile(arr, (2, 1))   # [[1,2], [1,2]]

使用场景:数据增强(复制样本)、构建卷积核的多通道扩展。

总结

掌握上述NumPy知识点后,能够高效地处理TensorFlow中的张量操作、数据预处理以及模型调试。在实际应用中,例如图像分类任务,需要将图像数据转换为NumPy数组并进行归一化和变形,然后输入到TensorFlow模型中进行训练。

以上知识点进一步涵盖了数据处理、数学运算和性能优化,尤其在以下场景中具有广泛的应用:

数据预处理

  • 文件加载:使用np.load()加载预处理后的数据。
  • 类型转换:通过astype()将数据转换为所需的类型。
  • 异常值过滤:利用布尔索引arr[condition]筛选出正常数据。

模型训练

  • 权重初始化:借助np.random模块生成符合特定分布的初始权重。
  • 矩阵运算:运用np.dot()、np.matmul()等函数实现全连接层的矩阵乘法。
  • 激活函数计算:使用通用函数np.relu()、np.sigmoid()等计算激活值。

结果分析

  • 统计指标计算:利用np.mean()、np.std()等函数评估模型性能。
  • 特征工程:通过np.linalg模块实现PCA降维,提取主要特征。

掌握这些内容后,可以更高效地将NumPy与TensorFlow结合,处理复杂深度学习任务。

PyTorch、TensorFlow 和 NumPy三者之间的区别与联系是什么? 你知道PyTorch、TensorFlow 和 NumPy三者之间的区别与联系是什么吗 阅读详情

相关推荐

深度学习与TensorFlow核心技巧解析

本文涵盖TensorFlow核心特性、与NumPy的区别、数据结构、自定义层与模型、损失函数和指标的实现方式、动态模型、TFRecords、迁移学习、RNN架构、序列建模等内容。重点介绍了在训练模型时如何优化性能、处理数据以及构建高效模型架构的实用技巧。

numpy6sculptor的博客 929

利用NumPy核心知识点优化TensorFlow模型训练过程

本文详细阐述如何利用NumPy提升TensorFlow模型训练效率。主要优化点包括:数据预处理中的向量化操作与批量标准化;大数据集的内存映射加载;自定义模型初始化方法;权重和梯度的数据分析;实现混合精度训练与高级梯度处理;性能监控与分析;以及数据类型优化与预计算缓存策略。通过NumPy与TensorFlow协同工作,可在保持代码灵活性的同时大幅提升训练效率,减少内存消耗并优化整体性能。

青蛙博客 538

Python数据科学核心库工作流:从NumPy到TensorFlow的协同逻辑

在人工智能工程实践中,机器学习并非孤立算法调用,而是由底层数值计算、结构化数据处理、可视化分析、模型训练与深度学习框架共同构成的端到端工作流。NumPy作为统一数据表示的地基层,为Pandas、Scikit-Learn和TensorFlow提供内存布局与dtype标准化;Pandas以智能索引和向量化操作支撑高效EDA与特征构造;Scikit-Learn通过一致API和Pipeline机制保障可复现性与工程鲁棒性;TensorFlow/Keras则在大规模非结构化数据场景中提供灵活建模能力。理解各库的职责边

aikunjiao3421的博客 536

吴恩达深度学习复盘(5)神经网络的前向传播TesorFlow与NumPy实现比对

数据表示的历史背景NumPy 是 Python 科学计算的基础库,早期设计为处理多维数组TensorFlow 由 Google Brain 团队开发,采用张量(Tensor)作为核心数据结构两者在矩阵存储方式上存在历史遗留的不一致性矩阵维度的关键概念矩阵维度表示为行数×列数(如 2×3 矩阵)行向量(1×n)与列向量(n×1)的区别NumPy 一维数组(ndarray)与二维矩阵的差异数据输入的维度规范性框架间转换的显式处理历史设计差异带来的潜在问题。

wgc2k的博客 1451

机器学习之学习路径、学习方法、常用工具、Python、Numpy、pandas、sklearn、Tensorflow、Pytorch、Git入门教学大纲

学习方法核心思想 Python基础 2.1 Python运行环境(Jupyter Notebook) 2.2 编程规范 2.3 基本语法 2.4 函数式编程 2.5 面向对象 2.6 文件操作 数据处理常用库Numpy 数据处理常用库Pandas(DataFrame、Series等) Linux常用命令 Git和Github .........................................................

herosunly的博客 1万+

从Blender舞步到夜空画卷:基于Pix飞控的无人机编队灯光秀全链路开发实践

本文详细介绍了基于Pixhawk飞控的无人机编队灯光秀全链路开发实践。从Blender三维动画设计、QGroundControl地面站二次开发与MAVLink通信桥接,到PX4飞控的OFFBOARD模式路径控制与LED灯光驱动实现,最后通过Gazebo仿真验证并完成真机组装与首飞。文章为无人机爱好者提供了一套完整的、从创意设计到夜空执行的开源解决方案,重点阐述了多机同步与灯光控制的核心技术挑战与应对策略。

zeta9的博客 584

Python机器学习库完全指南:NumPy、Pandas、Scikit-learn、TensorFlow

想要快速掌握Python机器学习的核心技能吗?这份**终极指南**将带你深入了解四大核心库:NumPy、Pandas、Scikit-learn和TensorFlow。无论你是数据科学新手还是希望提升技能的开发者,这些强大的工具都将成为你机器学习之旅的得力助手。 ## 🤔 为什么要学习这些机器学习库? 在现代数据科学领域,Python凭借其丰富的生态系统成为机器学习的主流语言。**NumPy、

gitblog_01182的博客 1000

clock-gating整理

文章目录clock gating 理解1、latch双稳态器件常见锁存器结构SR锁存器D锁存器2、clock gating(clock low-active) latch + AND gating 电路(clock high-active)latch + OR gating 电路 clock gating 理解 1、latch 参考:https://www.cnblogs.com/IClearner/p/6443539.html 双稳态器件 稳定状态为0或1两种 举例:交叉耦合反相器 假设初始Q为1,则可

d_b_的博客 1万+

NumPy、TensorFlow和scikit-learn简介

目录 安装 NumPy TensorFlow scikit-learn 结论 下载Module8.zip-1.4 KB 这是我们关于Python及其在机器学习和AI中的应用系列的第八个也是最后一个模块。在上一篇中,我们与Keras讨论了神经网络。现在,我们将快速看一下NumPy和TensorFlow。因为它们是机器学习库的构建块,所以您一定会遇到它们。如果您是企业开发人员,则不会仅使用这些库编写完整的解决方案(这需要更长的时间,而且更难维护)。对于数据科学家,专门的AI/ML工程师以及更高级别的

寒冰屋的专栏 690

OTN传送网实战指南:从光层到电层的完整架构解析(附配置示例)

本文深入解析OTN传送网从光层到电层的完整架构,涵盖关键组件、技术实现及配置示例。通过高速公路与光传送网的类比,详细介绍了光层超宽传输管道构建、电层业务调度核心引擎以及控制平面智能运维实战。附有典型组网方案与故障排查指南,助力网络工程师高效部署与维护OTN传送网。

tomato的博客 682

X光安检模型训练第一步:手把手教你处理OPIXray和HIXray这两个小众数据集

本文详细解析了X光安检AI模型训练的关键步骤,重点介绍如何处理OPIXray和HIXray这两个专业数据集。从数据格式转换到YOLO标准,再到数据增强和质量验证,手把手指导开发者高效利用这些数据集进行目标检测模型训练,提升安检场景下的危险物品识别准确率。

weixin_32629853的博客 316

【机器学习】集成 TensorFlow 与 NumPy 以实现自定义操作

结合 TensorFlow 与 NumPy 的优势,能够构建一座连接高性能机器学习与精确数值计算的桥梁。这种集成对于致力于突破边界的机器学习开发者而言,具有颠覆性意义,不仅带来前所未有的灵活性,用于实现自定义操作和优化工作流程,也重塑了数值数据的处理与建模方式。TensorFlow 的硬件加速能力与 NumPy 丰富的数学工具相辅相成,为应对复杂计算挑战打开了创新的大门。

等风来 1052

手把手教你学Simulink实例:基于Simulink的锂电池管理系统(BMS)仿真

是确保锂电池安全、高效运行的关键组件。BMS 主要功能包括监控电池的状态(如电压、电流、温度)、估算荷电状态(State of Charge, SOC)、健康状态(State of Health, SOH),以及实现电池均衡和保护机制等。Simulink 提供了一个强大的仿真环境,可以用来设计、分析和验证锂电池管理系统的控制策略。常见的均衡方法包括被动均衡(通过电阻放电)和主动均衡(通过开关电容或变压器)。通过本教程,我们详细介绍了如何使用 Simulink 进行锂电池管理系统的仿真实例。

MHD0815的博客 538

机器学习——TensorFlow中的数据

在这节当中,我们将一起学习如何使用numpy和tensorflow表示数据。所以当我们实现新的神经网络时,你可以有一个一致的框架来考虑如何表示你的数据,今天用代码做事情的方式有一个不幸的事情,在很久之前,numpy首先被创建,并成为python中线性代数的标准库,很久之后,谷歌大脑团队创建张量流,所以不幸的是,在numpy中表示数据的方式之间存在一些不一致之处与张量流。让我们从TensorFlow如何表示数据开始。假设有这样一个数据集,以咖啡的例子,之前提到过这样写x,那么为什么要有双方括号呢?

2401_88060750的博客 2190

10万+字超硬核 机器学习 笔记(面试八股)

10w字总结面试中可能用到的机器学习八股和常用算法,包括感知机(Perceptron)、多层感知机(MLP, Multi-Layer Perceptron)、支持向量机(SVM, Support Vector Machine)、K 最近邻(KNN, K-Nearest Neighbors)、朴素贝叶斯(Naive Bayes)、决策树(Decision Tree)、随机森林(Random Forest)、Bagging、Boosting、GBDT、XGBoos、LightGBM等。

haopinglianlian的博客 4654

xtop:multi_driven_net与incomplete_timing_cell fail reason 分析

man multi_driven_net”可以得知,这个问题是multi driven结构引起的,使用命令“get_failed_pins -reason multi_driven_net”,获取violation pin。“man incomplete_timing_cell”可以得知,这个fail reason的原因是缺少timing library cell,检查并补全后这个错误就显示了。这里选择的解决方法是修改lib文件,把inout改成input,重新lib2idb。通过这种方法解决了问题。

m0_61544122的博客 564

Python AI开发入门:NumPy、Pandas与TensorFlow实战

Python AI开发入门:NumPy、Pandas与TensorFlow实战

layneyao的博客 1554

信捷PLC XD5系列运动控制(10轴)编程应用篇

项目PLC采用XD5-60T10-E,36DI 24DO 晶体管输出,支持10路脉冲输出功能。TMR指令定时器时基可以自己设定,这点比其他品牌PLC方便。ZRN指令我们需要上升沿指令触发。 5、变址寻址 该说不说这个变址寻址是真的强,比西门子指针、三菱的变址寄存器Z 、V都要更加灵活。 7、特殊寄存器:时钟 8、如何建立PLC通讯...............

RXXW_Dor的博客 1万+

8月10日TensorFlow学习笔记——TensorFlow 数据类型、创建、索引与切片、维度变换、前向传播

本文为8月10日TensorFlow学习笔记,分为十个章节: - Numpy 回归问题实战; - 手写数字识别; - 数据类型; - 创建 Tensor; - 常见维度; - 索引与切片; - 维度变换; - Broadcasting; - 数学运算; - 前向传播。 ...

Ashen_0nee的博客 1163

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

python框架Numpy、Pandas、Flask、Django、TensorFlow(ai写的

NumPy:底层数值计算,所有 AI 库的基础Pandas:处理 Excel 表格、数据分析神器Flask:轻量,写接口、小网站、AI 部署Django:重型,做大型官网、管理系统TensorFlow:谷歌深度学习,工业级训练和部署。

2401_82607598的博客 520

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

TensorFlow的numpy()函数

将损失转换为 NumPy 用于日志记录print(f"当前批次损失: {current_loss:.4f}").numpy()方法的核心作用:桥梁作用:连接深度学习框架和传统的 Python 科学计算栈数据转换:将框架特定的张量转换为通用的 NumPy 数组功能扩展:让深度学习数据能够使用丰富的 NumPy/Scipy/Matplotlib 生态系统调试工具:便于在开发过程中检查和操作数据记住关键点:不是独立的 NumPy 函数,而是张量的方法。

limenga102的专栏 452

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

tensorflow对应numpy_TensorFlow、numpy、matplotlib、基本操作

一、常量的定义importtensorflow as tf#类比 语法 api 原理#基础数据类型 运算符 流程 字典 数组data1 = tf.constant(2,dtype=tf.int32)data2= tf.Variable(10,name='var')print(data1)print(data2)#shape 维度 const长度 shape维度 dtype 数据类型ses...

weixin_39710249的博客 2468

使用 RestSharp 构建类型化 API 客户端:以 Twitter API v2 的 OAuth2 客户端为例

RestSharp 本身是一个通用的 HTTP 客户端,但最佳实践并不是在业务代码中到处直接创建 `RestClient`,而是以它为基础为每一个外部 API 封装一个类型化、可测试、可配置的代理类。本文以 RestSharp v112 版本文档中的 Twitter API v2 客户端为例,完整演示如何从零实现一个自带 OAuth2 客户端凭证(machine-to-machine)认证的强类型

gitblog_00514的博客 1032

【pytorch tensorflow numpy对照表】

tensorflow numpy pytorch 作用 用法 tf.reduce_mean(tensor,axis) torch.mean(tensor,axis) 取均值 tf详情 tf.reduce_sum(tensor,axis) torch.sum(tensor,axis) 求和 tf详情 tf.square(tensor) torch.square(tensor) x*...

magic_shuang的博客 2416

tensorflow学习笔记(使用 tf.data 加载 NumPy 数据)

本文章是对tensorflow的理解 tensorflow学习笔记(使用 tf.data 加载 NumPy 数据 本教程提供了一个将数据从 NumPy 数组加载到 tf.data.Dataset 中的示例。 此示例从 .npz( NumPy Zipped Data) 文件加载 MNIST 数据集。 导入模块 import numpy as np import tensorflow as tf import tensorflow_datasets as tfds 从 .npz 文件中加载 从网页DATA.

DNDAW的博客 954
上一篇: Python装饰器详解
下一篇: 使用TensorFlow时需掌握的Pandas核心知识点
未来创世纪
博客等级 码龄18年 960粉丝 209原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值