【Python】list 类型的保存与读取

【Python】list 类型的保存与读取

1. 介绍

对于np.array是格式化的数据,其有配套的保存与读取函数。但是对于list其可能是不等长的,因此没有发现可用的函数去进行list数据的保存与读取。

针对以下问题,在 2 中代码进行实现:

  • 数据的格式为list类型,其中每个元素也是一个list类型数据,里面的元素是浮点型。

2. 代码实现

2.1 每个 list 的长度相同

可以直接转成array类型再存储起来,可以仿照np.array的保存、读取操作。

# save
 np.savetxt( "X.txt",np.array(X))
# load
 X = list(np.loadtxt("X.txt"))

2.2 每个list元素大小不同

如果 list 数据里的元素维度不同的话,这样转成array保存是会报错的。需要改成这样。

1)保存:

file = open( "X.txt", 'w')
for fp in X:
    file.write(str(fp))
    file.write('\n')
file.close()

2)读取:读取的时候读到的数据都是 list 的没错,但是里面的元素变成了字符串类型了,这时候需要每行的字符串数据再转成 list。

file = open("/X.txt", 'r')
X = file.readlines()#直接每行读取
n=len(X)
for i in range(n):
   X[i] = X[i].strip()#去除后面的换行元素
   X[i]=X[i].strip("[]")#去除列表的[]符号
   X[i] = X[i].split(",")#根据‘,’来将字符串分割成单个元素
   X[i] = list(map(float, X[i]))#分离出来的单个元素也是字符串类型的,将其转成浮点
########下面的代码用来处理原数据中含有nan值的情况,将nan置0,如果无nan值或者不需要转换可省略#####
   narry=np.array(X[i])
   where_are_nan = np.isnan(narry)
   narry[where_are_nan] = 0
   X[i]=narry.tolist()
file.close()

猜你喜欢

转载自blog.csdn.net/qq_51392112/article/details/130387255
今日推荐