numpy中的向量和矩阵

本文目标:

证明:
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确实是对列操作

你可能感兴趣的:(numpy中的向量和矩阵)