Numpy 使用numpy.take进行更快的高级索引

np.take()函数用法-简记

np.take(a, indices, axis=None, out=None, mode='raise')

作用: 沿轴从数组中获取元素。(见例题注释)

np.take?    #可查询官方文档

 
 

    例题1:

    import numpy as np
    a = np.array([[1,2,4,([1,2,6])],
                  [3,2,6,([6,5,1])],
                  [6,9,4,([3,7,5])]], dtype=object)
    print(a.take(indices=1,axis=0)) # np.take(a, indices, axis=None, out=None, mode='raise')
    print(a.take(indices=2,axis=0))  # axis=0 按行;  axis=1 按列  (二维数组,so,只能取0或1)
    print(a.take(indices=0,axis=1))
    print(a.take(indices=3,axis=1))
    
     
     

      输出:

      [3 2 6 list([6, 5, 1])]
      [6 9 4 list([3, 7, 5])]
      [1 3 6]
      [list([1, 2, 6]) list([6, 5, 1]) list([3, 7, 5])]
      
       
       

        例题2:

        import numpy as np
        b = np.array([[1, 2, 4, ([1, 2, 5])], 
                     [3, 2, 6, ([6, 5, 1])],
                     [6, 9, 4, ([3, 7, 5])]], dtype=object)
        print(b.take(1,1))  # 按列,取第1列
        print(b.take(0,1)) # 按列,取第0列
        print(b.take(0,0)) # 按行,取第0行
        print(b.take(1,0)) # 按行,取第1行
        
         
         

          输出:

          [2 2 9]
          [1 3 6]
          [1 2 4 list([1, 2, 5])]
          [3 2 6 list([6, 5, 1])]
          
           
           

            更多参考

            https://blog.csdn.net/weixin_39531183/article/details/111417402
            https://www.python100.com/html/76980.html
            https://deepinout.com/numpy/numpy-questions/120_numpy_using_numpytake_for_faster_fancy_indexing.html

            • 0
              点赞
            • 0
              收藏
              觉得还不错? 一键收藏
            • 0
              评论
            评论
            添加红包

            请填写红包祝福语或标题

            红包个数最小为10个

            红包金额最低5元

            当前余额3.43前往充值 >
            需支付:10.00
            成就一亿技术人!
            领取后你会自动成为博主和红包主的粉丝 规则
            hope_wisdom
            发出的红包
            实付
            使用余额支付
            点击重新获取
            扫码支付
            钱包余额 0

            抵扣说明:

            1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
            2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

            余额充值