numpyの基本 その2

  • numpy.ndarray 型の演算子、メソッド
    • a *= 4 (ただし、a は numpy.ndarray型) で、a の各要素を4倍
    • a **= 2 (ただし、a は numpy.ndarray型) で、a の各要素を2乗
    • np.diag([0,1,2,3]): 対角要素が 0, 1, 2, 3 の 4行4列の行列を返す
    • a.reshape(3,4): a を 3行4列 の行列に変える
    • a[1:3,2:4] という表現が可能。ただし、この記述の返り値は参照であり、コピーでない点に注意。
#!/usr/bin/env python
#coding:utf-8
import numpy as np


def work():
    a = np.arange(6)
    b = a*4 + 1
    c = a**2
    
    print a    # array([0, 1, 2, 3, 4, 5])
    print b    # array([1, 5, 9, 13, 17, 21])
    print c    # array([0, 1, 4, 9, 16, 25])
    
    
    d = np.diag([1,4,2,5,2])
    e = np.arange(12).reshape(3,4)
    f = e[1:3,2:4]
    
    print d
    # array([[1,0,0,0,0],
    #        [0,4,0,0,0],
    #        [0,0,2,0,0],
    #        [0,0,0,4,0],
    #        [0,0,0,0,5]])
    
    print e
    # array([[0, 1, 2, 3],
    #        [4, 5, 6, 7],
    #        [8, 9,10,11]])
    
    print f
    # array([[6, 7],
    #        [9,10]])

    f[0][0] = 0

    print e
    # f を 変えたのに、e も変わっている点に注意!
    #
    # array([[0, 1, 2, 3],
    #        [4, 5, 0, 7],
    #        [8, 9,10,11]])


if __name__ == "__main__":
    work()