2017-05-17 27 views
0

numpy配列を別のnumpy配列に追加しようとしましたが、このエラーが発生します:ValueError:配列を別の配列に追加すると、シェイプ(28)からシェイプ(28,0)に入力配列をブロードキャストできませんでした

ValueError: could not broadcast input array from shape (28) into shape (28,0) 

は、これは私のコードです:

sample = np.fabs(sample - avg) 
counter = np.arange(1,len(sample)+1) 
np.append(sample, counter, axis=1) 

どのように私はこの問題を解決することができますか?

+0

開始について 'as_matrix'方法をドロップ。しかし、どこに問題がありますか? 'sample-avg'部分では?もしそうなら、それらの2つの変数のソースと形は何ですか?形状 '(28,0)'の配列は疑わしい。空っぽです。 – hpaulj

+0

私のコードを編集しました。 3列目に問題があり、列を別の列に追加しています。 –

+0

'array.append'から離れてください。人々はしばしばそれを悪用する。リストの追加はより良い、またはすべての疣贅と '連結 '。 – hpaulj

答えて

0

これは、シェイプ(28,0)の配列が実際に空であることを示しています。つまり、サンプルと平均を生成した上流処理に対処し、これらのオブジェクトの内容を確認する必要があります。私は、次でこれを複製することができ:

import numpy as np 
from numpy import random 
a = random.rand(28) 
b = random.random((28,0)) 
print(a.shape, b.shape) 

(28)(28、0)

print(a + b) 
--------------------------------------------------------------------------- 
ValueError        Traceback (most recent call last) 
<ipython-input-16-f1c1de818ef8> in <module>() 
     5 print(a.shape, b.shape) 
     6 
----> 7 print(a + b) 
     8 
     9 print(b) 

ValueError: operands could not be broadcast together with shapes (28,) (28,0) 

print(b) 

[]

関連する問題