9,049 views
この記事は最終更新から 1880日 が経過しています。
例として 8行5列の配列 aを作る。
>>> import numpy as np >>> a = np.random.rand(8,5) >>> a array([[ 0.59477343, 0.39696101, 0.8635444 , 0.57730748, 0.80778975], [ 0.36723965, 0.48813453, 0.53213475, 0.0682938 , 0.23692774], [ 0.82790539, 0.02619104, 0.7563847 , 0.10553861, 0.59796693], [ 0.62885835, 0.61025432, 0.60352469, 0.09148856, 0.55585131], [ 0.54324068, 0.61347011, 0.6137894 , 0.8560153 , 0.39223471], [ 0.28993199, 0.37723578, 0.65900017, 0.60465485, 0.56363825], [ 0.00705464, 0.58109945, 0.79664211, 0.92434556, 0.01637478], [ 0.79555517, 0.61280461, 0.32642076, 0.70221643, 0.17151009]])
これに部分代入する 3行2列の配列 bを作る。
代入結果がわかりやすいように整数とする。
>>> b=(np.random.rand(3,2) * 10).astype(np.int32).astype(np.float32) >>> b array([[ 2., 7.], [ 4., 6.], [ 7., 7.]], dtype=float32)
a[2][2]を起点に bを代入する。
>>> sb = b.shape >>> sb (3, 2) >>> a[2:2+sb[0], 2:2+sb[1]] = b >>> a array([[ 0.59477343, 0.39696101, 0.8635444 , 0.57730748, 0.80778975], [ 0.36723965, 0.48813453, 0.53213475, 0.0682938 , 0.23692774], [ 0.82790539, 0.02619104, 2. , 7. , 0.59796693], [ 0.62885835, 0.61025432, 4. , 6. , 0.55585131], [ 0.54324068, 0.61347011, 7. , 7. , 0.39223471], [ 0.28993199, 0.37723578, 0.65900017, 0.60465485, 0.56363825], [ 0.00705464, 0.58109945, 0.79664211, 0.92434556, 0.01637478], [ 0.79555517, 0.61280461, 0.32642076, 0.70221643, 0.17151009]])