【发布时间】:2020-03-08 03:52:13
【问题描述】:
我有几个文件,其中第一列为文本,其余为数字
first.txt
A 1 3 5 7 B 9 11 13 15
second.txt
A 0 4 6 8
乙 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
乙 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: 数组的真值 具有多个元素是模棱两可的。使用 a.any() 或 a.all()
【问题讨论】:
-
在加载后打印
a、b、descr的值。你如何加载这些数组并不重要:这不是发生最终错误的地方。 -
打印没有显示任何错误...我可以看到数组填充正常
-
你能打印(并在此处添加)
total的前 5 或 10 行吗? -
@Mstaino 原则上文件并不像我给出的示例那样小 - 它们看起来更像
[array([8.7213804e+05, 8.1190010e+04, 2.1497340e+04, 2.1497340e+04, 1.9885670e+04, 1.3772000e+02, 1.3772000e+02]), array([8.7213804e+05, 8.1190010e+04, 2.1497340e+04, 2.1497340e+04, 1.9885670e+04, 5.4840000e+01, 5.4840000e+01])...] -
我认为你没有抓住重点。我希望你的负载完全没问题。这与您的问题完全无关。您应该编辑您的问题以获得最小的可重复示例。我们不需要查看您的填充数组或文本文件,只需查看一个小样本数组和失败的操作
标签: python numpy genfromtxt