1次元のlistに[0,0,0,0]を入れるときは、for文で繰り返し入れれば解決しますが、2次元にしようとすると、どのようにすれば良いかわかりません。
もしかしたら、行列の事を全く分かっていない質問になってしまうかもしれませんが、よろしくお願い致します。。
欲しい結果は
python
1ex) 2n=4 の場合 3array([[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0], 4 [0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0], 5 [0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0], 6 [0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]])
を一般のnに対してどのように書けばよいか教えてほしいです。
手作業で入れればよい、などではないです。
(numpyの場合のarrayを上記に書くのを忘れました)
すいません、何度も言いますが、行列の事をわかっていないのかもしれません。
ただ、numpy行列生成などをネットで調べ、一通り見たのですが、上記の答えに到達できなかったので、質問させていただきました。
ご指導ご鞭撻のほどよろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
ベストアンサー
タイトルから察するに、
python
1array([[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0], 2 [0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0], 3 [0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0], 4 [0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]])
の(16,4)の行列ではなく、
python
1>>> np.zeros((4,4,4)) 2array([[[0., 0., 0., 0.], 3 [0., 0., 0., 0.], 4 [0., 0., 0., 0.], 5 [0., 0., 0., 0.]], 6 7 [[0., 0., 0., 0.], 8 [0., 0., 0., 0.], 9 [0., 0., 0., 0.], 10 [0., 0., 0., 0.]], 11 12 [[0., 0., 0., 0.], 13 [0., 0., 0., 0.], 14 [0., 0., 0., 0.], 15 [0., 0., 0., 0.]], 16 17 [[0., 0., 0., 0.], 18 [0., 0., 0., 0.], 19 [0., 0., 0., 0.], 20 [0., 0., 0., 0.]]])
こっちが欲しいのでは?
追記
python
1>>> import numpy as np 2>>> a = np.zeros((16,4)) 3>>> a 4array([[0., 0., 0., 0.], 5 [0., 0., 0., 0.], 6 [0., 0., 0., 0.], 7 [0., 0., 0., 0.], 8 [0., 0., 0., 0.], 9 [0., 0., 0., 0.], 10 [0., 0., 0., 0.], 11 [0., 0., 0., 0.], 12 [0., 0., 0., 0.], 13 [0., 0., 0., 0.], 14 [0., 0., 0., 0.], 15 [0., 0., 0., 0.], 16 [0., 0., 0., 0.], 17 [0., 0., 0., 0.], 18 [0., 0., 0., 0.], 19 [0., 0., 0., 0.]]) 20>>> a[0,0] # 0行0列の要素 210.0 22>>> a[0] # 0行目 23array([0., 0., 0., 0.]) 24>>> b = np.zeros((4,4,4)) 25>>> b[0,0] # 0行0列の要素 26array([0., 0., 0., 0.]) 27>>> b[0] # 0行目 28array([[0., 0., 0., 0.], 29 [0., 0., 0., 0.], 30 [0., 0., 0., 0.], 31 [0., 0., 0., 0.]]) 32
投稿2018/05/12 21:23
編集2018/05/13 10:39総合スコア30933
0
NumPyをご利用でしたら、np.zerosで簡単に作れます。
Python
1>>> import numpy as np 2>>> 3>>> arr = np.zeros((4*4, 4), dtype=int) 4>>> arr 5array([[0, 0, 0, 0], 6 [0, 0, 0, 0], 7 [0, 0, 0, 0], 8 [0, 0, 0, 0], 9 [0, 0, 0, 0], 10 [0, 0, 0, 0], 11 [0, 0, 0, 0], 12 [0, 0, 0, 0], 13 [0, 0, 0, 0], 14 [0, 0, 0, 0], 15 [0, 0, 0, 0], 16 [0, 0, 0, 0], 17 [0, 0, 0, 0], 18 [0, 0, 0, 0], 19 [0, 0, 0, 0], 20 [0, 0, 0, 0]])
標準機能で書きたいなら、次のような感じでしょうか。
Python
1>>> arr = [[0 for x in range(4)] for y in range(4*4)] 2>>> arr 3[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
投稿2018/05/12 14:19
総合スコア35658
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/12 14:32
2018/05/12 14:33
2018/05/12 14:35
0
この方法はLouiS0616様の指摘により撤回します。元の回答に打ち消し線を入れました。
詳しくはPython のリストの扱いで注意することを参照してください。
別法です(Ipythonにて実行)。
In [4]: n = 4
In [5]: [[0,0,0,0]] * n
Out[5]: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
In [6]: [[0 for _ in range(n)]] * n
Out[6]: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
投稿2018/05/12 14:39
編集2018/05/13 00:00総合スコア1167
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/13 08:56 編集
2018/05/13 10:41 編集
2018/05/13 11:13
2018/05/13 11:15
2018/05/13 11:16
2018/05/13 11:19
2018/05/13 11:22
2018/05/13 11:26
2018/05/13 15:37 編集
2018/05/13 15:38
2018/05/13 16:05