我有字符的numpy的陣列,當我把它寫到文件,它這樣寫道:打開人物與NumPy數組轉換成字符串
['K' 'R' 'K' 'P' 'T' 'T' 'K' 'T' 'K' 'R' 'G' 'L']
我希望它只有字母,沒有括號或寫報價即作爲:
KRKPTTKTKRGL
我已經看過numpy的文件,從我收集到的解決方案是一個chararray但是看起來這並不像功能作爲一個正常的數組。
任何幫助將是偉大的。謝謝!
我有字符的numpy的陣列,當我把它寫到文件,它這樣寫道:打開人物與NumPy數組轉換成字符串
['K' 'R' 'K' 'P' 'T' 'T' 'K' 'T' 'K' 'R' 'G' 'L']
我希望它只有字母,沒有括號或寫報價即作爲:
KRKPTTKTKRGL
我已經看過numpy的文件,從我收集到的解決方案是一個chararray但是看起來這並不像功能作爲一個正常的數組。
任何幫助將是偉大的。謝謝!
您可以使用numpy
tostring()
方法:
>>> st = np.array(['K' 'R' 'K' 'P' 'T' 'T' 'K' 'T' 'K' 'R' 'G' 'L'])
>>> st.tostring()
'KRKPTTKTKRGL'
既然你有一個numpy
陣列,這種方法會比join()
更快。
對於Python3x tostring()
可作爲:如果您使用tofile()
方法來保存數組到文件
>>> st = np.array(['K','R','K','P','T','T','K','T','K','R','G','L'])
>>> st.astype('|S1').tostring().decode('utf-8')
'KRKPTTKTKRGL'
"".join(['K' 'R' 'K' 'P' 'T' 'T' 'K' 'T' 'K' 'R' 'G' 'L'])
,默認的分隔符是空字符串""
。
所以,如果你的陣列是這樣的,
st = np.array(['K', 'R', 'K', 'P', 'T', 'T', 'K', 'T', 'K', 'R', 'G', 'L'])
那麼,如果你使用Python 2,
>>> st.tofile('myfile.txt')
創建具有下列內容的文件:
KRKPTTKTKRGL
如果您正在使用Python 3,您可能需要首先明確地將該陣列轉換爲S
字符串類型:
>>> st.astype('|S1').tofile('myfile.txt')
在Python 3中(不知道大約2)這創建了一個字節對象,而不是一個字符串。請注意,OP的數組可能在定義中包含逗號,否則它實際上是'np.array(['KRKPTTKTKRGL'])''。我懷疑缺少逗號就是因爲OP所說的打印到文件中。有關更多詳細信息,請參閱文檔[此處](http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.tostring.html)。 – Ffisegydd
Ffisegydd是正確的,這將無法正常工作 –
我使用Python 2,此方法完美工作。它完全是我想要的。謝謝! – aatakan