前提・実現したいこと
初めて質問させていただきます。緊急です。すみません。
pythonのnumpyを使用して、二次元リストの各要素に、それぞれ、別の一次元リストの要素を追加したいです。
例えば、
python
1a = ['0' '1' '2'] 2 3b = [['0' '1' '2'] 4 ['3' '4' '5'] 5 ['6' '7' '8'] 6 ['9' '10' '11']]
というリストがあったとして、
python
1c = [ [['0' '0'] ['1' '1'] ['2' '2']] 2 [['3' '0'] ['4' '1'] ['5' '2']] 3 [['6' '0'] ['7' '1'] ['8' '2']] 4 [['9' '0'] ['10' '1'] ['11' '2']] ]
というように、aリストの要素を、bリストと同じインデックスの場所に追加したいです。
for文を使ったらできると思いますが、高速処理を行いたく、2重ループのfor文は使わない条件で考えると、一向に思いつきませんでした。
(※リストの中身を、str型にしてる理由は、後に['0' '2']のようなリストを、['02']という文字列で連結させるために、最初からstr型にしています。)
高速処理を行うために、a,bのリストもnumpyで記述しています。
どなたか、詳しい方がいらっしゃったら、for文の2重ループを使わずに、上記が実装できる方法を教えていただきたいです。
よろしくお願い致します。
該当のソースコード
python3
1import numpy as np 2 3a = np.arange(3) 4a=np.array(M,dtype=str) 5 6b = np.arange(12).reshape(4,-1) 7b = np.array(b,dtype=str) 8 9 10for i in range(len(a)): 11 b[i] = np.where(b[i].dtype=='<U21',b[i] , -1) 12print(b)
試したこと
該当のソースコードのように、最初だけfor文でまわしてnumpyの処理で、一気に各インデックスのリストにaの要素をそれぞれ追加しようと試みたのですが、方法が思いつきませんでした。