官方文档take用法解释
先随机生成一个矩阵a
import numpy as np
a=np.random.randint(1,9,size=9).reshape((3,3))
结果
array([[7, 3, 2],[8, 7, 5],[3, 7, 3]])
如果希望提取某个axis的若干切片
ndarray.take(indices,axis)
如,提取a的第一行和第三行
a.take([0,2],axis=0)
输出
array([[7, 3, 2],[3, 7, 3]])
如果希望提取第一列和第三列,类似地
a.take([0,2],axis=1)
结果
array([[7, 2],[8, 5],[3, 3]])
如果没有指定axis
a.take([1,2,8])
它会先把a扁平化为一维矩阵
结果
array([3, 2, 3])
当然indice可以是任意顺序,如我们希望第三行重复两次,再和第一行组合成矩阵
如
a.take([2,2,0],axis=0)
结果
array([[3, 7, 3],[3, 7, 3],[7, 3, 2]])