2017-10-22 11 views
-2

以下のループでは、4行4列の配列が.npzファイルからロードされ、配列の2番目の2つの次元、examplesに格納されます。処理後にnumpy配列の最初の要素が1に設定されるのはなぜですか?

temp_array = examples[idx,:,:,0,0] 

examplesから個々の4×4アレイにアクセスする場合が

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(すなわちtemp_array[0,0])の最初の要素は、この要素でなくても、常に1であります元の配列の[0,0]位置。 しかし、temp_arrayの他のすべての要素は元の配列と一致しています。

どうしてですか?

+0

あなたの配列(オリジナルとターゲット)の 'dtype'とは何ですか?最初のバイトだけか、またはすべてのバイトが間違っていますか? – hpaulj

+2

あなたの問題を再現するバージョンを表示できますか?たとえば、4x4のアレイがいくつかありますか? https://stackoverflow.com/help/mcve – Reti43

+0

両方ともnp.float32であり、最初の要素が間違っています。 –

答えて

1

彼らは「場合、私はあなたがその問題に実行している理由はわからないんだけど、3次元配列のすべてのスライスが同じである場合は、メソッドnp.tilenp.repeatを見てみる必要がある、とnp.stackとその友人異なる。これらはまさにこの目的のためであり、より小さなアレイからより大きなアレイを構築する。

関連する問題