Есть ли более быстрый способ создания массива элементов пустого массива без использования для циклов - PullRequest
1 голос
/ 11 ноября 2019

Я хочу создать массив элементов. Я могу сделать это с помощью цикла, но я хочу знать, есть ли другой способ, например, numpy функция или что-то, чтобы сделать это за меньшее время.

это то, что я хочу сделать:

def no_loops(y):


   mat = []
   for i in range(5012):
       mat.append(y[i])

   fun = funcion_a(mat)

   return fun

Массив y пуст. Элементы массива являются решениями системы уравнений, которые решит Сципи. Я хочу изменить цикл for на что-то более быстрое.

1 Ответ

0 голосов
/ 11 ноября 2019

Если вам нужен новый массив определенного размера и вы хотите игнорировать очень запутанный y из вашего примера кода, вы можете сделать что-то вроде этого:

def no_loops():
    # Create an array of length 5012, all elements of which are zero.
    return funcion_a(numpy.zeros(5012))

Вы также можете использовать numpy.empty в этом случае, но я предпочитаю детерминизм numpy.zeros.

Если вы хотите скопировать данные в y, вы можете явно скопироватьиспользование numpy.array:

def no_loops(y):
   return funcion_a(numpy.array(y[:5012]))

Вы также можете исследовать использование numpy.asanyarray, если вам нужно поддерживать подклассы numpy.array. См .: Numpy - массив против asarray

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...