質問するログイン新規登録
NumPy

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

Python 3.x

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

Python

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

Q&A

解決済

2回答

2593閲覧

numpyで複数の配列の組み合わせを作成したい

SatokoM

総合スコア4

NumPy

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

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2020/06/08 01:07

編集2020/06/08 06:40

0

0

numpyで複数の配列の組み合わせを作成する

Pythonで

[[0, 1, 2, 3, 4]
[5, 6, 7, 8, 9]
[10, 11, 12, 13, 14]]

[[15, 16]
[17, 18]]
のような配列を組み合わせて

[[0, 1, 2, 3, 4, 15, 16]
[0, 1, 2, 3, 4, 17, 18]
[5, 6, 7, 8, 9, 15, 16]
[5, 6, 7, 8, 9, 17, 18]
[10, 11, 12, 13, 14, 15, 16]
[10, 11, 12, 13, 14, 17, 18]]

全ての行を組み合わせた新しい行列を作ろうとしていますがうまくいきません。。

該当のソースコード

Python

1array_merged = [] 2a = np.array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]) 3b = np.array([[15, 16], [17, 18]]) 4for i in range(0, a.shape[0], 1): 5 rate_a = [] 6 for i2 in range(0, a.shape[1], 1): 7 rate_a.append(a[i, i2]) 8 for j in range(0, b.shape[0], 1): 9 rate_b = [] 10 for j2 in range(0, b.shape[1], 1): 11 rate_b.append(b[j, j2]) 12 rate_merged = [] 13 rate_merged.extend(rate_a) 14 rate_merged.extend(rate_b) 15 np.append(array_merged, rate_merged) 16array_merged 17 18>> [] 19 20### 試したこと 21 22vstackも試しましたが同じように空のリストが返ってきました。 23 24### 補足情報(FW/ツールのバージョンなど) 25 26ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答2

0

こんにちは
ご質問にある、二つの ndarray

[[0, 1, 2, 3, 4]
[5, 6, 7, 8, 9]
[10, 11, 12, 13, 14]]

A

[[15, 16]
[17, 18]]

B として、ご所望の ndarray を C として得る方法の一例としまして、以下のようにすればよいかと思います。

python

1import itertools 2 3C = np.array([sum(x, []) for x in itertools.product(A.tolist(), B.tolist())])

投稿2020/06/08 01:51

jun68ykt

総合スコア9058

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

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

SatokoM

2020/06/08 05:02

ご回答いただきありがとうございます。 とても勉強になりました。
guest

0

ベストアンサー

変更点

  • rate_a = []をfor文の外に出しました。そうしないと毎回リセットされるので
  • for i in range(0, a.shape[0], 1):をfor i in a:に変えました。直接要素を取り出していったほうがわかりやすそうでしたので

python3

1import numpy as np 2array_merged = [] 3a = np.array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]) 4b = np.array([[15, 16], [17, 18]]) 5rate_a = [] 6for i in a: 7 for j in b: 8 rate_a.append(np.concatenate([i,j])) 9rate_a = np.array(rate_a) 10print(rate_a) 11# [[ 0 1 2 3 4 15 16] 12# [ 0 1 2 3 4 17 18] 13# [ 5 6 7 8 9 15 16] 14# [ 5 6 7 8 9 17 18] 15# [10 11 12 13 14 15 16] 16# [10 11 12 13 14 17 18]]

投稿2020/06/08 01:27

jeanbiego

総合スコア3966

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

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

SatokoM

2020/06/08 01:52

ご回答いただきありがとうございました。解決しました! for文の書き方についてもとてもシンプルな表記になってうれしいです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.29%

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

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

質問する

関連した質問