如何将多个 .npy 文件加载到单个 numpy 数组中
How to load multiple .npy files into a single numpy array
我想加载多个 numpy 文件并将它们放在这样的数组中 ["file1.npy","file2.npy","file3.npy",...... ] 在此数组上应用 pca 降维。
如有任何帮助,我们将不胜感激
代码
k=1
for indexPatient in range(0, len(patients)):
interictalData_withoutpca=np.concatenate((interictalData, tmpData[0:22,start*256:end]), axis=1)
x=np.array(interictalData_withoutpca)
y=np.save('interictalData_matrix'+str(k)+'_'+patients[indexPatient]+'_'+str(l),x)
k+=1
最简单的方法是:
filenames = ["file1.npy", "file2.npy", "file3.npy"]
combined_data = np.array([np.load(fname) for fname in filenames])
这要求每个文件中存储的数组具有相同的形状;否则你得到一个对象数组而不是多维数组。
如果数据量很大并且您知道数据的形状,比如 (n1, n2)
,预分配数据会更有效(在速度和内存方面):
combined_data = np.zeros((len(filenames), n1, n2))
for i, fn in enumerate(filenames):
combined_data[i, :, :] = np.load(fn)
另外,请注意您生成数据的代码可以更符合 Pythonic:
for k, patient in enumerate(patients, start=1):
idata = np.concatenate((interictalData, tmpData[0:22, start*256:end]), axis=1)
np.save(f'interictalData_matrix{k}_{patient}_{l}.npy', idata)
我想加载多个 numpy 文件并将它们放在这样的数组中 ["file1.npy","file2.npy","file3.npy",...... ] 在此数组上应用 pca 降维。
如有任何帮助,我们将不胜感激
代码
k=1
for indexPatient in range(0, len(patients)):
interictalData_withoutpca=np.concatenate((interictalData, tmpData[0:22,start*256:end]), axis=1)
x=np.array(interictalData_withoutpca)
y=np.save('interictalData_matrix'+str(k)+'_'+patients[indexPatient]+'_'+str(l),x)
k+=1
最简单的方法是:
filenames = ["file1.npy", "file2.npy", "file3.npy"]
combined_data = np.array([np.load(fname) for fname in filenames])
这要求每个文件中存储的数组具有相同的形状;否则你得到一个对象数组而不是多维数组。
如果数据量很大并且您知道数据的形状,比如 (n1, n2)
,预分配数据会更有效(在速度和内存方面):
combined_data = np.zeros((len(filenames), n1, n2))
for i, fn in enumerate(filenames):
combined_data[i, :, :] = np.load(fn)
另外,请注意您生成数据的代码可以更符合 Pythonic:
for k, patient in enumerate(patients, start=1):
idata = np.concatenate((interictalData, tmpData[0:22, start*256:end]), axis=1)
np.save(f'interictalData_matrix{k}_{patient}_{l}.npy', idata)