有点抱歉的是我的数学功底确实是不好,经过了高中的紧张到了大学之后松散了下来。原本高中就有点拖后腿的数学到了大学之后更是一落千丈。线性代数直接没有学明白,同样没有学明白的还有概率及统计以及复变函数。时至今日,我依然觉得这是人生中让人羞愧的一件事儿。不过,好在我还有机会,为了不敷衍而去学习一下。
矩阵的转置有什么作用,我真是不知道了,今天总结完矩阵转置的操作之后先去网络上补充一下相关的知识。
今天的代码操作如下:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
|
In [ 15 ]: arr1 = np.arange( 20 ) In [ 16 ]: arr1 Out[ 16 ]: array([ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 ]) In [ 17 ]: arr2 = arr1.reshape(( 4 , 5 )) In [ 18 ]: arr2 Out[ 18 ]: array([[ 0 , 1 , 2 , 3 , 4 ], [ 5 , 6 , 7 , 8 , 9 ], [ 10 , 11 , 12 , 13 , 14 ], [ 15 , 16 , 17 , 18 , 19 ]]) In [ 19 ]: arr3 = arr2.T In [ 20 ]: arr3 Out[ 20 ]: array([[ 0 , 5 , 10 , 15 ], [ 1 , 6 , 11 , 16 ], [ 2 , 7 , 12 , 17 ], [ 3 , 8 , 13 , 18 ], [ 4 , 9 , 14 , 19 ]]) In [ 21 ]: np.dot(arr3,arr2) Out[ 21 ]: array([[ 350 , 380 , 410 , 440 , 470 ], [ 380 , 414 , 448 , 482 , 516 ], [ 410 , 448 , 486 , 524 , 562 ], [ 440 , 482 , 524 , 566 , 608 ], [ 470 , 516 , 562 , 608 , 654 ]]) |
Reshape的方法是用来改变数组的维度,而T的属性则是实现矩阵的转置。从计算的结果看,矩阵的转置实际上是实现了矩阵的对轴转换。而矩阵转置常用的地方适用于计算矩阵的内积。而关于这个算数运算的意义,我也已经不明确了,这也算是今天补课的内容吧!
关于前面的两个补课,看了一堆资料确实是不好理解。但是总是记忆公式终归不是我想要的结果,以后还需要不断地尝试理解。不过,关于内积倒是查到了一个几何解释,而且不知道其对不对。解释为:高维空间的向量到低维子空间的投影,但是思索了好久依然是没有弄明白。看来,线性代数还是得闷头好好理解一下咯。
以上这篇对numpy中数组转置的求解以及向量内积计算方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/grey_csdn/article/details/69488706