One better alternative would be to output the PHP value to a data attribute. Given that this variable doesn't seem to be tied to a specific element, you could put it at root level on the body element. Then you can read it from there when the JS executes once the DOM has loaded, like this:
<body data-numbers="<?php echo $numbers ?>">
   <!-- your HTML ... -->
</body>
let numbers = document.body.dataset.numbers; // plain JS
let numbers = $('body').data('numbers'); // jQuery
This is under the assumption that the $numbers variable in your PHP is holding a value which can be coerced to a string
-- Update --
Given the edit to your question where you clarify that $numbers in fact contains an object, you can instead encode it to JSON, output it to a <script> tag and then use it from there:
<script type="text/plain" id="numbers">
   <?= $json_encode($numbers) ?>
</script>
let numbers = JSON.parse(document.querySelector('#numbers').textContent.trim()); // plain JS
let numbers = JSON.parse($('#numbers').text().trim()); // jQuery