numpy中ndarray矩阵中选出指定元素构造新矩阵(ndarray.take())

官方文档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(axis=0表示行,axis=1表示列)的若干切片(indice),用法为:
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]])

你可能感兴趣的:(numpy)