2017-04-11 151 views
0

我現在有一個固定大小的字符串數組numpy的:在numpy的固定大小的數組中取出固定大小的約束

import numpy as np 

str_arr = np.array(['test1', 'test2'], dtype='<U5') 
str_arr[0] = 'longer_string' 
print(str_arr) 

,並返回

['longe' 'test2'] 

我想刪除此限制。有沒有辦法做到這一點?下面是我嘗試失敗的一個例子:

str_arr_copy = str_arr.astype(str) 
str_arr_copy[0] = 'longer_string' 
print(str_arr_copy) 

而且它根本沒有任何幫助。

謝謝!

+0

'str_arr.astype(「U100」)'給你更多的空間,但並沒有消除限制。對於這項工作,定期清單可能會更好。 – hpaulj

回答

2

你可以將其轉換爲dtype=object,做作業,然後再轉換回dtype=str

>>> str_arr_copy = str_arr.astype(object) 
>>> str_arr_copy[0] = 'longer_string' 
>>> print(str_arr_copy.astype(str)) 
array(['longer_string', 'test2'], 
     dtype='<U13') 
+0

使用'arr.tolist()'生成中間副本幾乎同時運行。 – hpaulj