Numpy Создать массив на основе значений индекса (Python) - PullRequest
0 голосов
/ 11 февраля 2019

В Numpy я могу создать двумерный массив следующим образом:

arr = np.array([[0 for x in range(width)] for y in range(height)], dtype=np.uint8)

Но я также могу создать такой же массив, как этот, что намного быстрее, потому что он избегает Pythonпонимание списка:

arr = np.zeros((height, width), dtype=np.uint8)

Однако вместо этого я хочу, чтобы содержимое массива имело значения, которые зависят от значений x и y.Например, я мог бы сделать что-то вроде этого (где f(x,y) - это некоторая функция, которую я определяю в другом месте):

arr = np.array([[f(x, y) for x in range(width)] for y in range(height)], dtype=np.uint8)

, но это очень медленно и имеет ту же проблему, о которой я упоминал ранее,Есть ли способ создать такой массив с производительностью, похожей на numpy.zeros, возможно, что-то вроде:

arr = np.values(f(x,y), (height, width), dtype=np.uint8)

?

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