简体   繁体   中英

Replace character in numpy ndarray (Python)

I have a numpy ndarray with 6 elements:

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

I am trying to replace all tab characters \\t with 4 spaces each so that the numpy array would now be:

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

I have considered re.sub but cannot figure out how to implement it when it comes down to an numpy ndarray. Any suggestions/help please?

You could use NumPy's core.defchararray that deals with string related operations and for this case use replace method , like so -

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

Sample run -

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')

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM