简而言之,当使用一次时,用于将现有数组的尺寸numpy.newaxis再增加一维。从而,
- 一维阵列将变为二维阵列 
- 2D阵列将变为3D阵列 
- 3D阵列将变成4D阵列 
- 4D阵列将变为5D阵列 
等等.. 
这里是一个视觉说明描绘促进 1D阵列以二维阵列。

方案1:如上图所示,np.newaxis当您想将一维数组显式转换为行向量或列向量时,可能会派上用场。
例:
# 1D array
In [7]: arr = np.arange(4)
In [8]: arr.shape
Out[8]: (4,)
# make it as row vector by inserting an axis along first dimension
In [9]: row_vec = arr[np.newaxis, :]     # arr[None, :]
In [10]: row_vec.shape
Out[10]: (1, 4)
# make it as column vector by inserting an axis along second dimension
In [11]: col_vec = arr[:, np.newaxis]     # arr[:, None]
In [12]: col_vec.shape
Out[12]: (4, 1)
场景2:当我们想将numpy广播用作某些操作的一部分时,例如在添加一些数组时。
例:
假设您要添加以下两个数组:
 x1 = np.array([1, 2, 3, 4, 5])
 x2 = np.array([5, 4, 3])
如果您尝试像这样添加它们,NumPy将引发以下内容ValueError:
ValueError: operands could not be broadcast together with shapes (5,) (3,)
在这种情况下,您可以np.newaxis用来增加数组之一的尺寸,以便NumPy可以广播。
In [2]: x1_new = x1[:, np.newaxis]    # x1[:, None]
# now, the shape of x1_new is (5, 1)
# array([[1],
#        [2],
#        [3],
#        [4],
#        [5]])
现在,添加:
In [3]: x1_new + x2
Out[3]:
array([[ 6,  5,  4],
       [ 7,  6,  5],
       [ 8,  7,  6],
       [ 9,  8,  7],
       [10,  9,  8]])
另外,您也可以向数组添加新轴x2:
In [6]: x2_new = x2[:, np.newaxis]    # x2[:, None]
In [7]: x2_new     # shape is (3, 1)
Out[7]: 
array([[5],
       [4],
       [3]])
现在,添加:
In [8]: x1 + x2_new
Out[8]: 
array([[ 6,  7,  8,  9, 10],
       [ 5,  6,  7,  8,  9],
       [ 4,  5,  6,  7,  8]])
注意:请注意,在两种情况下我们都得到相同的结果(但一种是另一种的转置)。
方案3:这类似于方案1。但是,你可以使用np.newaxis不止一次地促进阵列更高的层面。有时对于高阶数组(即Tensors)需要这样的操作。
例:  
In [124]: arr = np.arange(5*5).reshape(5,5)
In [125]: arr.shape
Out[125]: (5, 5)
# promoting 2D array to a 5D array
In [126]: arr_5D = arr[np.newaxis, ..., np.newaxis, np.newaxis]    # arr[None, ..., None, None]
In [127]: arr_5D.shape
Out[127]: (1, 5, 5, 1, 1)
关于np.newaxis和np.reshape的更多背景
newaxis 也称为伪索引,它允许将轴临时添加到多数组中。
np.newaxis使用切片运算符来重新创建阵列而np.reshape重塑阵列所需的布局(假设尺寸匹配;这是必须要reshape发生)。
例
In [13]: A = np.ones((3,4,5,6))
In [14]: B = np.ones((4,6))
In [15]: (A + B[:, np.newaxis, :]).shape     # B[:, None, :]
Out[15]: (3, 4, 5, 6)
在上面的示例中,我们在B(使用广播)的第一和第二轴之间插入了一个临时轴。此处使用缺失轴来填充,np.newaxis以使广播操作正常进行。
一般提示:您也可以None代替使用np.newaxis;这些实际上是相同的对象。
In [13]: np.newaxis is None
Out[13]: True
PS也看到了一个很好的答案:newaxis vs reshape添加尺寸
               
              
except that it changes a row vector to a column vector?第一个例子不是行向量。这是一个matlab的概念。在python中,它只是一维向量,没有行或列的概念。行或列向量是2维的,就像第二个例子一样