0

我是 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)
4

2 回答 2

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)
于 2013-09-04T07:01:58.087 回答
0

我认为您正在尝试对导入数组中的列求和。

假设这是有效的:

y_array1 = np.genfromtxt(filename, skip_header = 1, usecols = (0, 1, 2, 3, 4))

然后

y_array0 = y_array1.sum(axis=0)

应该给出列的总和

关于绘图,我会推荐matplotlib

于 2013-09-03T15:42:42.653 回答