2016-12-04 5 views
1

Ich habe einen numpy ndarray mit 6 Elementen:ersetzen Zeichen in numpy ndarray (Python)

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

ich all Tab-Zeichen \t mit 4 Leerzeichen jeden so ersetzen versuchen, dass die numpy Array wäre jetzt:

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

ich habe als re aber kann nicht herausfinden, wie man es implementiert, wenn es um ein numpy ndarray geht. Irgendwelche Vorschläge/Hilfe bitte?

Antwort

1

könnten Sie NumPy's core.defchararray verwenden, die mit String-bezogene Operationen beschäftigt und für diesen Fall verwenden replace method, wie so -

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

Probelauf -

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

Schnell Follow-up; ist es möglich, die Anzahl der Ersetzungen zu erhalten, d. h. in diesem Fall 3? –

+0

@ nk-fford Eine Lösung wäre: 'np.core.defchararray.not_equal (output, arr) .sum()'. – Divakar

+0

Verwirrt mit dem, was "Ausgabe" und "Arr" in diesem Fall ist? Könnte ein One-Liner geben, um zu erklären, wie diese Zahl bitte funktioniert? –

Verwandte Themen