2013-12-11 52 views
3

我在numpy的陣列,將其所以我的條目都是字符串使用np.array()從Python列表生成的,但某些值是空白的。下面是一個示例數組:numpy的陣列,填充空值的單個列

['1', '1', '1', '1'] 
['1', '1', '', '1'] 
['1', '1', '1', '1'] 
['1', '', '1', '1'] 

沒有'NaN'或'None',它是空的。我希望能夠填充具有相同值的特定列中的所有空白單元格。

任何輸入將不勝感激,謝謝。

發表回覆編輯

下面的答案是完美的,當下面的評論。

+0

的[numpy的數組初始化(填入相同的值)可能重複(http://stackoverflow.com/問題/ 5891410/numpy-array-initialization-fill-with-identical-values) – aIKid

回答

5

您可以使用numpy.where()來實現這一目標。

In [8]: arr = numpy.array(['','1','2','3','']) 

In [9]: arr[numpy.where(arr=='')] = '0' 

In [10]: arr 
Out[10]: 
array(['0', '1', '2', '3', '0'], 
     dtype='|S1') 

編輯作爲@mgilson指出的那樣,你可以只是做:

arr[arr==''] = '0' 
+6

我不認爲'np.where'在這裏是必要的(是嗎?)。你不能只是做'arr [arr ==''] ='0''? – mgilson

+0

啊,是的,好點! – qmorgan

+0

我想填充特定列的空白單元格,而不是全部空白單元格。說我使用的代碼:arr [arr [0 ::,1] ==''] ='0'。這將第二列中的空白行變爲全部0個條目,而不僅僅是空白。 – bronstad