1. 除去字符串中,不需要的字符,只要有用的字符,如
string_list = '[1.0,2.0,0.,3.0]\n' # 只想保留数字
解决方案:使用string模块中的maketrans()和translate()函数
import string
allchars = string.maketrans('', '') # maketrans函数生成一个翻译表(这里默认)
string_list = '[1. 0. 1. 0. 1. 1.]\n'.translate(allchars, '[]\n') # 过滤掉第二个参数中的字符
list_str = string_list.split(" ") # 将字符串分割(split)为字符串列表类型
list_float = map(float, list_str) # 将列表中元素,由字符串类型转换为浮点数
# 或者list_float = [float(e) for e in list_str] 也可以
arr_float = np.array(list_float) # 是数组类型,但是每一个元素都是浮点数
print 'arr_float.astype:', arr_float.astype
2. 将二维数组转化为列表形式list(list)
本人遇到的问题是,如果直接将二维数组写入文件,那么每一行(一条记录)无法写入一行,那个如果下次直接使用f.readlines()函数,获得的每一行并不是一个样本,虽然使用正则表达式和re模块可以解决,不过有些麻烦,因此,本人将每条记录用列表(list)表示,所有样本用list表示。因此将数组转化为列表的方法:
list_data = []
num_rows, num_cols = shape(array_data)
for i in range(num_rows):
list_rows = []
for j in range(num_cols):
list_rows.append(ro