encode
ist eine String-Methode, kann also nicht direkt auf ein Array von Strings arbeiten. Aber es gibt mehrere Möglichkeiten, es auf jede Zeichenfolge anzuwenden
Hier arbeite ich Py3, so ist der Standardwert Unicode.
In [179]: A=np.array(['one','two'])
In [180]: A
Out[180]:
array(['one', 'two'],
dtype='<U3')
Ebene Iteration:
In [181]: np.array([s.encode() for s in A])
Out[181]:
array([b'one', b'two'],
dtype='|S3')
np.char
hat Funktionen, String-Methoden, die jedes Element eines Arrays anwenden:
In [182]: np.char.encode(A)
Out[182]:
array([b'one', b'two'],
dtype='|S3')
aber es sieht so aus einer der Umsetzungen ist, dass astype
kann handhaben:
In [183]: A.astype('<S3')
Out[183]:
array([b'one', b'two'],
dtype='|S3')
Und eine aktuelle Frage inspiriert über np.chararray
: What happened to numpy.chararray
In [191]: Ac=np.char.array(A)
In [192]: Ac
Out[192]:
chararray(['one', 'two'],
dtype='<U3')
In [193]: Ac.encode()
Out[193]:
array([b'one', b'two'],
dtype='|S3')