Pythonで一定の規則を持つ配列(リスト)を生成する

Pythonにて、一定の規則に基づいた配列(list)を簡単に生成する方法のTipsです。

同じ値が繰り返される配列

例えば、「5」が10回繰り返される配列を作りたい場合は、以下のように書けます。

10個くらいなら頑張れば書けなくもないですが、1000個や10000個といった長さの配列でもすぐ書けるので便利です。

任意の配列の値が繰り返される配列

上と同じようにすれば、一定のリズムを繰り返す配列もすぐに定義できます。

このあたりは非常にシンプルです。

等間隔の値が入った配列の生成

1,2,3…や、5,10,15…といったように、等間隔(等差数列)になっている配列を作りたい場合があります。
それにはnumpyに便利なメソッドが用意されており、それを使えば一瞬です。

下限、上限、間隔の大きさを指定

numpyのarangeメソッドを使います。

arange(a,b,c)と書くと、「aからb未満まで、間隔cの配列を作る」という意味になります。
小数やマイナスの値にも使えます。

下限、上限、要素数を指定

numpyのlinspaceメソッドを使います。

linspace(a,b,c)と書くと、「aからbまでの、等間隔のc個の配列を作る」という意味になります。

配列の要素を全てn回ずつ繰り返す配列の生成

言葉にするとややこしいのですが、[1,1,2,2,3,3,4,4,…]や、[2,2,2,4,4,4,6,6,6,…]といった配列です。
それ専用の関数は見当たらなかったのですが、以下のようにすれば生成できます。

指定のリストを要素ごとにn回繰り返すという処理になっています。
ただ、この書き方だと[[1,1,1],[10,10,10],[100,100,100]]という2次元配列になってしまうので、numpyのravelメソッドにて1次元配列に戻しています。

等差数列の値をn回ずつ繰り返したものを作りたいなら、上の書き方を応用すれば・・・

このような配列も1行で生成できます。

以上です。