2016-07-07 42 views
-6

我有一個麻煩與Python廣播如何使用Python-numpy的-brodcasting

在兩個numpy的列表

x = np.array([[1,2,3],[4,5,6]]) 

y = np.array([0,1,1]) 

我想計算

x : [[1,2,3], 
    [4,5,6]] 

x : [[1-y[0], 2-y[1], 3-y[2]], 
    [4-y[0], 5-y[1], 6-y[2]]] 

也就是

x : [[0,-3,-3], 
    [3,0,0]] 

在一次。

請讓我知道如何做到這一點。

對不起......我做了一個錯誤....

我的意思是 X:[[1,1,2], [-4,4,5]

+0

檢查你的數學夥計!編程通常的先決條件是能夠做整數減法... – Julien

+2

[[1-0,2-1,3-1],[4-0,5-1,6-1]] == [[ 0,-3,-3],[3,0,0]] – Julien

+1

'x-y'產生了什麼? – hpaulj

回答

2

我不知道你是如何得到:

x : [[0,-3,-3], 
    [3,0,0]] 

但要做到你的要求的最簡單的方法就是:

import numpy as np 
X = ([1,2,3],[4,5,6]) 
y = np.array([0,1,1]) 
print X-y 

輸出:

[1 1 2]
[4 4 5]

+3

你爲什麼要迭代?只要做'X-Y'並得到一個2D數組。由於'y'是一個數組,所以它也將'X'視爲一個數組。 – hpaulj

+0

你是對的,謝謝。 –

+0

謝謝。這很容易。 –