def main():
input() #тут синхронный код тела программы
async def background_task():
#тут код долгоиграющей асинхронной задачи
while True:
print('beep boop')
await asyncio.sleep(1)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
#создаём фоновую задачу
loop.create_task(background_task())
#создаём задачу для исполнения main() в отдельном потоке
main_task = loop.run_in_executor(None, main)
#выполняемся пока main() не отработает
loop.run_until_complete(main_task)
a_float = a.astype(np.float64)
a_float *= np.random.random()
a = a_float.astype(np.uint8)
a_float = a.astype(np.float64)
#каждый пиксель будет умножен на своё значение, но каналы одного пикселя будут умножены на одно и то же
a_float *= np.random.random((a.shape[0], a.shape[1]))
a = a_float.astype(np.uint8)