2017-09-05 15 views
1

次の問題を計算する方法はありますか?私は本当に配列がこの例よりはるかに大きいのでnumpyを使いたいと思っています。Substract numpyで別の配列の配列の配列

a = np.array([[5, 2, 3, 4], [6, 3, 6, 6], [9, 1, 4, 6]]) 
b = np.min(a,1) 

print(a) 
# [[5 2 3 4] 
# [6 3 6 6] 
# [9 1 4 6]] 

print(b) 
# [2 3 1] 

print(a-b) # ValueError: operands could not be broadcast together with shapes (3,4) (3,) 

# What I want: 
# [[3 0 1 2] 
# [3 0 3 3] 
# [8 0 3 5]] 
+1

使用' keepdims = true'を出力します。分。ドキュメントを参照してください。 – Divakar

+0

迅速な対応をお寄せいただきありがとうございます。今私は配列を再形成しなければならないことがわかります。 –

+0

Noを保持している場合は、変更する必要はありません。 minの減少と無傷のdimsの。 – Divakar

答えて

2

あなたはこれを行うことができます。

print(a-b.reshape(-1,1)) 
2

これは、仕事をする:

print(a-b.reshape(len(b),-1)) 

これはNP `と

array([[3, 0, 1, 2], 
     [3, 0, 3, 3], 
     [8, 0, 3, 5]]) 
関連する問題