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

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

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

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

Q&A

解決済

2回答

13929閲覧

2つの配列の要素が交互に来るように結合

bump_fuuu

総合スコア18

Python

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

0グッド

0クリップ

投稿2019/01/23 21:15

前提・実現したいこと

pythonを学びたてのものです。初歩的な質問かもしれませんが
以下の2つの配列を3つ目のように結合させたいです。
a
[[264.39134912 268.09886715 291.33264676 335.57569516]
[335.57569516 335.57569516 364. 364. ]
[364. 324.45314109 304.43254377 303.19670443]
[303.19670443 303.19670443 264.39134912 264.39134912]]
b
[[ 32.47288503 155.37527115 196.17787419 258. ]
[258. 258. 225.11062907 225.11062907]
[225.11062907 183.07158351 138.80694143 30. ]
[ 30. 30. 32.47288503 32.47288503]]

[[264.39134912, 32.47288503,268.09886715,155.37527115,291.33264676,196.17787419,335.57569516,258]

[[303.19670443,30.,…264.39134912,32.47288503]]

発生している問題・エラーメッセージ

hstackなどを使用したところ
[[264.39134912 268.09886715 291.33264676 335.57569516]
[335.57569516 335.57569516 364. 364. ]
[364. 324.45314109 304.43254377 303.19670443]
[303.19670443 303.19670443 264.39134912 264.39134912]]
[[ 32.47288503 155.37527115 196.17787419 258. ]
[258. 258. 225.11062907 225.11062907]
[225.11062907 183.07158351 138.80694143 30. ]
[ 30. 30. 32.47288503 32.47288503]]
上記のように上下で結合するだけでした。

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

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

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

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

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

guest

回答2

0

単純に代入でも対応できます。

Python

1import numpy as np 2 3A = np.array([[1.,3.,5.,7., 9.],[11.,13.,15.,17.,19.]]) 4B = np.array([[2.,4.,6.,8.,10.],[12.,14.,16.,18.,20.]]) 5 6res = np.empty((A.shape[0], A.shape[1] + B.shape[1]),dtype=float) 7res[:,0::2] = A 8res[:,1::2] = B 9print(res) 10#[[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.] 11# [11. 12. 13. 14. 15. 16. 17. 18. 19. 20.]]

投稿2019/01/23 23:49

magichan

総合スコア15898

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

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

bump_fuuu

2019/01/24 09:09

簡潔で分かりやすいご回答ありがとうございます!
guest

0

ベストアンサー

numpy.insertを使うと以下のように書けます。

Python

1import numpy as np 2 3a = np.array([[1,2,3,4],[5,6,7,8]]) 4b = np.array([[9,10,11,12],[13,14,15,16]]) 5 6i = range(a.shape[1]) 7c = np.insert(b,i,a[:,i],axis=1) 8print(c) 9""" 10[[ 1 9 2 10 3 11 4 12] 11 [ 5 13 6 14 7 15 8 16]] 12"""

投稿2019/01/23 23:45

can110

総合スコア38352

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

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

bump_fuuu

2019/01/24 09:09

ご回答ありがとうございます!出来ました!内包表記などを使用した方がいいかなど思っていましたが簡単にできるんですね!
can110

2019/01/24 09:12

解決してよかったです。 なお、速度面では、あらかじめ領域を準備しておく+スライス表現のmagichanさんの回答のほうが有利かと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問