当前位置: 代码迷 >> 综合 >> numpy中ndarray中选出若干个元素并输出(ndarray.take())
  详细解决方案

numpy中ndarray中选出若干个元素并输出(ndarray.take())

热度:11   发布时间:2024-01-25 20:20:00.0

官方文档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]])