Python数值算法片段

集合 R n \mathbb{R}^{n} Rn是所有 n n n元组的实数的集合。 用集合表示法是 R n = { ( x 1 , x 2 , x 3 , ⋯   , x n ) : x 1 , x 2 , x 3 , ⋯   , x n ∈ R } \mathbb{R}^{n}=\left\{\left(x_{1}, x_{2}, x_{3}, \cdots, x_{n}\right): x_{1}, x_{2}, x_{3}, \cdots, x_{n} \in \mathbb{R}\right\} Rn={(x1,x2,x3,,xn):x1,x2,x3,,xnR}。 例如,集合 R 3 \mathbb{R}^{3} R3表示三维空间中的实三元组 ( x , y , z ) (x, y, z) (x,y,z)坐标。

R n \mathbb{R}^{n} Rn中的向量是 R n \mathbb{R}^{n} Rn中的 n n n元组或点。 向量可以在行向量中水平地写(即向量的元素彼此相邻),或在列向量中垂直地写(即向量的元素彼此顶部)。 如果向量的上下文不明确,则通常意味着该向量是列向量。 向量的第 i i i个元素 v v v v i v_i vi表示。 列向量的转置是相同长度的行向量,而行向量的转置是列向量。 在数学中,转置由上标 T T T v T v^{T} vT表示。 零向量是 R n \mathbb{R}^{n} Rn中包含所有零的向量。

向量的范数是其长度的度量。 有许多方法可以根据所使用的度量(即,所选的距离公式)来定义向量的长度。 最常见的称为 L 2 L_{2} L2范数,它是根据您可能从小学时熟悉的距离公式计算得出的。 向量 v v v L 2 L_{2} L2范数由 ∥ v ∥ 2 \|v\|_{2} v2表示, ∥ v ∥ 2 = ∑ i v i 2 \|v\|_{2}=\sqrt{\sum_{i} v_{i}^{2}} v2=ivi2 。 有时也称为欧几里得长度,是指向量在一维,二维或三维空间中的“物理”长度。 L 1 L_{1} L1范数或“曼哈顿距离”的计算公式为 ∥ v ∥ 1 = ∑ i ∣ v i ∣ \|v\|_{1}=\sum_{i}\left|v_{i}\right| v1=ivi,以纽约市的网格状道路结构命名。通常,向量的 p p p范数 L p L_{p} Lp为: L ∞ L_{\infty} L范数是 p p p范数,其中 p = ∞ p=\infty p= L ∞ L_{\infty} L范数写为 ∥ v ∥ ∞ \|v\|_{\infty} v,它等于 v v v中的最大绝对值。

片段1

创建行向量和列向量,并显示向量的形状。

import numpy as np
vector_row = np.array([[1, -5, 3, 2, 4]])
vector_column = np.array([[1], 
                          [2], 
                          [3], 
                          [4]])
print(vector_row.shape)
print(vector_column.shape)

输出

(1, 5)
(4, 1)

注意! 在Python中,行向量和列向量有些棘手。 从上面可以看到,为了获得1行4列或4行1列向量,我们必须使用list列表进行指定。 您可以定义np.array([1,2,3,4]),但很快您会发现它不包含有关行或列的信息。

片段2

将上面定义的行向量转置为列向量,并计算其 L 1 , L 2 L_{1}, L_{2} L1,L2 L ∞ L_{\infty} L范数。验证向量的 L ∞ L_{\infty} L范数等于向量中元素的最大值。

from numpy.linalg import norm
new_vector = vector_row.T
print(new_vector)
norm_1 = norm(new_vector, 1)
norm_2 = norm(new_vector, 2)
norm_inf = norm(new_vector, np.inf)
print('L_1 is: %.1f'%norm_1)
print('L_2 is: %.1f'%norm_2)
print('L_inf is: %.1f'%norm_inf)

详情参阅 - 亚图跨际

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值