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

情到浓时终转凉″ 提交于 2020-01-19 00:34:52

官方文档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]])
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!