【问题标题】:How to load multiple .npy files into a single numpy array如何将多个 .npy 文件加载到单个 numpy 数组中
【发布时间】:2020-10-11 12:01:32
【问题描述】:

我想加载多个 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

【问题讨论】:

    标签: python arrays numpy save load


    【解决方案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)  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-30
      • 2019-09-15
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      • 1970-01-01
      • 2019-09-10
      • 1970-01-01
      相关资源
      最近更新 更多