Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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 readin.txt并将其放入带有numpy的数组中_Python_Arrays_Numpy - Fatal编程技术网

Python readin.txt并将其放入带有numpy的数组中

Python readin.txt并将其放入带有numpy的数组中,python,arrays,numpy,Python,Arrays,Numpy,我想用numpy创建一个数组。 基本文件是一个.txt文件,其格式如下: 我用loadtxt试过: data = np.loadtxt("myfile.txt",delimiter='\n',skiprows = 1) 应跳过带有“Zeit”和“Signal”的第一行。我只需要以下形式的数组: [0,1],[0.01,2],[0.02,3]] “Zeit”和“Signal”的值用标签分开 我得到了这个错误: ValueError: could not convert string to fl

我想用numpy创建一个数组。 基本文件是一个.txt文件,其格式如下:

我用loadtxt试过:

data = np.loadtxt("myfile.txt",delimiter='\n',skiprows = 1)
应跳过带有“Zeit”和“Signal”的第一行。我只需要以下形式的数组:

[0,1],[0.01,2],[0.02,3]]

“Zeit”和“Signal”的值用标签分开

我得到了这个错误:

ValueError: could not convert string to float: 

看起来您不应该传递
delimiter='\n'
参数。正如我所看到的,这个参数似乎指定了一行上的值的分隔符,而不是一行的分隔符……并且在没有这个参数的情况下调用同一个函数对我很有效。

您能运行以下命令并报告它返回的内容吗?Specifically、 包里有什么

bag = []
i = 0
def probe(bit):
    global i
    i += 1
    try:
        return float(bit)
    except:
        bag.append((i, bit))
        return np.nan

data = np.loadtxt('myfile.txt', skiprows=1, converters={0:probe, 1:probe})
好的,试试:

import itertools
data = np.loadtxt(itertools.filterfalse(lambda x: len(x.split())!=2, open('myfile.txt')), skiprows=1)

这应该能解决你的问题

data = np.genfromtxt("myfile.txt",skip_header = 1,dtype=None,)
data = [list(i) for i in data]

我错误地试图将您的文件重新创建为

Zeit\tSignal
0.01\t1.1
0.02\t1.105
0.03\t1.108
0.04\t1.2
0.05\t1.205
0.06\t1.209
装载有:

data=np.loadtxt('test.txt', skiprows=1)
得到:

ValueError: could not convert string to float: b'0.01\\t1.1'
将字符串
\t
更改为实际制表符(使用copy-n-paste很难传达这一点):

确保您的文件只包含这些字符(列之间有空格或实制表符)。它应该是纯ASCII,而不是RTF或其他格式化测试

也许值得尝试一个字符串数据类型,看看是否有几个有趣的错误,例如

In [478]: data=np.loadtxt('test.txt', dtype=str)
In [479]: data
Out[479]: 
array([["b'Zeit'", "b'Signal'"],
       ["b'0.01'", "b'1.1'"],
       ["b'0.02'", "b'1.105'"],
       ["b'0.03'", "b'1.108'"],
       ["b'0.04'", "b'1.2'"],
       ["b'0.05'", "b'1.205'"],
       ["b'0.06'", "b'1.209'"]], 
      dtype='<U9')
[478]中的
:data=np.loadtxt('test.txt',dtype=str)
在[479]中:数据
出[479]:
数组([[“b'Zeit'”,“b'Signal'”),
[“b'0.01'”,“b'1.1'”,
[“b'0.02'”,“b'1.105'”,
[“b'0.03'”,“b'1.108'”,
[“b'0.04'”和“b'1.2'”,
[“b'0.05'”,“b'1.205'”,
[“b'0.06'”和“b'1.209'”],

dtype='本例中的分隔符是空白,而不是换行符。请删除分隔符的参数,因为默认值是任何空白。
delimiter
用于分隔列,但您可以向其传递一个换行符。尝试删除该分隔符,默认行为应适用于您的情况。对于制表符分隔符,请使用
delimiter='\t'
@hpaulj,我几乎可以100%默认值(“任何空白”)在tabsI上有效。我尝试在没有分隔符的情况下使用它,但传入了相同的错误:返回浮点(位):^Syntaxer错误:无效syntax@Nekoso对不起,请尝试删除冒号。好的,我再次尝试了:ValueError:第行的列数错误7@Nekoso好吧,那么。继续看第7行。除此之外,你还应该告诉我们现在包的样子(在运行'np.loadtxt'之后)我的.txt文件只有6行,如果我再添加一行,它会在第8行返回错误的列数。我在包中找不到任何项目
In [478]: data=np.loadtxt('test.txt', dtype=str)
In [479]: data
Out[479]: 
array([["b'Zeit'", "b'Signal'"],
       ["b'0.01'", "b'1.1'"],
       ["b'0.02'", "b'1.105'"],
       ["b'0.03'", "b'1.108'"],
       ["b'0.04'", "b'1.2'"],
       ["b'0.05'", "b'1.205'"],
       ["b'0.06'", "b'1.209'"]], 
      dtype='<U9')