В стандартном Python функция map
, вероятно, является самым простым способом применения функции к массиву (хотя и не уверен в эффективности). Однако, если ваш массив огромен, как вы упомянули, вы можете захотеть использовать numpy .vectorize , что очень похоже на встроенную в Python функцию map
Редактировать: Возможный пример кода:
vsumnum = np.vectorize(sumnum)
x = vsumnum(x)
Первый вызов функции возвращает функцию, которая векторизована, что означает, что numpy подготовил ее для сопоставления с вашим массивом, а вторая функция Вызов фактически применяет функцию к вашему массиву и возвращает полученный массив. Взято из документации, этот метод предоставлен для удобства, а не эффективности, и в основном такой же, как и для l oop
Редактировать 2: Как упоминалось @ Ch3steR, numpy также допускает поэлементные операции с массивами , поэтому в этом случае, поскольку вы выполняете простые операции, вы можете просто выполнить np.sqrt (x) + 1, который добавит 1 к квадрату root каждого элемента. Такие функции, как map
и numpy.vectorize
лучше, когда вам нужно применить более сложные операции к массиву