2016-05-16 685 views
0

我想在numpy數組中將列設置爲零,換句話說,我有大小爲5000x500的numpy數組M。當我進入形狀命令的結果是(5000,500),我認爲5000是行和500列將numpy數組中的列設置爲零

shape(M) 
(5000,500) 

但是,當我想訪問一列像第一列問題

Mcol=M[:][0] 

然後,我通過形狀再次與新的矩陣檢查Mcol

shape(Mcol) 
(500,) 

我希望的結果將是(5000)作爲第一個有5000行。改變了操作,即使結果是一樣的

shape(M) 
(5000,500) 
Mcol=M[0][:] 
shape(Mcol) 
(500,) 

任何幫助,請在解釋我的代碼會發生什麼,如果下面的操作是正確的一列設置爲零

M[:][0]=0 
+1

怎麼樣M [:,0] = 0 – Chris

回答

3

你這樣做:

M[:][0] 

但是,你應該這樣做:

M[:,0] 

第一個錯誤,因爲M[:]只是給你整個陣列,如M。然後[0]給你第一行。

同樣,M[0][:]也給你第一行,因爲[:]再次沒有效果。

+0

很多謝謝,,,, –