У меня есть длинный список x
и y
, содержащий около 1000 элементов с номерами ~10^6
. Я создаю массив массивов массивов 1000x1000
со списком, который я использую в качестве матрицы.более быстрый способ построения массива массивов
m = [[f(x[i], y[j]) for i in range(1000)] for j in range(1000)]
, где f(x,y)
некоторая функция, которая возвращает часть х и у. Скажем, Fraction[x,y]
. Я генерирую 1000 случайных чисел от 0-10^6 в списке x
и y
. Время выполнения: 15.8269999027 секунд.
Существуют ли какие-либо структуры данных, которые позволяют мне построить эту матрицу под 1s? Позже я должен использовать это, чтобы найти LU-декомпозицию этой матрицы (мне нужно ее кодировать), и у меня нет доступных библиотек.
Если вам действительно нужно построить эту матрицу, то, возможно, не будет ничего быстрее. Но это зависит от того, что вы действительно хотите сделать с матрицей. –
Если вы находитесь на python 2, начните с использования 'xrange' вместо' range'. Кроме того, вы можете использовать 'numpy'? – juanchopanza
Кажется, что почти все это время должно быть занято миллионными вызовами 'f()'. Как можно угадать, как улучшить время выполнения вашего 'f()'? –