2016-02-26 43 views
2

我有一個3x3 numpy數組,我想用向量3x1分隔這個列。我知道如何通過向量的元素劃分每一行,但無法找到劃分每列的解決方案。numpy數組除以列向量

回答

2

可以移調你的陣列,在每個柱劃分

(arr_3x3.T/arr_3x1).T 
1

讓我們嘗試幾件事情:

In [347]: A=np.arange(9.).reshape(3,3) 
In [348]: A 
Out[348]: 
array([[ 0., 1., 2.], 
     [ 3., 4., 5.], 
     [ 6., 7., 8.]]) 

In [349]: x=10**np.arange(3).reshape(3,1) 

In [350]: A/x 
Out[350]: 
array([[ 0. , 1. , 2. ], 
     [ 0.3 , 0.4 , 0.5 ], 
     [ 0.06, 0.07, 0.08]]) 

因此這也被不同的值

In [351]: A/x.T 
Out[351]: 
array([[ 0. , 0.1 , 0.02], 
     [ 3. , 0.4 , 0.05], 
     [ 6. , 0.7 , 0.08]]) 

分每一行並且這已經將每列除以不同的值

(3,3)除以(3,1) =>在列上覆制x。使用轉置(1,3)數組跨行復制。

當使用.T(轉置)時,x爲2d很重要。 A (3,)數組轉換爲(3,)數組 - 即沒有變化。