2016-12-04 69 views
1

我有一個numpy的ndarray 6種元素替換字符:在numpy的ndarray(Python)的

['\tblah blah' '"""123' 'blah' '"""' '\t456' '78\t9']

我想替換所有的製表符\t有4位各從而使numpy的陣列現在將是:

[' blah blah' '"""123' 'blah' '"""' ' 456' '78 9']

我已經考慮re.sub,但無法弄清楚如何實現它時,它涉及到一個numpy ndarray。任何建議/幫助嗎?

回答

1

你可以使用NumPy's core.defchararray與字符串相關的操作交易而這種場合使用replace method,像這樣 -

np.core.defchararray.replace(arr,'\t', ' ') 

採樣運行 -

In [44]: arr 
Out[44]: 
array(['\tblah blah', '"""123', 'blah', '"""', '\t456', '78\t9'], 
     dtype='|S10') 

In [45]: np.core.defchararray.replace(arr,'\t', ' ') 
Out[45]: 
array([' blah blah', '"""123', 'blah', '"""', ' 456', '78 9'], 
     dtype='|S13') 
+0

快速跟進;是否有可能獲得替代品的數量,即在這種情況下是3? –

+0

@ nk-fford對此的一個解決方案是:'np.core.defchararray.not_equal(output,arr).sum()'。 – Divakar

+0

在這種情況下,與'output'和'arr'混淆了什麼?可以給出一個單線來解釋這個計數如何工作嗎? –