Hilda

「离开世界之前 一切都是过程」

pandas-数据结构与数据查看

在数据科学领域,Python 是最受欢迎的编程语言之一,但它在数据处理和分析方面的原生能力相对有限。pandas 是一个强大的库,它为 Python 补足了这一短板,能够在 Python 中完成从数据清洗、整理到分析、建模的整个工作流程,而无需切换到其他语言,如 R。 pandas 提供了快速、灵活且直观的数据结构,旨在简单地处理各种关系型或标记型数据。它与 Jupyter 等工具以及...

线性代数-奇异值分解SVD

特征值分解是一个提取矩阵特征很不错的方法,但是它只适用于方阵。而在现实的世界中,我们看到的大部分矩阵都不是方阵,比如说有 m 个学生,每个学生有 n 科成绩,这样形成的一个 m * n 的矩阵就可能不是方阵,怎样才能像描述特征值一样描述这样一般的矩阵的重要特征呢?奇异值分解就是用来干这个事的,奇异值分解是一个能适用于任意的矩阵的一种分解的方法。 1.奇异值和特征值的关系 那么...

numpy-练习

1、给定一个4维矩阵,如何得到最后两维的和?(提示,指定axis进行计算) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 X = np.random.randint(0, 10, (2, 2, 3, 3)) display(X) """ array([[[[9, 2, 6], ...

numpy-线性代数

NumPy 不仅仅是一个高效的数组库,它还提供了强大的线性代数功能,这是机器学习、科学计算和数据分析的基石。 线性代数是数学的一个分支,研究向量空间和线性变换。在 NumPy 中,线性代数操作是高度优化的,通常通过 numpy.linalg 模块提供。 1.矩阵乘积 矩阵乘法是线性代数中最基本也是最重要的操作之一。它不同于逐元素乘法(Hadamard 乘积)。 定义: 只有...

numpy-实战:用 NumPy 分析鸢尾花花萼属性各项指标

实战 - 用 NumPy 分析鸢尾花花萼属性各项指标 本节将通过一个实际案例来展示如何使用 NumPy 对数据集进行基本的数据加载、清洗和统计分析。我们将使用经典的鸢尾花(Iris)数据集中的花萼长度数据。 1.数据加载与初步处理 数据加载: np.loadtxt() 函数用于从文本文件加载数据。 fname:文件名或文件路径。 delimi...

numpy-通用函数

NumPy 的核心优势之一在于其对“通用函数”(Universal Functions,通常简称为 UFuncs)的支持。UFuncs 是对 ndarray 对象进行逐元素操作的函数。它们是 NumPy 性能的关键,因为它们在 C 语言层面实现,并且能够自动利用矢量化和广播机制,从而在处理大型数组时提供极高的效率。 1.元素级数字函数 通用函数(UFuncs)是 NumPy 提供的一...

numpy-形状操作

1.什么是广播 在 NumPy 中,广播(Broadcasting)是一种强大的机制,它允许在形状不同的数组之间执行算术运算(如加、减、乘、除等)。当两个数组的形状不完全相同时,NumPy 会尝试通过“扩展”较小数组的维度来使其与较大数组的形状兼容,从而无需显式地复制数据。这极大地简化了代码,并提高了计算效率。 广播是 NumPy 在执行算术运算时处理具有不同形状的数组的一种方式。它...

numpy-形状操作

1.数组变形 数组变形是指改变数组的维度(shape),同时保持其数据不变。这是 NumPy 中一个非常常见的操作,允许您将数据以不同的组织形式进行处理。 ndarray.reshape(new_shape) 方法: 这是最常用的变形方法。它返回一个具有新形状的数组,但通常不复制数据,而是创建一个原始数组的视图。只有当新旧形状的数据存储方式不兼容时(例...

numpy-索引 花式索引 切片 布尔值索引

1.基本索引和切片 基本索引和切片是 NumPy 中访问数组元素的最常见方式,类似于 Python 列表的索引和切片,但功能更强大,尤其是在多维数组中。 (1)一维数组 对于一维数组,基本索引和切片与 Python 列表非常相似: 索引单个元素: 使用方括号 [] 和一个整数索引来访问单个元素。索引从 0 开始。负数索引表示从数组末尾开始计数(-1 是最后一个元素)。 ...

numpy-深拷贝与视图

1.完全没有复制(引用赋值) 当将一个 NumPy 数组直接赋值给另一个变量时,实际上并没有创建一个新的数组对象,而是创建了一个指向相同内存地址的新引用。这意味着两个变量现在都指向内存中的同一个 NumPy 数组对象。它们是“命运共同体”,对其中任何一个变量所代表的数组进行的修改,都会立即反映在另一个变量上,因为它们操作的是同一块数据。 这种行为与 Python 中可变对象的默认赋值...