在python中将csv文件导入为numpy兼容的列表列表
我正尝试使用以下方法将.csv文件导入我的IPython笔记本:在python中将csv文件导入为numpy兼容的列表列表,python,csv,numpy,matplotlib,ipython-notebook,Python,Csv,Numpy,Matplotlib,Ipython Notebook,我正尝试使用以下方法将.csv文件导入我的IPython笔记本: import csv datafile_dC = open('/Users/iMacHome/dual-Core.csv', 'r') datareader_dC = csv.reader(datafile_dC) data_dC = [] for row in datareader_dC: data_dC.append(row) data_dC = np.array(data_dC) print data_dC x = da
import csv
datafile_dC = open('/Users/iMacHome/dual-Core.csv', 'r')
datareader_dC = csv.reader(datafile_dC)
data_dC = []
for row in datareader_dC:
data_dC.append(row)
data_dC = np.array(data_dC)
print data_dC
x = data_dC[:, 6]
y = data_dC[:, 7]
打印数据产生(简写):
但是,使用此方法*似乎会产生以下错误:
TypeError: unsupported operand type(s) for *: 'float' and 'numpy.ndarray'
调用以下命令时:
def myBoundary(x, y0=-2.163, slope=-1.7):
return (slope * x) + y0
y_boundary = myBoundary(x, y0=-2.163, slope=-1.7)
我知道这很琐碎,但如果有人能提出解决这个问题的方法,我将不胜感激
N.B.*以列表的形式手动输入数据不会产生相同的错误。尝试以下方法:
def myBoundary(x, y0=-2.163, slope=-1.7):
x = np.array([float(x0) for x0 in x])
return (slope * x) + y0
您的数据是一个字符串列表您应该将数据强制转换为浮点数,并实际将列表列表转换为numpy列表。我如何执行此操作?您是否知道
loadtxt
()和genfromtxt
()?y边界的长度与data\u dC中的行数相同(也是x的长度)。你的意思是长度只有2?看起来是这样的,我有两个数据点:一个在分界线下面,一个在…上面?如果你在调用myBoundary之前打印x怎么办?x的长度是多少?这对我来说很有用(myBoundary返回的长度与x的长度相同),因此我可以建议在行之前和之后打印x:x=np.array([float(x0)表示x中的x0])。对于文本输入,float()转换的行为可能不符合预期。
def myBoundary(x, y0=-2.163, slope=-1.7):
x = np.array([float(x0) for x0 in x])
return (slope * x) + y0