np.newaxis知識點整理
阿新 • • 發佈:2018-12-04
做kaggle比賽時,看到有方法中用到np.newaxis,現將知識點整理如下。
>>import numpy as np
>>type(np.newaxis)
NoneType
>>np.newaxis == None
True
可以發現np.newaxi等價於 None。1
>>x = np.array([0, 1, 2]) >>x.shape (3,) >>x[:, np.newaxis] array([[0], [1], [2]]) >> x[:, np.newaxis].shape (3, 1)
從上面可以看出,通過np.newaxis可以將一維陣列變為列向量的形式。(ps.這裡(3,)只是表示一維陣列,並不是列向量)
>>y = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>y[:, 1]
array([2, 5, 8])
>>y[:, 1].shape
(3,)
可以看出y[:, 1]返回的是一維陣列,如果我們希望某一列返回的仍然是列的結構,需要進行如下操作,
>>y[:, 1][:, np.newaxis] array([[2], [5], [8]])
如果想實現第一列和第三列的拼接,
>>y_sub = np.hstack([y[:, 0][:, np.newaxis], y[:, 2][:, np.newaxis]])
>>y_sub
array([[1, 3],
[4, 6],
[7, 9]])
也可以通過切片的方式,
>>
array([[1, 3],
[4, 6],
[7, 9]])