Python for循环中的np.load()

Python for循环中的np.load(),python,arrays,numpy,Python,Arrays,Numpy,我有一组保存为.npy文件的数组,在这里我试图以一种方式读取它们,并将它们添加到列表中以进行连接。问题是,当我尝试在for循环中执行此操作时,我得到“无法将大小为0的数组重塑为形状(5851386)”,但当我逐个加载它们时,它们的读取效果很好。。。有什么好处 ''' ''当.npy文件损坏,可能被截断时,会发生此错误。文件头中定义的形状与文件中的实际数据量不匹配。这在中的一条评论中有所说明 这个特定场景中的问题是,os.listdir返回一个数组,其中包含给定路径中的所有文件名,而不是每个文件的

我有一组保存为.npy文件的数组,在这里我试图以一种方式读取它们,并将它们添加到列表中以进行连接。问题是,当我尝试在for循环中执行此操作时,我得到“无法将大小为0的数组重塑为形状(5851386)”,但当我逐个加载它们时,它们的读取效果很好。。。有什么好处

'''


''

当.npy文件损坏,可能被截断时,会发生此错误。文件头中定义的形状与文件中的实际数据量不匹配。这在中的一条评论中有所说明

这个特定场景中的问题是,
os.listdir
返回一个数组,其中包含给定路径中的所有文件名,而不是每个文件的完整路径。因此,当试图从
文件
变量加载数组时,它可能试图加载当前文件夹中已损坏的现有文件,但不是预期的文件。如果文件不存在,numpy将抛出
FileNotFoundError

可以使用
os.path.join
并连接文件名和完整路径,或者使用
glob
,来修复此问题:

导入全局
...
对于glob.glob文件(“/Users/sjakober/Documents/ResearchSpring2020/geotiffs/*.npy”):
...

当.npy文件损坏,可能被截断时,会发生此错误。文件头中定义的形状与文件中的实际数据量不匹配。这在中的一条评论中有所说明

这个特定场景中的问题是,
os.listdir
返回一个数组,其中包含给定路径中的所有文件名,而不是每个文件的完整路径。因此,当试图从
文件
变量加载数组时,它可能试图加载当前文件夹中已损坏的现有文件,但不是预期的文件。如果文件不存在,numpy将抛出
FileNotFoundError

可以使用
os.path.join
并连接文件名和完整路径,或者使用
glob
,来修复此问题:

导入全局
...
对于glob.glob文件(“/Users/sjakober/Documents/ResearchSpring2020/geotiffs/*.npy”):
...

看起来像是一些
。npy
有不同的形状。只是一条注释无法修复错误,我相信您的源文件位于
'/Users/sjakober/Documents/ResearchSpring2020/geotiffs/'
中,因为Numpy没有抛出FileNotFoundError,但os.listdir只返回一个包含此路径中名称的数组(不是每个文件的完整路径)。您应该将os.listdir列表中的名称附加到路径中,以便在完整路径中使用numpy load。我认为这不会解决您的问题,但肯定会让您的代码看起来更好。(同时确保使用os.path.join而不是字符串附加)@rusito23是正确的。
文件
不包含该文件夹。文件夹问题可能是它,因为我尝试使用了glob,而且效果很好。@SarahJakober太好了!我正在回答可见性问题。看起来像是一些
。npy
有不同的形状。只是一条注释无法修复错误,我相信您的源文件位于
。/Users/sjakober/Documents/ResearchSpring2020/geotiffs/'
因为Numpy没有抛出FileNotFoundError,但是os.listdir只返回一个包含此路径中名称的数组(不是每个文件的完整路径)。您应该将os.listdir列表中的名称附加到路径中,以便在完整路径中使用numpy load。我认为这不会解决您的问题,但肯定会让您的代码看起来更好。(还要确保使用os.path.join而不是字符串附加)@rusito23是正确的。
文件
不包含该文件夹。文件夹问题可能是它,因为我尝试使用glob,但效果很好。@SarahJakober太好了!我正在回答可见性问题。
import numpy as np
import os

arr_list = []

for file in os.listdir('/Users/sjakober/Documents/ResearchSpring2020/geotiffs/'):
    if file.endswith(".npy"):
        arr = np.load(file)
        arr_list.append(arr)