为什么numpy数组的第一个元素在处理后设置为1?

时间:2017-10-22 21:40:48

标签: python numpy

在下面的循环中,4 x 4数组从.npz文件加载并存储在数组的第二个维度examples中。

    k=0
    files_in_dir = os.listdir('../FGSMGenerated/eps{}/case{}'.format(ep,CASE))
        for files in files_in_dir:
            if files.endswith('.npz'):
                data = np.load(os.path.join('../FGSMGenerated/eps{}/case{}'.format(ep,CASE),files))
                array = data['features']
                examples[k,:,:,0,0]=array
                k += 1

但是,使用

examples访问单个4 x 4阵列时
temp_array = examples[idx,:,:,0,0]

temp_array的第一个元素(即temp_array[0,0])始终为1,即使这不是原始数组的[0,0]位置中的元素。 但是,temp_array的每个其他元素都与原始数组一致。

为什么会这样?

1 个答案:

答案 0 :(得分:1)

我不确定你为什么遇到这个问题,但如果3D阵列的每个切片都相同,你应该看一下方法np.tilenp.repeatnp.stack及其朋友,如果他们不同的话。这些正是为了这个目的,用较小的阵列构建更大的阵列。