免责声明:这是一项作业。如果你觉得我只是要求你为我做作业"让我知道,我会问一个更广泛的问题,或者如果你能讨好就给我提示。
好的,我有两套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)
答案 0 :(得分:2)
您在每次迭代时重置dirs和spks,所以基本上每次循环运行时它都会启动一个新的列表。在循环外获取dirs和spks声明应该可以解决问题。