首先我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_array
file = '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)