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

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

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

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

Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

163閲覧

numpyで別次元に配列を追加したい

Kawada

総合スコア15

NumPy

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

Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/04/08 10:41

numpyで別次元に配列を追加したい

python,teratail初心者です。至らぬ点があるかもしれません。

pythonのnumpyを使い配列を扱っています。
numpyの配列に対して、numpyの配列を別の次元として足したいのです。

文章では自分でもよくわからないので、下に例を記します。

具体例

array([[[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.]]])

というshape(3,3,3)の配列

array([[[1., 1., 1.], [1., 1., 1.], [1., 1., 1.]], [[1., 1., 1.], [1., 1., 1.], [1., 1., 1.]], [[1., 1., 1.], [1., 1., 1.], [1., 1., 1.]]])

というshape(3,3,3)の配列

array([[[2., 2., 2.], [2., 2., 2.], [2., 2., 2.]], [[2., 2., 2.], [2., 2., 2.], [2., 2., 2.]], [[2., 2., 2.], [2., 2., 2.], [2., 2., 2.]]])

というshape(3,3,3)の配列があるとします。

これらの配列をなんらかの方法で処理してこのようなshape(3,3,3,3)の配列にしたいのです。↓

array([[[[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.]]], [[[1., 1., 1.], [1., 1., 1.], [1., 1., 1.]], [[1., 1., 1.], [1., 1., 1.], [1., 1., 1.]], [[1., 1., 1.], [1., 1., 1.], [1., 1., 1.]]], [[[2., 2., 2.], [2., 2., 2.], [2., 2., 2.]], [[2., 2., 2.], [2., 2., 2.], [2., 2., 2.]], [[2., 2., 2.], [2., 2., 2.], [2., 2., 2.]]]])

試したこと

vstackとhstack関数を試してみましたが、自分が望む結果にはなりませんでした。

補足情報(FW/ツールのバージョンなど)

python3.x
numpy==1.14.2
colaboratoryを使っています。
pythonの詳しいバージョンは自分では特定できませんでした。

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

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

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

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

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

guest

回答2

0

ベストアンサー

新しくリストを作ればいいのでは?

Python

1>>> import numpy as np 2>>> a = np.ones((3, 3, 3)) * 0 3>>> b = np.ones((3, 3, 3)) * 1 4>>> c = np.ones((3, 3, 3)) * 2 5>>> a 6array([[[ 0., 0., 0.], 7 [ 0., 0., 0.], 8 [ 0., 0., 0.]], 9 10 [[ 0., 0., 0.], 11 [ 0., 0., 0.], 12 [ 0., 0., 0.]], 13 14 [[ 0., 0., 0.], 15 [ 0., 0., 0.], 16 [ 0., 0., 0.]]]) 17>>> b 18array([[[ 1., 1., 1.], 19 [ 1., 1., 1.], 20 [ 1., 1., 1.]], 21 22 [[ 1., 1., 1.], 23 [ 1., 1., 1.], 24 [ 1., 1., 1.]], 25 26 [[ 1., 1., 1.], 27 [ 1., 1., 1.], 28 [ 1., 1., 1.]]]) 29>>> c 30array([[[ 2., 2., 2.], 31 [ 2., 2., 2.], 32 [ 2., 2., 2.]], 33 34 [[ 2., 2., 2.], 35 [ 2., 2., 2.], 36 [ 2., 2., 2.]], 37 38 [[ 2., 2., 2.], 39 [ 2., 2., 2.], 40 [ 2., 2., 2.]]]) 41>>> np.array([a, b, c]) 42array([[[[ 0., 0., 0.], 43 [ 0., 0., 0.], 44 [ 0., 0., 0.]], 45 46 [[ 0., 0., 0.], 47 [ 0., 0., 0.], 48 [ 0., 0., 0.]], 49 50 [[ 0., 0., 0.], 51 [ 0., 0., 0.], 52 [ 0., 0., 0.]]], 53 54 55 [[[ 1., 1., 1.], 56 [ 1., 1., 1.], 57 [ 1., 1., 1.]], 58 59 [[ 1., 1., 1.], 60 [ 1., 1., 1.], 61 [ 1., 1., 1.]], 62 63 [[ 1., 1., 1.], 64 [ 1., 1., 1.], 65 [ 1., 1., 1.]]], 66 67 68 [[[ 2., 2., 2.], 69 [ 2., 2., 2.], 70 [ 2., 2., 2.]], 71 72 [[ 2., 2., 2.], 73 [ 2., 2., 2.], 74 [ 2., 2., 2.]], 75 76 [[ 2., 2., 2.], 77 [ 2., 2., 2.], 78 [ 2., 2., 2.]]]]) 79>>> _.shape 80(3, 3, 3, 3)

投稿2018/04/08 10:46

LouiS0616

総合スコア35658

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

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

Kawada

2018/04/08 11:09

回答してくださり、ありがとうございます。 自分でも質問前に同じことを試したのですが…、おかしな結果になり… よく見たら別の変数を指定していました。 回答の通りに試してみたらうまくいきました。 お恥ずかしい限りです。 本当にありがとうございます。
guest

0

必要なのはnumpy.stackやねぇ。hstackでもvstackでもなく。

python

1np.stack([a, b, c])

投稿2018/04/08 11:19

tachikoma

総合スコア3601

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問