2012-06-06 101 views
24

如何使用NumPy編寫以下MATLAB代碼?分配給NumPy中的列?

A = zeros(5, 100); 
x = ones(5,1); 
A(:,1) = x; 

分配給行似乎很容易,但我找不到將數組分配給另一個數組的列的示例。

回答

41

使用a[:,1] = x[:,0]。您需要x[:,0]來選擇x的列作爲單個numpy數組。如果您可以選擇如何格式化x,則最好不要將其設置爲二維陣列,而只需要一個常規(行)陣列:

>>> a 
array([[ 0., 0., 0.], 
     [ 0., 0., 0.], 
     [ 0., 0., 0.], 
     [ 0., 0., 0.], 
     [ 0., 0., 0.]]) 
>>> x = numpy.ones(5) 
>>> x 
array([ 1., 1., 1., 1., 1.]) 
>>> a[:,1] = x 
>>> a 
array([[ 0., 1., 0.], 
     [ 0., 1., 0.], 
     [ 0., 1., 0.], 
     [ 0., 1., 0.], 
     [ 0., 1., 0.]]) 
6
>>> A = np.zeros((5,100)) 
>>> x = np.ones((5,1)) 
>>> A[:,:1] = x