如何有选择地填充空数组?

时间:2013-09-03 15:25:05

标签: arrays numpy populate

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

2 个答案:

答案 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