質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

181閲覧

2次元配列から3次元配列へ

halu0301

総合スコア8

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/09/18 16:24

(244,500,500)の三次元配列を
np.split(ds, 244, axis=0)を使用して二次元配列にしています。
その後、forループをかけて分割した二次元配列それぞれに処理を加えています。
その後に、(244,500,500)の三次元配列に戻したいのですが、、、うまく出来ません。
どなたかご存知の方いらっしゃいましたらご教授お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

(244,500,500)の配列をnp.split(ds, 244, axis=0)で分割すると、(1,500,500)の3次元配列が244個できるのでは?

(1,500,500)の配列を244個結合したければ、リストにまとめて入れた上でnp.concatenate(配列のリスト, axis=0)としてみてください。

(500, 500)を244個結合する(質問文の通り二次元配列になっているならこちらだと思いますが)なら、np.array(配列のリスト)で良いでしょう。

投稿2018/09/18 16:51

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

halu0301

2018/09/18 16:56

おっしゃる通り(1,500,500)の配列が出来ます。 その後 for n in range(0,100): i = ds[n].reshape(500, 500) 処理を加えています。配列をリストを作成すればよろしいのでしょうか?
hayataka2049

2018/09/18 17:03

それならわざわざnp.splitで分ける必要はなく、直接numpy配列をループすれば(500, 500)を244個取り出せるはずです 処理を加えた配列をリストに入れ、回答に書いた方法で再結合する、という流れになると思います
halu0301

2018/09/18 17:07

すみません。リストに入れるには何の関数を使えば宜しいのでしょうか?
hayataka2049

2018/09/18 17:14

一枚ずつループで処理していると思うので、ループの外で適当な変数に空リストを束縛し、それにappendしていけば良いですね 基本的な操作だと思いますが、pythonでのプログラミングに不慣れなのでしょうか?
halu0301

2018/09/18 17:16

はい。初心者です。申し訳ありません。
hayataka2049

2018/09/18 17:27

入門書とかでプログラムの書き方に慣れましょう
halu0301

2018/09/18 18:13

ありがとうございました。うまく出来ました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問