numpy の基本その7

  • a[::2] += 3: a の行列に対し、2要素置きに3を加算する
  • a[ [2,5,1,8] ]: a の行列のうち、 2, 5, 1, 8 番目の要素を返す
  • a[ [0,1,1,2], [2,1,3,3] ]
    • → (a[0][2], a[1][1], a[1][3], a[2][3])
  • a[ [ [0,1], [1,2] ], [ [2,1], [3,3] ] ]
    • → ( (a[0][2], a[1][1]), (a[1][3], a[2][3]) )
#!/usr/bin/env python
#coding:utf-8

import numpy as np


def work():
    a = np.arange(10)
    
    a[::2] += 3

    print a
    # [3, 1, 5, 3, 7, 5, 9, 7, 11, 9]

    print a[[2,5,1,8]]
    # [5, 5, 1, 11]


    b = np.arange(12).reshape(3,4)

    print b
    # [[ 0, 1, 2, 3],
    #  [ 4, 5, 6, 7],
    #  [ 8, 9,10,11],
    #  [11,12,13,14]]
    
    print b[[0,1,1,2],[2,1,3,3]]
    # [2, 5, 7, 11]
    #
    # -> (b[0][2], b[1][1], b[1][3], b[2][3])
    
    print b[[[0,1],[1,2]],[[2,1],[3,3]]]
    # [[2, 5],
    #  [7,11]]
    #
    # -> ((b[0][2], b[1][1]),
    #     (b[1][3], b[2][3]))

if __name__ == "__main__":
    work()