• 基本类型: np.array,表示一个张量
    零维: np.array([1]), shape: (1, ) 或 ()
    一维: np.array([1,2]), shape: (2,)
    二维: np.array([[1,2], [3,4]]), shape: (2, 2)
    三维: np.array([[[1,2], [3,4]], [[5,6], [7,8]]]), shape: (2, 2, 2)
    四维: np.array([[[[1,2], [3,4]], [[5,6], [7,8]]], [[[1,2], [3,4]], [[5,6], [7,8]]]]), shape: (2, 2, 2, 2, 2)
    把维度的增加理解为向高一级的抽象(四维数组就是多个三维数组的组合).
    注:numpy中的axis指维度(dimension),axis/dimension = 1 指第一个维度,即“最上层”的维度。

  • broadcasting
    eg: 2*[1,2,3] = [2, 4, 6]
    一种节省内存的方法, 让系统自动推断矩阵的shape(不用定义两个完全一样的shape, 相同的元素可以由向量省略为一个数)
    详细文档: https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html

  • 行向量->列向量:
    普通矩阵的转置直接.T即可, 但.T不适用行向量&列向量, 因此需要其他方法: reshape(-1, 1),只指定列宽为1, -1表示让系统自动推断大小.

  • numpy可以使用index来取数,但要传入ndarray来表征index:

    1
    2
    3
    ary = np.array([1, 2, 3, 4, 5, 6, 7])
    a = ary[np.array([1,2,3])] # 取下标为1, 2, 3的元素
    print(a) # [2, 3, 4]

Post Date: 2018-12-26

版权声明: 本文为原创文章,转载请注明出处