Numpy – reshape

このエントリーをはてなブックマークに追加
Pocket
LINEで送る

np.reshapeがややこしいので試してみる。

[1 2 3 4 5 6]
[[1 2 3]
[4 5 6]]

配列aを、2行3列に変換しろ!といっております。試しに(2, 4)とか、(2, 2)とかでやってみましたがエラーになりました。ちょうどいい数字になってないとエラーになるようです。

[1 2 3 4 5 6]
[[1 2 3]
[4 5 6]]
[10 2 3 4 5 6]
[[10 2 3]
[ 4 5 6]]

bの要素を変えるとaも変わります。bはaの参照を持っているということでしょうか?なんか不思議です。

上記のような書き方もできます。np.arrayには、reshapeというのがついてるようです。
cもbもaの参照を持っているようです。参照を持ちつつ形を変えております。numpyの配列は高機能です。

上記のように-1を使うと、これは「おまかせ」ってことになります。
分からないからよきにはからえと伝えております。例えば、[1, 10, 4, 2, …..]といった感じの1次元配列があり、5個ずつ配列を分けたいというときは、(-1, 5)とやります。?行5列となりますので、5列ずつの配列をどんどんつくっていけということになります。ただ、ここで大本の配列の要素数が5で割り切れない場合は、エラーになるのか確かめてみます。

cはaの要素数6の1次元配列の参照を持っております。4列ずつに分けろと言われてもやはり無理だったようです。当然(-1, 3)であれば成功します。

このエントリーをはてなブックマークに追加
Pocket
LINEで送る

Be the first to commenton "Numpy – reshape"

Leave a comment

Your email address will not be published.


*