Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将csv文件导入为numpy兼容的列表列表_Python_Csv_Numpy_Matplotlib_Ipython Notebook - Fatal编程技术网

在python中将csv文件导入为numpy兼容的列表列表

在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

我正尝试使用以下方法将.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 = 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