Advertisement

numpy的一维数组总是被视为列向量

阅读量:
复制代码
    import numpy as np
    a = np.array([1,3,4,5])
    print(a.shape)
    a = np.transpose(a)
    print(a.shape)
    print(a)
    
    a = np.ravel(a)
    print(a.shape)
    print(a)
    
    a = a.reshape((1,4))
    print(a.shape)

输出如下

复制代码
    (4,)
    (4,)
    [1 3 4 5]
    (4,)
    [1 3 4 5]
    (1, 4)

我们注意到,在处理一维数组时,默认情况下numpy的一维数组始终以列向量的形式存储。无论我们采用transpose进行转置操作或是使用ravel进行扁平化处理都无法将列向量转换为行向量,在一般情况下这种行为不会带来问题。然而,在机器学习的训练与预测过程中有时会遇到特殊需求例如希望最后一维维度大小为N(即希望形状为(N,)),而此时单纯的一维numpy列向量无法满足这一要求。因此必须采用reshape方法将一维numpy列向量转置使其符合所需维度结构

全部评论 (0)

还没有任何评论哟~