Python 为什么numpy数组的第一个元素在处理后设置为1?
在下面的循环中,4×4数组从.npz文件加载并存储在数组的第二个二维中,Python 为什么numpy数组的第一个元素在处理后设置为1?,python,numpy,Python,Numpy,在下面的循环中,4×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(
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
但是,当使用
temp_array = examples[idx,:,:,0,0]
临时数组
(即临时数组[0,0]
)的第一个元素始终为1,即使这不是原始数组[0,0]位置的元素。
但是,temp_数组
的每个其他元素都与原始数组一致
为什么会这样 我不知道你为什么会遇到这个问题,但是你应该看看方法
np.tile
和np.repeat
,如果3D数组的每个片段都是相同的,如果它们不同的话,np.stack
和它的朋友。正是出于这个目的,用较小的阵列构建较大的阵列。您的阵列(原始阵列和目标阵列)的dtype
是什么?是第一个字节,还是所有的字节都错了?你能给我们展示一个版本来复制你的问题,比如说,几个4x4阵列吗?np.float32和它只是第一个元素是错误的。我将用实际代码更新我的问题,因为问题可能不在我使upI将维度更改为4x4的一般情况下。你可以想象,如果你愿意,这里只循环了两个例子。