首先我csv文件中数据如上,是个25*4的数据。
现在需要读取,并将其转化为二维数组,方便后续操作。
import csv
with open('q_table.csv', 'r') as file:csv_reader = csv.reader(file)data_array = []for row in csv_reader:data_array.append(row)print(type(data_array))
print(data_array)
这里使用csv模块。
运行结果如下
import csv
def read_csv_to_array(file):with open(file, 'r') as file:csv_reader = csv.reader(file)data_array = []for row in csv_reader:data_array.append(row)return data_array
file = 'q_table.csv'
a = read_csv_to_array(file)
print(a)
封装成函数后,以后就可以直接调用。
注意:上面内容读取出来的数据类型是str字符串。如果你需要转换成int类型,你可以如下。
import csv
def read_csv_to_array(file):with open(file, 'r') as file:csv_reader = csv.reader(file)data_array = []for row in csv_reader:row = [float(value) for value in row] # 转换为浮点数类型data_array.append(row)return data_arrayfile = 'q_table.csv'
a = read_csv_to_array(file)
通过使用一个列表解释式,将每行元素每个数据都转化为浮点数类型。
row = [float(value) for value in row] # 转换为浮点数类型
当然,你最好使用numpy,将最后返回的数组通过numpy.array进行格式转换一下,方便后续调用。
import csv
import numpy as np
def read_csv_to_array(file):with open(file, 'r') as file:csv_reader = csv.reader(file)data_array = []for row in csv_reader:row = [float(value) for value in row] # 转换为浮点数类型data_array.append(row)return np.array(data_array)