2017-10-03 22 views
1

python numpy配列を展開して取り込む最も簡単な方法は何ですか?最初numpyの配列は次のとおりnumpy配列を展開して配置する

[1,3]、[1,2]、[1,5]

展開した後、アレイがなければならない:

[1,3,9,27]、[1,2,4,8]、[1,5,25,125]

新しく追加された列が2列の二乗と乗値であります。

ありがとうございます!

答えて

0

各行の1をスキップして、ブロードキャストを使用して希望のデカルト積を作成するだけです。

import numpy as np 

a = np.array([[1,3], [1,2], [1,5]]) 
b = a[:, 1:] ** np.arange(4) 
print(b) 

出力

[[ 1 3 9 27] 
[ 1 2 4 8] 
[ 1 5 25 125]] 
2

スライスa[:,[1]]と寸法を維持第二カラム、我々は大きさを維持していたので、**[2,3]broadcasting活用パワー操作を実行した後、新しい列として出力スタックnp.c_(スタックする方法の1つ)。

したがって、実装 -

サンプル出力 -

In [902]: np.c_[a,a[:,[1]]**[2,3]] 
Out[902]: 
array([[ 1, 3, 9, 27], 
     [ 1, 2, 4, 8], 
     [ 1, 5, 25, 125]]) 
+0

あなたは最高です! –

関連する問題