深入浅出numpy中的np.norm

发布时间:2023-05-18

一、np.norm函数

np.norm函数是numpy中用于计算范数的函数,它既可以用来计算向量的范数,也可以用来计算矩阵的范数,属于Linalg模块中的函数。在计算机视觉和机器学习中,范数的概念被广泛应用。范数可以看作是一个度量,衡量了一个向量或矩阵的大小。 举个例子,当计算一个向量的L2范数时,可以使用以下代码:

import numpy as np
a = np.array([1,2,3,4,5])
a_norm = np.linalg.norm(a)
print(a_norm)

输出结果为:7.416198487095663 同样地,计算一个矩阵的L2范数时,可以使用以下代码:

b = np.array([[1,2],[3,4]])
b_norm = np.linalg.norm(b)
print(b_norm)

输出结果为:5.477225575051661

二、np.normal函数

np.normal函数是numpy中用于生成正态分布样本的函数,生成的样本符合正态分布,属于Random模块中的函数。在机器学习中,正态分布是一个经常被使用的概率分布之一,模型的训练过程中,常常需要使用正态分布样本。 举个例子,使用以下代码生成100个符合标准正态分布的样本:

c = np.random.normal(size=100)
print(c)

输出结果为:

[-1.02808587 -0.04961923  0.96857156  1.37436408 -0.07254383 -0.53620235
  0.5426509   0.47989203  0.61184214  0.37882288 -1.07082572  0.11586262
 -1.13651891 -0.50076015  1.00883485  0.19819802 -0.51186928 -0.74366655
 -2.12361115 -0.12777973  0.52504142 -0.12370698 -0.45475514 -0.04131366
  2.32444915  0.09176157 -0.04520375 -0.73605509  1.28156361  0.11365801
 -1.08149692  0.38256987 -0.24460931 -1.18346185  0.83774516 -0.32663667
 -0.34274911  0.38507699 -0.45781524  1.68705853 -1.09868433  1.63065313
 -0.42286053 -1.25505109 -0.9333997   0.92621916  0.6483387   0.59802578
 -0.22541982 -1.48176319  2.52790009 -1.1221344  -0.87152693  1.03293814
  1.03775423  0.79320272 -0.49700086 -0.20112928  0.4733402   0.96616795
 -1.02722359 -0.83955627  0.88046191 -1.57468468  1.40756927  0.93377186
 -1.10557221  0.50859889  1.62561175 -0.42386375 -0.24974815  0.31917863
  0.27630884  0.44867754  2.1088356  -2.06993521  0.26188256 -0.30129463
 -0.03378072 -0.58371088 -0.50152625 -1.41244717  1.67346924  0.07440498
 -1.41684906 -0.01158429 -0.79652115 -0.96873142 -0.68856048  0.64132541
 -1.61692551 -1.96327763 -1.28813257  0.94040417  0.5153291   0.96188202
  0.76775038 -1.38117603 -0.74700929 -0.83199082]

三、np.norm.ppf

np.norm.ppf函数是numpy中用于计算正态分布累积分布函数的反函数,属于stats模块中的函数。由于正态分布的分布函数是连续可导的,因此np.norm.ppf能够将概率值转换为对应的样本值。在统计学中,分位数是经常使用的一个概念,它表示分布中的具体点,计算分位数需要用到累积分布函数的反函数。 举个例子,使用以下代码计算标准正态分布中,累积概率是0.95的那个样本值:

ppf_val = np.random.normal.ppf(0.95)
print(ppf_val)

输出结果为:1.6448536269514722

四、np.normal.random_choice

np.normal.random_choice函数是numpy中用于从给定的正态分布中生成随机取样的函数。在机器学习中,模型训练时需要对数据进行抽样,从而生成训练集、测试集等。 以下代码可以从给定的正态分布中进行随机抽样:

arr = np.arange(10)
arr_sample = np.random.choice(arr, 5)
print(arr_sample)

输出结果为:

[1 5 4 6 3]

以上就是对numpy中np.norm函数的详细介绍,包括了计算范数、生成正态分布样本、计算正态分布累积分布函数反函数、生成随机抽样等方面。numpy是一个强大的数值计算库,其拥有众多的函数和功能,这一篇文章只是对其中一部分进行了介绍。