2015-02-28 2 views
1

У меня есть два Numpy массив, размер которого составляет 994 и 1000. Таким образом, я, когда я делаю ниже операции:Numpy: размер массива

X * Y 

я получаю сообщение об ошибке, что "ValueError: операнды не может быть вещания вместе с формами (994) (1000) "

Следовательно, согласно затруднительного Я пытаюсь прокладочных статистов/конечные нули в массив, который большой размер по ниже способом:

padzero = 0 
if(bw.size > w.size): 
    padzero = bw.size - w.size 
    w = np.pad(w,padzero, 'constant', constant_values=0) 
if(bw.size < w.size): 
    padzero = w.size - bw.size 
    bw = np.pad(bw,padzero, 'constant', constant_values=0) 

Но теперь проблема заключается в том, что если разница в размере составляет 6, то в массиве получаются 12 0, что в моем случае должно быть шесть.

Я пробовал много способов добиться этого, но это не привело к решению проблемы. Если я попробую его ниже:

bw = np.pad(bw,padzero/2, 'constant', constant_values=0) 

ValueError: Unable to create correctly shaped tuple from 3.0 

Как исправить проблему?

ответ

1

a = np.array([1, 2, 3])

Чтобы вставить нули перед:

np.pad(a,(2,0),'constant', constant_values=0) 
array([0, 0, 1, 2, 3]) 

Чтобы вставить нули обратно:

np.pad(a,(0,2),'constant', constant_values=0) 
array([1, 2, 3, 0, 0]) 

фронта и обратно:

np.pad(a,(1,1),'constant', constant_values=0) 
array([0, 1, 2, 3, 0]) 
Смежные вопросы