本文目标:
证明:
1.(3,)表示列向量,[ [1,2,3], [1,2,4 ]] 中 [1,2,3] 是行向量
2. axis = 0 表示对行进行操作,axis = 1 表示对列操作
ps:(其实只是加深自己的理解233,所以证明的可能不严谨)
前期铺垫:
- 什么是行合并?
a = np.array([[1,2,4],[2,3,4]])
b = np.array([[1,2,4],[2,2,2]])
print(a.shape)
print(np.concatenate([a,b], axis=0))
(2, 3) -- 2行3列
[[1 2 4]
[2 3 4]
[1 2 4]
[2 2 2]]
2行3列 与 2行3列 进行axis=0的行合并操作得到 4行3列
正文:
a = np.array([1,2,3])
print(a.shape()) # (3,)
- 这个(3,)表示就是向量
- 那这个是列向量还是行向量呢?
- 列向量 !
- 那这个是列向量还是行向量呢?
(这个问题很重要,比如:使用numpy等工具进行数据处理时,是axis=0,还是axis=1)
下面用代码的逻辑来证明:
首先,
t1 = np.array([1,2,3])
t2 = np.array([1,2,3])
print(np.concatenate([t1,t2], axis=0))
预告:两个nx1的列向量进行行合并,变成2nx1的列向量
# [1 2 3 1 2 3] 运行结果确实如此
- 反证
t1 = np.array([1,2,3])
t1 = t1.reshape(3,1) # 强行转成3×1的列矩阵(不是列向量哦~)
t2 = np.array([1,2,3])
t2 = t2.reshape(3,1)
print(np.concatenate([t1,t2], axis=1))
[[1 1]
[2 2]
[3 3]]
# axis = 1 进行列合并
结论:
在一般的矩阵比如:
x = [[1 2 4 ], [1 2 3 ]] 这个[1 2 4]其实是行向量(可能是为了迎合视觉吧)
但 y = [1 2 3] #(3,)这就妥妥的是列向量了
希望以后碰到axis = 0,axis=1后不要再一脸蒙蔽
ps:axis = 0确实是对行操作,axis=1确实是对列操作