我需要在for循环中每次创建一个新的数据集变量 使用.append如下所示不会工作。注意每个numpy数组类型变量的形状是(56,25000)
ps=[1,2,3,4]
for subj in ps:
datapath = '/home/subj%d' % (subj)
mydata.append = np.genfromtext(datapath, mydatafile)
所以基本上我需要她的4个mydata实例,每个实例的形状为(56,25000),或者为每个循环创建一个新的数据集变量,例如mydata1,...,mydata4 ....但是.append不会做的。我可以用
做到这一点if ps==1: mydata1 = np.genfromtext(datapath, mydatafile)
if ps==2: mydata2 = np.genfromtext(datapath, mydatafile)
等但是我有很多ps的实例,所以循环它会很好
谢谢!
答案 0 :(得分:2)
如果没有更多代码,很难说,但.append
通常是一种方法,应该像这样调用:
some_container.append(your_object)
注意我还要将mydata
初始化为空列表 - 您不会显示如何初始化它(如果您这样做的话),所以请注意:
mydata = []
for subj in [1,2,3,4]:
datapath = '/home/subj%d' % (subj)
mydata.append( np.genfromtext(datapath, mydatafile) )
然后,mydata
将成为numpy数组的4元素Python列表。
还有numpy的vstack()
和concatenate()
功能可能值得一试。
最后,只想指出
ps = [1,2,3,4]
for sub in ps:
...
可以写成(如上所述):
for sub in [1,2,3,4]:
...
但也作为:
for sub in range(1,5):
...
# or
for sub in range(4):
datapath = '/home/subj%d' % (subj + 1)
...