一些i / o问题

时间:2013-11-18 16:17:28

标签: python numpy io

免责声明:这是一项作业。如果你觉得我只是要求你为我做作业"让我知道,我会问一个更广泛的问题,或者如果你能讨好就给我提示。

好的,我有两套100个文件。第一组称为cell_spks_n,其中n = 1,...,100,第二组称为cell_dirs_n,其中n = 1,...,100。 numpy的loadtxt将这些文件加载​​到5x8数组中,这是完美的。我想加载这些并为它们做一些事情。现在我的问题是命名所有这些文件。我想过制作两个名为dirs和spks的列表,并按顺序将数组存储在其中。但是出现了问题,它只会附加一个元素,而numpy会加载,我不知道出了什么问题。

from numpy import *

files = 100
for i in range(1, files+1):
    dirs = []
    spks = []
    if (0<i<9):
        dirs_name = 'neurondata/cell_dirs_00' + str(i) + '.txt' 
        spks_name = 'neurondata/cell_spks_00' + str(i) + '.txt'
        dirs.append(loadtxt(dirs_name))
        spks.append(loadtxt(spks_name))
    elif (9<i<=99):
        dirs_name = 'neurondata/cell_dirs_0' + str(i) + '.txt' 
        spks_name = 'neurondata/cell_spks_0' + str(i) + '.txt'
        dirs.append(loadtxt(dirs_name))
        spks.append(loadtxt(spks_name))
    else:
        dirs.append(loadtxt('neurondata/cell_dirs_100.txt'))
        spks.append(loadtxt('neurondata/cell_spks_100.txt'))


# Fancy stuff gets done here

我认为将这些作为数组加载甚至可能是一个坏主意,我必须记住我的索引来访问数据。理想的情况是有某种循环,如下所示:

for i in range(1,files+1):
    spk_i = loadtxt('cell_spks_i')
    dir_i = loadtxt('cell_dirs_i')

思想?

编辑:我忘记了一些输出

如果我说

for item in spks:
    print item
print shape(spks)

我得到输出

[[ 25.287356   23.655914   22.988506   14.285714    2.3809524   4.3478261
19.354839   11.764706 ]
[ 16.129032   26.666667   19.565217    7.2289157   5.8823529  13.861386
7.0588235  12.195122 ]
[ 13.157895   16.86747    26.190476   29.62963    12.121212   12.307692
27.5        19.047619 ]
[ 18.518519   25.396825   34.482759   14.814815   20.224719    9.4117647
6.6666667  21.686747 ]
[ 32.55814    22.988506   26.506024   21.782178   13.114754    2.7777778
14.814815    8.6021505]]
(1, 5, 8)

1 个答案:

答案 0 :(得分:2)

您在每次迭代时重置dirs和spks,所以基本上每次循环运行时它都会启动一个新的列表。在循环外获取dirs和spks声明应该可以解决问题。