ValueError для массива numpy с unittest Python ⇐ Python
-
Anonymous
ValueError для массива numpy с unittest Python
У меня следующий вопрос.
У меня есть эта функция:
def string_to_2Darray(flat_string): """преобразует строку типа '0,1,0,1,1,1,0,1,0'""" array1d = np.fromstring(flat_string, dtype=int, sep=',') вернуть np.reshape(array1d, (-1,3)) и я написал для этой функции класс unittest, который выглядит следующим образом:
класс StringTo2DArray(unittest.TestCase): защита test_string_2DArray(self): string_example_0 = '0,1,0,1,1,1,0,1,0' array_example_0 = string_to_2Darray(string_example_0) печать (array_example_0) печать (тип (array_example_0)) self.assertEqual([[0,1,0],[1,1,1],[0,1,0]], array_example_0) Смотрите, я добавляю несколько операторов печати в тело модуля test_string_2Darray в классе StringTo2DArray в unittest.
Когда я запускаю python -m unittest, я получаю следующее сообщение об ошибке:
ValueError: значение истинности массива, содержащего более одного элемента, неоднозначно. Используйте a.any() или a.all()
Я не знаю, почему это происходит, поскольку строка правильно преобразуется в 2D-массив numpy и не соответствует массиву [[0,1,0],[1,1,1],[0, 1,0]], который я передал в утверждении. Равно для моего теста.
У меня следующий вопрос.
У меня есть эта функция:
def string_to_2Darray(flat_string): """преобразует строку типа '0,1,0,1,1,1,0,1,0'""" array1d = np.fromstring(flat_string, dtype=int, sep=',') вернуть np.reshape(array1d, (-1,3)) и я написал для этой функции класс unittest, который выглядит следующим образом:
класс StringTo2DArray(unittest.TestCase): защита test_string_2DArray(self): string_example_0 = '0,1,0,1,1,1,0,1,0' array_example_0 = string_to_2Darray(string_example_0) печать (array_example_0) печать (тип (array_example_0)) self.assertEqual([[0,1,0],[1,1,1],[0,1,0]], array_example_0) Смотрите, я добавляю несколько операторов печати в тело модуля test_string_2Darray в классе StringTo2DArray в unittest.
Когда я запускаю python -m unittest, я получаю следующее сообщение об ошибке:
ValueError: значение истинности массива, содержащего более одного элемента, неоднозначно. Используйте a.any() или a.all()
Я не знаю, почему это происходит, поскольку строка правильно преобразуется в 2D-массив numpy и не соответствует массиву [[0,1,0],[1,1,1],[0, 1,0]], который я передал в утверждении. Равно для моего теста.