Python 为每个循环创建新的numpy数组数据集

Python 为每个循环创建新的numpy数组数据集,python,numpy,Python,Numpy,每次在for循环中,我都需要创建一个新的dataset变量 使用下面的.append将不起作用。注意每个numpy数组类型变量的形状是(5625000) 因此,基本上我需要她4个mydata实例,每个实例的形状为(5625000),或者为每个循环创建一个新的数据集变量,例如mydata1,…,mydata4…但是,append不能做到这一点。我可以用它来做这个 if ps==1: mydata1 = np.genfromtext(datapath, mydatafile) if ps==2:

每次在for循环中,我都需要创建一个新的dataset变量 使用下面的.append将不起作用。注意每个numpy数组类型变量的形状是(5625000)

因此,基本上我需要她4个mydata实例,每个实例的形状为(5625000),或者为每个循环创建一个新的数据集变量,例如mydata1,…,mydata4…但是,append不能做到这一点。我可以用它来做这个

if ps==1: mydata1 = np.genfromtext(datapath, mydatafile)

if ps==2: mydata2 = np.genfromtext(datapath, mydatafile)
等等,但我有很多ps的实例,所以最好循环一下


谢谢

很难说没有更多的代码,但是
.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
将是一个4元素的numpython数组列表

还有numpy的功能,可能值得一看

最后,我想指出

ps = [1,2,3,4]
for sub in ps:
    ...
可以写为(如上所述):

但也作为:

for sub in range(1,5):
    ...

# or

for sub in range(4):
    datapath = '/home/subj%d' % (subj + 1)
    ...

您不应分配给
追加
。这样做
mydata.append(np.genfromtext(datapath,mydatafile))
?您可以使用@jedwards-answer,或者如果您需要numpy索引,您可以轻松初始化空numpy数组并用每次迭代填充它。获取空间:
data=numpy.empty(4,5625000)
,然后在每个循环中
data[i-1]=np.genfromtext(datapath,mydatafile)
。注意,对于这种方法,您必须事先知道数据集的长度和数据集的数量,但不要将numpy堆栈表达式放入循环中。收集一个列表并连接一次。
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)
    ...