numpy数据分隔符有两种

数据格式如上图,有两种分隔符,“\t" "\x01",使用loadtext传入delimiter属性值时只能传一个,而且“\x01"并不能作为分隔符,考虑第一步,先将”\t"处理掉,再将第二列拆分,代码如下:

n=np.loadtxt("F://test.txt",dtype='str',delimiter='\t')
这里刚好练习下数组切分:要对第二列切分,这一列该如何取到手?

用到了map函数,(终于用到了,学了后都没用过,都忘了,查了后才用)
n1=list(map(lambda x:x.split("\x01"),n[:,1]))
好了,拿到了一个列表,(注意,map后生成map对象,必须要用list对其转换),现在这个list还不能直接导入ndaary,
如果导入np.array([n[:0],n1]),会报错:setting an array element with a sequence,这里把整个list当成一维list了!!
利用:n2=np.array(n1),这时这个n2长度为10,现在传入,不会报错了。
n3=np.array([n[:,0],n2])
完整:
n=np.loadtxt("F://test.txt",dtype='str',delimiter='\t')
n1=list(map(lambda x:x.split("\x01"),n[:,1]))
n2=np.array(n1)
n3=np.array([n[:,0],n2])

这个办法太笨了,不过我呀想不到好办法了,太笨了,抱紧自己,泪牛满面



猜你喜欢

转载自blog.csdn.net/weixin_41338006/article/details/80083606