можно определить вероятность для каждого элемента массива, просто выделив значение каждого элемента на сумму всех элементов массива. Я пытаюсь сделать это с помощью python для длинного списка массивов numpy. Мой код:Ошибка при вычислении вероятностей списка массивов
def calc_probs(self, array_list):
for array in array_list:
buffer=array.astype("float")
s=sum(buffer)
for e in np.nditer(buffer, op_flags=["readwrite"]):
e/=s
self.probs.append(buffer)
Этот код должен работать. Фактически он работает при вводе его в интерактивный режим IPython. Результаты - это то, что я хочу, чтобы они были. Но если бы я сохранить код в файл унд перспективе, я всегда получаю следующее ValueError:
ValueError: non-broadcastable output operand with shape() doesn't match the broadcast shape (10)
Я не понимаю, почему эта ошибка встречается,, особенно при запуске из файла. Может ли кто-нибудь объяснить это мне и помочь решить проблему? Спасибо большое!
Что вход выглядит? –
В какой строке вы получаете исключение? И каковы ваши входы? – deadly
Ввод представляет собой список массивов numpy формы: 'array_list = [np.array, np.array, np.array, ...]'. Все np массивы имеют 2d и имеют одинаковую форму (100x100). Ошибка возникает в строке 7 'e/= s' – MaxPowers