在下面的循环中,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
的每个其他元素都与原始数组一致。
为什么会这样?
答案 0 :(得分:1)
我不确定你为什么遇到这个问题,但如果3D阵列的每个切片都相同,你应该看一下方法np.tile
和np.repeat
, np.stack
及其朋友,如果他们不同的话。这些正是为了这个目的,用较小的阵列构建更大的阵列。