优达学城深度学习之二——矩阵数学和Numpy复习

简介: 优达学城深度学习之二——矩阵数学和Numpy复习

PS:由于第一篇介绍Anaconda的文章不能申请原创标志故发表不了,所以先发表第二篇文章,第一篇会改一些再发表出来。


一、数据维度


维度(scalar),张量(Tensor)。3表示零维张量,[1 2 3]表示一维张量,矩阵表示二维张量,任何大于二维张量就叫张量(Tensor)。如下图所示:

8ccb4fa22f708782c5a3473ce69812e9.jpg

二、Numpy简介


2.1、NumPy 中处理数字的常见方式是通过 ndarray 对象。它们与 Python 列表相似,但是可以有任意数量的维度。而且,ndarray 支持快速的数学运算,这正是我们想要的。由于它可以存储任意数量的维度,你可以使用 ndarray 来表示我们之前提到的任意数据类型:标量、向量、矩阵或张量。


2.2、NumPy 中的标量 比 Python 中的标量类型更多。不像 Python 只有基本类型 int、float 等,NumPy 可以让你指定有符号和无符号的类型以及不同的大小。因此,除了 Python 的 int,你可以使用 uint8、int8、uint16、int16 等类型。


这些类型很重要,因为你所创建的每个对象(向量、矩阵、张量)最终都会存储标量。而且,当你创建 NumPy 数组时,可以指定类型 - 但是数组中的每一项必须具有相同的类型。在这方面,NumPy 数组更像是 C 数组,而非 Python 列表。


如果要创建一个包含标量的 NumPy 数组,方法是将值传递给 NumPy 的 array 函数,如下所示:


s=np.array(5)

不过你仍然可以在 ndarray、NumPy 标量和普通的 Python 标量之间执行数学运算。


2.3、张量与向量和矩阵一样,但张量可以有更多的维度。例如,要创建一个 3x3x2x1 的张量,你可以这样做:


t = np.array([[[[1],[2]],[[3],[4]],[[5],[6]]],[[[7],[8]],\
    [[9],[10]],[[11],[12]]],[[[13],[14]],[[15],[16]],[[17],[17]]]])

而 t.shape 会返回 (3, 3, 2, 1)。


你可以像在矩阵中一样访问其中的项目,但需要使用更多的索引。所以 t[2][1][1][0] 将返回 16。


三、元素级矩阵运算


跟标量计算一样,如下图:

cd5d491c8b683777cc42318fc06c873d.jpg

Numpy运算:相加时

import numpy as np
values=[1,2,3,4,5]
values=np.array(values)+5
# 现在 values 是包含 [6,7,8,9,10] 的一个 ndarray


相关文章
|
4月前
|
Python
NumPy 教程 之 NumPy 数学函数 2
本教程详细讲解了NumPy库中的数学函数应用。特别是对舍入函数`numpy.around()`进行了深入解析。此函数可实现数组中数值的四舍五入。通过调整`decimals`参数,用户可以灵活控制小数点后保留的位数,甚至对整数部分进行舍入操作。示例代码展示了不同参数设置下的舍入效果。
40 1
|
19天前
|
机器学习/深度学习 算法 安全
从方向导数到梯度:深度学习中的关键数学概念详解
方向导数衡量函数在特定方向上的变化率,其值可通过梯度与方向向量的点积或构造辅助函数求得。梯度则是由偏导数组成的向量,指向函数值增长最快的方向,其模长等于最速上升方向上的方向导数。这两者的关系在多维函数分析中至关重要,广泛应用于优化算法等领域。
68 36
从方向导数到梯度:深度学习中的关键数学概念详解
|
3月前
|
Python
NumPy 教程 之 NumPy 矩阵库(Matrix) 4
矩阵是由行和列构成的矩形数组,其元素可以是数字、符号或数学表达式。
36 4
|
3月前
|
Python
NumPy 教程 之 NumPy 矩阵库(Matrix) 2
不同于ndarray,matlib函数生成的是矩阵形式。教程中详细解释了矩阵的概念,并介绍了转置矩阵的实现方式,使用T属性或函数实现。此外,还展示了如何利用`matlib.empty()`创建指定形状的新矩阵,并可选择数据类型及顺序。最后通过示例演示了矩阵填充随机数据的方法。
40 3
|
4月前
|
Python
NumPy 教程 之 NumPy 数学函数 4
NumPy提供了丰富的数学函数,如三角函数、算术函数及复数处理等。本教程聚焦于舍入函数中的`numpy.ceil()`应用。该函数用于返回大于或等于输入值的最小整数(向上取整)。例如,对数组`[-1.7, 1.5, -0.2, 0.6, 10]`使用`np.ceil()`后,输出为`[-1., 2., -0., 1., 10.]`。
41 1
|
4月前
|
Python
NumPy 教程 之 NumPy 数学函数 2
本教程详细展示了如何使用 NumPy 进行三角函数运算,包括正弦(`sin()`)、余弦(`cos()`)、正切(`tan()`)及其反函数。通过实例,我们计算了一系列角度的三角函数值,并利用 `arcsin()`、`arccos()` 和 `arctan()` 计算了对应的反三角函数值。此外,还演示了如何借助 `numpy.degrees()` 将弧度单位转换为角度单位,验证计算结果。
57 1
|
4月前
|
Python
NumPy 教程 之 NumPy 数学函数 3
本教程详细介绍了NumPy中的数学函数,特别是舍入函数`numpy.floor()`的使用方法。该函数可以返回小于或等于输入的最大整数,实现向下取整的功能。例如,对于数组`a = np.array([-1.7, 1.5, -0.2, 0.6, 10])`,应用`np.floor(a)`后,输出结果为`[-2., 1., -1., 0., 10.]`。这在处理包含浮点数的数据时非常有用。
40 0
|
2月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
97 10
|
2月前
|
索引 Python
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧1
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
123 4
|
3月前
|
Python
NumPy 教程 之 NumPy 矩阵库(Matrix) 8
矩阵是由行和列构成的矩形数组,其元素可以是数字、符号或表达式。教程中讲解了如何使用`numpy.matlib.rand()`创建指定大小且元素随机填充的矩阵,并演示了矩阵与ndarray之间的转换方法。此外,还介绍了如何使用T属性进行矩阵转置。示例代码展示了创建矩阵、将其转换为ndarray以及再转回矩阵的过程。
48 9