質問の定義だと100列目は100~199の数列になりますが、そのテイで回答します。
numpyにはreshape
というメソッドがあります。配列を指定の形状に変換します。
下記の例は、要素数8の配列を2行4列の行列に変換しています。
個々のデータは1行目から順に整列していることがわかります。
python
1import numpy as np
2l = np.array([1,2,3,4,5,6,7,8])
3l2 = l.reshape(2,4)
4print(l2)
5#-->
6[[1 2 3 4]
7 [5 6 7 8]]
では質問の100行100列の行列を考えてみます。
1行目が1,2, ... ,99,100
2行目が2,3, ... ,100,101
というように数値が並ぶとすると、以下のような配列
[1, 2, ..., 99, 100, 2, 3, ... , 100, 101]
をreshape
で2行100列の行列に変換すると、
[[1 2 ... 99 100]
[2 3 ... 100 101]]
という行列に変換できます。
また、変換元の配列は1次元配列でなくても良いです。
[[1, 2, ..., 99, 100],[2, 3, ... , 100, 101]]
という2次元配列を同様にreshapeで変換しても同じ結果を得ることができます。
この要領で、100行分の配列をnp.arange()
(range()
でも良い)で作成し、何らかの配列にappend
していき、最後にnp.array
に変換してから100行100列でreshape
すれば目的の行列を生成できます。
※なお、お分かりだとは思いますが
1行目が1,2, ... ,99,100
2行目が2,3, ... ,100,101
:
100行目が100,101, ... ,198,199
の行列と
1列目が1,2, ... ,99,100
2列目が2,3, ... ,100,101
:
100列目が100,101, ... ,198,199
の行列は同値です。