一、内积

当计算矩阵的内积时,我们需要将第一个矩阵的每一行与第二个矩阵的每一列进行对应元素的乘积运算,并将结果相加得到最终的矩阵。

让我们以示例代码中的矩阵A和矩阵B为例进行说明:

矩阵A:

1
2
[[1 2]
[3 4]]

矩阵B:

1
2
[[5 6]
[7 8]]

首先,我们需要确定最终的矩阵C的维度。根据矩阵乘法的规则,A是一个2×2的矩阵,B是一个2×2的矩阵,所以C的维度将是2×2。

接下来,我们按照矩阵乘法的定义,计算C的每个元素。以C的第一个元素c[0][0]为例:

1
2
3
c[0][0] = a[0][0]*b[0][0] + a[0][1]*b[1][0]
= 1*5 + 2*7
= 19

同样的方式,我们可以计算得到C的其他元素:

1
2
3
4
5
6
7
8
9
10
11
c[0][1] = a[0][0]*b[0][1] + a[0][1]*b[1][1]
= 1*6 + 2*8
= 22

c[1][0] = a[1][0]*b[0][0] + a[1][1]*b[1][0]
= 3*5 + 4*7
= 43

c[1][1] = a[1][0]*b[0][1] + a[1][1]*b[1][1]
= 3*6 + 4*8
= 50

因此,最终的结果矩阵C为:

1
2
[[19 22]
[43 50]]

这就是通过矩阵乘法计算得到的矩阵A和矩阵B的内积。

二、高维转置

这里只理解三维转置,对于原数组arr的维度(2, 2, 4),我们将其进行转置操作,参数为(1, 0, 2)。下面是转置的一步一步进行的过程:

  1. 原数组arr的维度为(2, 2, 4),其中第一个维度表示外层的2个元素,第二个维度表示内层的2个元素,第三个维度表示每个内层元素的长度为4。

  2. 转置操作的参数(1, 0, 2)表示将原数组的第一个维度与第二个维度进行转置,而第三个维度保持不变。

  3. 在转置操作中,我们将第一个维度与第二个维度进行转置。这意味着原数组的外层元素变成了内层元素,内层元素变成了外层元素。所以,转置后的数组的维度变为(2, 2, 4)

  4. 在转置后的数组中,第一个维度表示内层的2个元素,第二个维度表示外层的2个元素,第三个维度表示每个内层元素的长度为4。

下面是转置的具体过程:

原数组arr的值如下所示:

1
2
3
4
5
6
7
8
9
10
[
[
[ 0, 1, 2, 3],
[ 4, 5, 6, 7]
],
[
[ 8, 9, 10, 11],
[12, 13, 14, 15]
]
]

转置后的数组的值如下所示:

1
2
3
4
5
6
7
8
9
10
[
[
[ 0, 1, 2, 3],
[ 8, 9, 10, 11]
],
[
[ 4, 5, 6, 7],
[12, 13, 14, 15]
]
]

可以看到,转置操作改变了数组的维度顺序,但并没有改变数组中元素的顺序。原数组中的元素在转置后的数组中仍然保持相对位置不变,只是维度的顺序发生了交换。

我们可以将原数组看作是两个矩阵,搞清数值之间的x,y,z之间的关系即可。

三、分位数

分位数也称分位点,是指将一个随机变量的概率分布范围分为几个等份的数值点,常用的有中位数(即二分位数)、四分位数、百分位数等。

3.1二分位数

对于有限的数集,可以通过把所有观察值高低排序后找出正中间的一个作为中位数。如果观察值有偶数个,则中位数不唯一,通常取最中间的两个数值的平均数作为中位数,即二分位数。
一个数集中最多有一半的数值小于中位数,也最多有一半的数值大于中位数。如果大于和小于中位数的数值个数均少于一半,那么数集中必有若干值等同于中位数。
计算有限个数的数据的二分位数的方法是:把所有的同类数据按照大小的顺序排列。如果数据的个数是奇数,则中间那个数据就是这群数据的中位数;如果数据的个数是偶数,则中间那2个数据的算术平均值就是这群数据的中位数。

3.2 四分位数

四分位数(Quartile)是统计学中分位数的一种,即把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数。
1)第一四分位数(Q1),又称“较小四分位数”,等于该样本中所有数值由小到大排列后第25%的数字;
2)第二四分位数(Q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字;
3)第三四分位数(Q3),又称“较大四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。
第三四分位数与第一四分位数的差距又称四分位距。

3.3 百分位数

百分位数,统计学术语,如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。运用在教育统计学中,例如表现测验成绩时,称PR值。

四分位数的位置确定
Q1的位置= (n+1) × 0.25
Q2的位置= (n+1) × 0.5
Q3的位置= (n+1) × 0.75
n表示项数

分位数计算的算法:

将数组array从小到大排序,计算(n-1)*p的整数部分为i,小数部分为j,其中n为数组大小,则percentile的值是:(1-j)*array第i+1个数+j*array第i+2个数。

3.4 举例

① 数据总量: 6, 47, 49, 15, 42, 41, 7, 39, 43, 40, 36
由小到大排列的结果: 6, 7, 15, 36, 39, 40, 41, 42, 43, 47, 49
一共11项
Q1 的位置=(11+1) × 0.25=3, Q2 的位置=(11+1)× 0.5=6, Q3的位置=(11+1) × 0.75=9

Q1 = 15,
Q2 = 40,
Q3 = 43

1
2
3
4
5
6
7
8
9
10
11
import numpy as np
arr = np.array([6, 47, 49, 15, 42, 41, 7, 39, 43, 40, 36])
arr.sort()
print("Q1 = ", arr[int(len(arr) * 0.25)])
print("Q2 = ", arr[int(len(arr) * 0.5)])
print("Q3 = ", arr[int(len(arr) * 0.75)])

# 结果
Q1 = 15
Q2 = 40
Q3 = 43

② 数据升序排序的结果:

561,928,1057,3639,6159,7688

计算第二四分位数(Q2)

n = 6

(n-1)*p = (6-1)*0.5 = 2.5

整数部分i = 2, 小数部分为j=0.5

Q2 = (1-0.5)*1057 + 0.5* 3639= 2348

四、随机漫步

随机漫步是指一个物体在空间中随机地移动,每一步的方向和距离都是随机的。这个概念可以用一个简单的例子来解释。

想象你在一个大草坪上,闭上眼睛,然后随机地向前走一步,再随机地向左或向右转一个角度,然后再随机地向前走一步,再转一个角度,如此往复。你不知道下一步会往哪个方向走,也不知道走多远的距离,每一步都是完全随机的。

这样的移动方式就是随机漫步。在数学和物理学中,随机漫步被用来研究随机过程和概率分布。它可以用来模拟许多现实世界中的情况,比如分子在液体中的运动、股票价格的波动等。