【发布时间】:2015-09-12 12:32:06
【问题描述】:
下面的代码应该做如下:
使用 csv 文件中的特定数字列填充空列表。
然后计算列表值的平均值并绘制结果值。
问题:我不断收到错误“TypeError:无法使用灵活类型执行缩减”。我所知道的是,它必须通过压缩列表来做一些事情。但除此之外我不确定。任何帮助表示赞赏。
import csv
import matplotlib.pyplot as plt
import numpy as np
channelData = []
channelSel = int(input("Select a channel to view "))
with open('PrivateData.csv', newline='') as f:
reader = csv.reader(f)
for row in reader:
channelData.append(row[channelSel])
averagemV = np.mean(channelData)
plt.plot(averagemV)
plt.ylabel("Average mV")
plt.xlabel("Channel " + str(channelSel))
plt.show()
【问题讨论】:
-
channelData中每个元素的类型是什么? -
@Kevin 整数。第 5 行代码你可以看到它是一个读取为整数的用户输入。
-
在我看来错误来自 numpy 包,您可能需要添加该标签。
-
但是您不是将
channelSel附加到channelData,而是附加row[channelSel],这可能不一定与channelSel具有相同的类型。 -
@Kevin 我正在使用的值在技术上是浮点值。 row[channelSel] 真正的意思是在 csv 文件的每一行中取第 [channelSel] 个值