1. newaxis 增加维度

构建数组

  1. import numpy as np
  2. a = np.array([1,2,3])
  3. a
  4. print (a.shape,'\n',a)
  5. >>> a
  6. array([1, 2, 3])
  7. >>> print (a.shape,'\n',a)
  8. (3,)
  9. [1 2 3]
  • a 为 array 数组,为一维数据 (3,)

    使用 newaxis

    ```python a = np.array([1,2,3])[:,np.newaxis] print (a.shape,’\n’,a)

print (a.shape,’\n’,a) (3, 1) [[1] [2] [3]] ```

  • 可以看到 shape 发生了变化,有了一列出来。
  • 变成三行一列,二维数组
  1. a = np.array([1,2,3])[np.newaxis,:]
  2. print (a.shape,'\n',a)
  3. >>> print (a.shape,'\n',a)
  4. (1, 3)
  5. [[1 2 3]]
  • 变成一列三行。
  • 可以知道与 np.newaxis 放置有关!!放在哪里,哪里多出一维数据

**

示例

  1. from sklearn import datasets, linear_model
  2. diabetes = datasets.load_diabetes()
  3. # 提取第三列,第一列为0
  4. X = diabetes.data[:,2]
  5. y = diabetes.data[:, np.newaxis, 2]
  6. z = diabetes.data[np.newaxis,:, 2]
  7. X.shape
  8. y.shape
  9. z.shape
  10. >>> X.shape
  11. (442,)
  12. >>> y.shape
  13. (442, 1)
  14. >>> z.shape
  15. (1, 442)
  • 就是看 np.newaxis 和 : 的相对位置