• 【Python】深入理解NumPy数组中的一维向量


    一、一维向量

    1.1 它到底是行向量还是列向量?

    思路:利用点乘两个向量维度进行对应的测试

    • 测试1
    import numpy as np
    a = np.array([[1,1,1,1],[1,1,1,1]]).T #4*2矩阵
      ...: b = np.array([2,3]) #长度为2的一维向量
      ...: print(a)
      ...: print(b)
      ...: print(a.shape)
      ...: print(b.shape)
      ...: print(np.dot(a,b))
    [[1 1]
     [1 1]
     [1 1]
     [1 1]]
    [2 3]
    (4, 2)
    (2,)
    [5 5 5 5]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    证明已经确定,一维向量b可以作为列向量与矩阵a相乘。

    • 测试2
    a = np.array([[1,1,1,1],[1,1,1,1]]).T #4*2矩阵
      ...: b = np.array([2,3]).T #长度为2的一维向量
      ...: print(a)
      ...: print(b)
      ...: print(a.shape)
      ...: print(b.shape)
      ...: print(np.dot(a,b))
    [[1 1]
     [1 1]
     [1 1]
     [1 1]]
    [2 3]
    (4, 2)
    (2,)
    [5 5 5 5]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    numpy中的一维向量既可以作为行向量,也可以作为列向量存在

    二、思考

    2.1 一维数组的转置

    一维数组的转置仍是自己本身,这点根据上述实验的一维向量b的shape就能看出来,b.T(转置后)维度不变

    它只是一个长度为2的一维向量

    2.2 习惯上用二维矩阵而不是一维矩阵来表示行向量和列向量

    因为二维必定能够确定他是行向量还是列向量。

    b = np.array([[2,3]]) #行向量
    c = np.array([[2],[3]]) #列向量
    print(b)
    print(c)
    print(b.shape)
    print(c.shape)
    
    [[2 3]]
    [[2]
     [3]]
    (1, 2)
    (2, 1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    三、总结

    3.1 一维向量

    Numpy中的数组shape为(m,)说明它是一个一维数组,或者说是一个向量

    3.2 系统会自动判别行列向量

    但是具体是行向量还是列向量是很灵活的,再与矩阵进行矩阵乘法时,numpy会自动判断此时的一维数组应该取行向量还是列向量。

    3.3 总结

    所以说,无须纠结得到的一维数组是行向量还是列向量,或者说一维数组在用户看来就没有行列之分,其行列的不同在Python计算时会自动进行处理。

    3.4 事实

    numpy对数组的转置也可以看出来,对一维数组进行转置操作,numpy内部不会对其进行任何的操作。

  • 相关阅读:
    C++day5
    使用 spring-security-oauth2 体验 OAuth 2.0 的四种授权模式
    npm install一直卡着不动
    linux 使用mail命令收发邮件
    app clear data源码追踪
    算法设计与分析复习(一)
    多线程(复习)
    java爬虫——HttpClient爬取jsoup解析
    CSS相关
    界面组件DevExpress WPF v22.1 - 全新升级数据分析功能
  • 原文地址:https://blog.csdn.net/weixin_44943389/article/details/128045197