Я пытаюсь использовать списочный анализ с массивами numpy, генерируя одно выражение генератора в массиве numpy. Зачем?

Поэтому я пишу код, который будет развернут на Raspberry Pi. Из-за вычислительных ограничений Raspberry Pi и ряда шагов, которые он предпринимает для этого конкретного использования (захват и обработка изображений), я подумал, что будет лучше, если это возможно, использовать понимание списка вместо циклов for. Мне удалось создать оператор, который сделал массив файлов (имена + пути), если он работал:

self.dark_file_names = np.array ([(os.path.join (self.dark_frames_path, line.strip ("\ n")) для root, dirs, файлов в os.walk (self.dark_frames_path) для строки в файлах, если line.endswith ("NPY \ п"))])

Тем не менее, я попробовал вариант этого в ipython:

dark_file_names = np.array ([(os.path.join (dark_frames_path, line.strip ("\ n")) для root, dirs, файлов в os.walk (dark_frames_path) для строки в файлах, если line.endswith(". р \ п "))])

с этим быть выходом:

array([<generator object <genexpr> at 0x7f14d4412888>], dtype=object)

с dark_frames_path локальным каталогом с кучей файлов Python

к сожалению, это не то, на что я надеялся. Я тоже попробовал с обычным списком с похожим результатом. Почему оно интерпретирует мое утверждение как генераторное выражение вместо понимания списка?

также у меня это работало, когда я делал это через ssh с этими командами в ipython:

stdin, stdout, stderr= ssh.exec_command('ls')

l=[line.strip('\n') for line in stdout if line.strip('\n').endswith(".py")] 

при этом ssh является экземпляром paramiko.SSHClient().

0 ответов

Другие вопросы по тегам