我是python的新手并且尝试完成以下任务但收效甚微:
在一个文件夹中有* .columns文件,它们都包含5(0-4)列和500行。我需要在所有* .columns文件中总结第1-4列,并将结果绘制在任何一个(所有相等)的第一列上。
我创建了一个空数组,我要在其中粘贴数组“x_array3”的第一列(0)和“y_array0”中的第1-4列。它们都具有相同的尺寸(500L,5L)。
你能告诉我如何继续吗?我现在迷路了。基督教
import glob
import numpy as np
ListOfFiles = glob.glob("*.columns")
y_array0 = 0
for filename in ListOfFiles:
y_array1 = np.genfromtxt(filename, skip_header = 1, usecols = (0, 1, 2, 3, 4))
y_array0 = y_array0 + y_array1
x_array3 = np.genfromtxt(ListOfFiles[0], skip_header = 1, usecols = (0, 1, 2, 3, 4))
empty_array = np.empty(shape=(500, 5))
ausgabe_array = ??? here I'm stuck ???
np.savetxt('SX_DOS.out', ausgabe_array)
答案 0 :(得分:1)
我找到了一个有效的解决方案。我在所有列中读取单个数组并在最后合并它们。仍然,任何人都可以给我一个提示,如何用另一个数组(另一个大小)中的选定项填充空数组?
人权委员会。
import glob
import numpy as np
ListOfFiles = glob.glob("*.columns")
y_array_s0 = 0
y_array_p0 = 0
y_array_d0 = 0
y_array_f0 = 0
for filename in ListOfFiles:
y_array_s1 = np.genfromtxt(filename, skip_header = 1, usecols = (1))
y_array_s0 = y_array_s0 + y_array_s1
y_array_p1 = np.genfromtxt(filename, skip_header = 1, usecols = (2))
y_array_p0 = y_array_p0 + y_array_p1
y_array_d1 = np.genfromtxt(filename, skip_header = 1, usecols = (3))
y_array_d0 = y_array_d0 + y_array_d1
y_array_f1 = np.genfromtxt(filename, skip_header = 1, usecols = (4))
y_array_f0 = y_array_f0 + y_array_f1
x_array3 = np.genfromtxt(ListOfFiles[0], skip_header = 1, usecols = (0))
ausgabe_array = np.transpose(np.array((x_array3, y_array_s0, y_array_p0, y_array_d0,y_array_f0)))
np.savetxt('SX_DOS.out', ausgabe_array)
答案 1 :(得分:0)
我认为您正在尝试对导入数组中的列进行求和。
假设这是有效的:
y_array1 = np.genfromtxt(filename, skip_header = 1, usecols = (0, 1, 2, 3, 4))
然后
y_array0 = y_array1.sum(axis=0)
应该提供sum of the columns。
关于绘图,我建议matplotlib