2016-12-04 48 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'混淆了什么?可以给出一个单线来解释这个计数如何工作吗? –