Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 30, 2015 13:14:45

mvl
Зарегистрирован: 2015-01-15
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание/заполнение двумерного массива без цикла

Здравствуйте. Я новичок в программировании на Питоне. Возможно мой вопрос очень простой. Но я не могу в нем разобраться. Интересует задача создания двумерного массива NumPy самым оптимальным по скорости способом без использования цикла (в стиле Питона, используя срезы и т.п.). Массивы размерностью 1000х1000 в первом массиве во всех строках одинаковые цифры начиная с нуля, во втором то же самое только в столбцах. Для примера привожу массивы 3х3.

array([[ 0.,  0.,  0.],
       [ 1.,  1.,  1.],
       [ 2.,  2.,  2.]])
array([[ 0.,  1.,  2.],
       [ 0.,  1.,  2.],
       [ 0.,  1.,  2.]])

Отредактировано mvl (Янв. 30, 2015 18:09:44)

Офлайн

#2 Янв. 30, 2015 19:36:41

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

Создание/заполнение двумерного массива без цикла

>>> import numpy
>>> size = 3
>>> [numpy.array([[x]*size for x in range(size)]) for _ in range(2)]
[array([[0, 0, 0],
       [1, 1, 1],
       [2, 2, 2]]), array([[0, 0, 0],
       [1, 1, 1],
       [2, 2, 2]])]
>>> numpy.array([[x]*size for x in range(size)])
array([[0, 0, 0],
       [1, 1, 1],
       [2, 2, 2]])
>>> numpy.array([numpy.array([[x]*size for x in range(size)]) for _ in range(2)])
array([[[0, 0, 0],
        [1, 1, 1],
        [2, 2, 2]],
       [[0, 0, 0],
        [1, 1, 1],
        [2, 2, 2]])

Отредактировано Alen (Янв. 31, 2015 05:14:57)

Офлайн

#3 Янв. 30, 2015 21:51:07

kamisama
Зарегистрирован: 2014-07-08
Сообщения: 34
Репутация: +  4  -
Профиль   Отправить e-mail  

Создание/заполнение двумерного массива без цикла

import numpy as np
a, b = np.mgrid[0:1000,0:1000]

Отредактировано kamisama (Янв. 30, 2015 21:53:54)

Офлайн

#4 Янв. 31, 2015 15:38:47

mvl
Зарегистрирован: 2015-01-15
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание/заполнение двумерного массива без цикла

Спасибо, буду разбираться в NumPy более подробно!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version