提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
最近在入门机器学习,python不怎么熟,也没有系统学习numpy,想到什么就写什么。
一、numpy是什么?
计算向量和矩阵的python库
二、向量转置是个什么结果
1.测试代码
代码如下:
import numpy as np
y = [0,0,0,1, 1 ,1 ,1, 1 ,1, 1, 1, 2 ,2 ,2, 2 ,2 ,3 ,3, 3, 3]
y = np.array(y)
print(y)
print(y.T)
2.运行结果
[0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 3 3 3 3]
[0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 3 3 3 3]
3.总结
numpy中向量转置没有任何变化。
三、矩阵和n维向量,1xn矩阵,nx1矩阵的减法
1.测试代码
代码如下:
import numpy as np
x = [[1,2,1,3,4],[2,1,7,5,4]]
y = [1,1,1,1,1]
a = np.array(x) # a:2*5矩阵
b = np.array(y) # b:5维向量
c = np.array([y]) # c:1*5矩阵
print(a - c) # 2*5矩阵 - 1*5矩阵
print(a - b) # 2*5矩阵 - 5维向量
print(a.T - c.T) # 5*2矩阵 - 5*1维向量
print(a.T - b) # 5*2矩阵 - 5维向量
2.运行结果
[[0 1 0 2 3]
[1 0 6 4 3]]
[[0 1 0 2 3]
[1 0 6 4 3]]
[[0 1]
[1 0]
[0 6]
[2 4]
[3 3]]
Traceback (most recent call last):
File "C:\Users\31166\PycharmProjects\PythonProject\main.py", line 72, in <module>
print(a.T - b) # 5*2矩阵 - 5维向量
~~~~^~~
ValueError: operands could not be broadcast together with shapes (5,2) (5,)
3.总结
结论1:矩阵和矩阵形式的行向量“宽度”一致,可减,具体操作是矩阵中的每一行都减去行向量。
结论2:矩阵和矩阵形式的列向量“高度”一致,可减,具体操作是矩阵中的每一列都减去列向量。
结论3:向量等价于矩阵形式的行向量。