numpy の基本 その6

  • b = (a % 3 == 0):
    • 3で割った余りが0かどうか、各要素に対して判定し、結果を配列で返す
  • a[b]:
    • 3で割った余りが0である要素のみを返す
    • ここで返す値は、*コピー* であり、参照ではない点に注意
#!/usr/bin/env python
#coding:utf-8

import numpy as np


def work():
    a = np.arange(10)
    b = (a % 3 == 0)
    c = a[b]

    print a
    # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
    
    print b
    # [True, False, False, True, False, False, True, False, False, True]

    print c
    # [0, 3, 6, 9]

    c[::] = -1

    print a
    # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
    
    a[b] = -1
    
    print a
    # [-1, 1, 2, -1, 4, 5, -1, 7, 8, -1]


if __name__ == "__main__":
    work()