Python 从CSV读取列表并转换为浮动列表

Python 从CSV读取列表并转换为浮动列表,python,csv,Python,Csv,我想对我的数据做一些数学运算,然后坚持下去。 我正在从csv文件中读取字符串列表,到目前为止可以绘制它们。 现在我正在尝试将字符串列表转换为浮动列表,因为我想对列表项进行一些计算,创建新的列表并绘制它们 import numpy as np import math import matplotlib.pyplot as plt with open("testlog.csv") as f: data = f.read() data = data.split('\n') time =

我想对我的数据做一些数学运算,然后坚持下去。 我正在从csv文件中读取字符串列表,到目前为止可以绘制它们。 现在我正在尝试将字符串列表转换为浮动列表,因为我想对列表项进行一些计算,创建新的列表并绘制它们

import numpy as np
import math
import matplotlib.pyplot as plt

with open("testlog.csv") as f:
    data = f.read()

data = data.split('\n')

time = [row.split(',')[0] for row in data]
gyro_x_lsb = [row.split(',')[1] for row in data]
gyro_y = [row.split(',')[2] for row in data]
gyro_z = [row.split(',')[3] for row in data]
accel_x = [row.split(',')[4] for row in data]
accel_y = [row.split(',')[5] for row in data]
accel_z = [row.split(',')[6] for row in data]
comp_x = [row.split(',')[7] for row in data]
comp_y = [row.split(',')[8] for row in data]
comp_z = [row.split(',')[9] for row in data]
temp = [row.split(',')[10] for row in data]

gyro_x_lsb = float(gyro_x_lsb)# make floats in a new list
gyro_x_dps = [gyro_x_lsb / (32768*2000) for gyro_x_dps_f in gyro_x_lsb]

fig = plt.figure()

ax1 = fig.add_subplot(211)
ax1.set_title("Gyro X AR [LSB]")
ax1.set_xlabel('Time[ms]')
ax1.set_ylabel('AR [LSB]')
ax1.plot(time,gyro_x_lsb, c='r', label='X')
leg = ax1.legend()

ax2 = fig.add_subplot(212)
ax2.set_title("MPU9250_test_Accel")
ax2.set_xlabel('Time[ms]')
ax2.set_ylabel('Acceleration')
ax2.plot(time,accel_x, c='r', label='Accel_X')
leg = ax2.legend()

plt.show()
我试图计算“gyro_x_lsb”/32768*2000中的每一项。但这是行不通的。 我已经试过地图了

先谢谢你。。。 TMP36

顺便说一句:我将Anaconda3(2.5.0)与Python3.5结合使用 我对Python和本论坛都是新手。

将为您做很多事情

比如:

这里我使用的是与列表理解相同的语法,但在本例中性能更好

希望能有点帮助


考虑使用Python <代码> CSV 模块读取CSV文件。

< P>谢谢CSV模块的提示。这会将我的数据读取为元组。这对我来说也是新鲜事,我发现有可能对我的数据进行一些计算。这是现在对我有效的代码,也许不完美,但我现在很高兴

import csv
import matplotlib.pyplot as plt

with open("testlog.csv") as data:
    #reader = csv.reader(data) #read columns as strings
    reader = csv.reader(data, quoting=csv.QUOTE_NONNUMERIC) #read columns as numbers
    time, gyro_x, gyro_y, gyro_z, accel_x, accel_y, accel_z, comp_x, comp_y, comp_z, temp = zip(*reader)

#gyro_x_dps = gyro_x

def gyro_x_dps(gyro_x):
    return tuple( [e / 65536000 for e in gyro_x])

fig = plt.figure()

ax1 = fig.add_subplot(211)
ax1.set_title("Gyro X AR [LSB]")
ax1.set_xlabel('Time[ms]')
ax1.set_ylabel('AR [LSB]')
ax1.plot(time,gyro_x, c='r', label='X')
leg = ax1.legend()

ax2 = fig.add_subplot(212)
ax2.set_title("Gyro X AR [dps]")
ax2.set_xlabel('Time[ms]')
ax2.set_ylabel('AR [dps]')
ax2.plot(time,gyro_x_dps(gyro_x), c='r', label='X')
leg = ax2.legend()

plt.show()
可能重复的
import csv
import matplotlib.pyplot as plt

with open("testlog.csv") as data:
    #reader = csv.reader(data) #read columns as strings
    reader = csv.reader(data, quoting=csv.QUOTE_NONNUMERIC) #read columns as numbers
    time, gyro_x, gyro_y, gyro_z, accel_x, accel_y, accel_z, comp_x, comp_y, comp_z, temp = zip(*reader)

#gyro_x_dps = gyro_x

def gyro_x_dps(gyro_x):
    return tuple( [e / 65536000 for e in gyro_x])

fig = plt.figure()

ax1 = fig.add_subplot(211)
ax1.set_title("Gyro X AR [LSB]")
ax1.set_xlabel('Time[ms]')
ax1.set_ylabel('AR [LSB]')
ax1.plot(time,gyro_x, c='r', label='X')
leg = ax1.legend()

ax2 = fig.add_subplot(212)
ax2.set_title("Gyro X AR [dps]")
ax2.set_xlabel('Time[ms]')
ax2.set_ylabel('AR [dps]')
ax2.plot(time,gyro_x_dps(gyro_x), c='r', label='X')
leg = ax2.legend()

plt.show()