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()