从numpy.genfromttxt导入文件时打印求和数组



我有几个文件,其中第一列是文本,其余的数字像

first.txt

A 1 3 5 7B 9 11 13 15

second.txt

A 0 4 6 8
B 10 12 14 16

我像一样进口

a=[] 
b=[]
descr=[]
descr.append( np.genfromtxt('first_file.txt', dtype=None,usecols=(0)))
for counter in range(1,5) :
a.append( np.genfromtxt('first_file.txt', dtype=None,usecols=(counter+1)))
b.append( np.genfromtxt('second_file.txt', dtype=None,usecols(counter+1)))

现在基本上,descr[]保持第一列的字符串,而a和b是数组,我现在需要对每列进行汇总并打印类似的东西

求和结果

1 7 11 15

B 19 23 27 31

我试过这个

total = a+b
lines = ['  t'.join([str(x[i]) if len(x) > i else ' ' for x in total]) for i in range(len(max(total)))]
for i in range(len(descr)):
if descr[i] != '' :
print '{}  {}'.format(descr[i], lines[i])

但我有

lines=['\t'.join([str(x[i](if len(x(>i else''for x in tot](for i in range(len(max(tot((]ValueError:数组的真值具有多个元素是不明确的。使用.any((或.all((

我不能完全理解你的问题,你对total的评论也对我没有多大帮助。考虑到你的整体问题,你可以简单地做:

import numpy as np 
a = []
b = []
descr = np.genfromtxt('first.txt', dtype=None, usecols=(0))
for counter in range(1,5):
temp = np.genfromtxt('first.txt', dtype=None,usecols=(counter))
a.append(temp)
temp = np.genfromtxt('second.txt', dtype=None,usecols=(counter))
b.append(temp)
total = []
seq = []
seq.append(a)
seq.append(b)
total.append(np.sum(seq,axis=0))
print("Total: ")
print(total)
print("nResult: ")
for i in range(len(descr)):
if descr[i] != '' :
print (descr[i], total[0][:,i])

它会给你以下结果:

Total: 
[array([[ 1, 19],
[ 7, 23],
[11, 27],
[15, 31]])]
Result: 
b'A' [ 1  7 11 15]
b'B' [19 23 27 31]

您的错误之一是在表达式max(total)中,假设您想要使用数组的最大长度:

l = max(map(len, total))

然后,按照你的语法:

lines = ['  t'.join([str(x[i]) if len(x) > i else ' ' for x in total]) for i in range(l)]

如果这没有给出预期的结果,请添加您预期输出的样本

相关内容

  • 没有找到相关文章

最新更新