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