numpyでの行列操作:行列の作成・列の削除

Rでの matrix 関数です。numpy にて。

一次元配列から二次元配列の作り方が分かりませんでした。
reshape で -1 を使えば良い模様。
列数を 4 と指定して、行数を -1 の指定なしにする。
行数は自動的に推測してくれる(この場合は2)。

列数を -1 にして、行数だけ指定することも可能。

次に、行や列の削除。
コロンで行を残して、列を操作できる。
コロンのみは要素 全部って意味。

-1 は末尾の要素。[:, 0:-1] で 0列目から 末尾未満までの列。
すなわち、末尾列の削除。

なお
[:, -2] は後ろから2列目の列を指す。
[:. 0:-2] は0列目から -2 列目未満を指す。
そのため、0, 1 列が対象となる。
任意の位置の列を削除する場合は、np.delete を用いる。

import numpy as np
a = np.array([1,2,3,4,5,6,7,8])
print(a[:])        # コロンのみは全部って意味
b = a.reshape(-1, 4)             # 行数を推測
#print(a.reshape(4, -1))         # 列数を推測
print(b)
print(b[:, 0])               # 先頭の列を取得
print(b[:,-1])               # 末尾の列を取得
print(b[:,0:-1])             # 末尾の列を削除
np.delete(b, [2,3], axis=1)  # 任意の列を削除