-1

次の配列を使用してマトリックスを作成したい:

A = [1111,2222,3333]
B = [20,25,26,27]
C = [1.5,2.6,3.7,4.5,5.4,6.7,7.2,8.8,9.0,10.0,11.0,12.2]

A の各値は、一度にすべての値にマップする必要があります (A の各要素は、b の 4 つの値すべてに関連付けられます)。そこから、結果の 12,2 行列を追加して 12,3 行列にします。配列C

次のようになります。

1111 20 1.5
1111 25 2.6
1111 26 3.7    
1111 27 4.5
2222 20 5.4
2222 25 6.7
2222 26 7.2
2222 27 8.8
...........
3333 27 12.2

私の最初のアイデアは、いくつかの for ループを使用することですが、最初の列の値を実装するのに多くの問題があります

私の実際のコードでは、値は次のように割り当てられます。

A = [random.randint(1250,14180) for x in range(len(5))]
C = [round(random.uniform(1.0,4.0),1) for x in range(len(15))]

Bはランダムではありません

B = [2000,2500,2600,2700]
4

2 に答える 2

0

itertoolsパッケージを使用することができます

import itertools

A = [1111,2222,3333]
B = [20,25,26,27]
C = [1.5,2.6,3.7,4.5,5.4,6.7,7.2,8.8,9.0,10.0,11.0,12.2]

# create the product of A and B, i.e., [(1111,20), (1111,25), ..., (3333,27)]
AB = itertools.product(A,B)

# zip with C
ABC = itertools.izip( AB, C )

# flatten sublists, since ABC is an iterator for [((1111,20),1.5), ..., ((3333,27),12,2)]
ABC = [ list(ab)+[c] for ab,c in ABC ]

print ABC

を与える

[[1111, 20, 1.5],
 [1111, 25, 2.6],
 [1111, 26, 3.7],
 [1111, 27, 4.5],
 [2222, 20, 5.4],
 [2222, 25, 6.7],
 [2222, 26, 7.2],
 [2222, 27, 8.8],
 [3333, 20, 9.0],
 [3333, 25, 10.0],
 [3333, 26, 11.0],
 [3333, 27, 12.2]]
于 2016-07-01T15:40:32.227 に答える