範囲を指定しての切り出し
配列から任意の範囲を指定して切り出したい。
例えば、池とその周辺だけとか。
npyext.pyとして作成した。
# coding: utf-8 import numpy as np import sys NPY_DIR = "/Users/pycra/Desktop/NPY_DATA" if len(sys.argv) < 4: print("npyext.py npyfilename ymin:ymax xmin:xmax") exit(-1) (ymin, ymax) = sys.argv[2].split(":") (xmin, xmax) = sys.argv[3].split(":") array = np.load(NPY_DIR+"/"+sys.argv[1]) extarray = array[int(ymin):int(ymax), int(xmin):int(xmax)].copy() # 実体 np.save(NPY_DIR+"/extract.npy", extarray)
5340-22の3次メッシュ(12)下図の左側の「へ」の字型の池「下夕田池(しもんたいけ)」を切り出したい。
グラフから座標を読み取り、npyext.pyに指定する。
$ python npyext.py npy_5x5-5340-22-12.npy 100:300 0:300
切り出した.npyファイルをplotnpy.pyにてプロットしたのがコレ。
注意
出力ファイル名が固定(“extract.npy”)なので、上書きに注意。
.npyファイルのshapeを調べる
任意のサイズの配列の.npyファイルが作れるようになったので、その.npyファイルのshapeを調べるプログラム(npyshape.py)を作った。
# coding: utf-8 import numpy as np import sys NPY_DIR = "/Users/pycra/Desktop/NPY_DATA" if len(sys.argv) < 2: print("npyshape.py npyfilename") exit(-1) array = np.load(NPY_DIR+"/"+sys.argv[1]) print(array.shape)
実行結果。
$ python npyshape.py extract.npy (200, 300)