Форум сайта python.su
0
Здравствуйте. Я новичок в программировании на Питоне. Возможно мой вопрос очень простой. Но я не могу в нем разобраться. Интересует задача создания двумерного массива 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)
Офлайн
49
>>> 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)
Офлайн
4
import numpy as np a, b = np.mgrid[0:1000,0:1000]
Отредактировано kamisama (Янв. 30, 2015 21:53:54)
Офлайн
0
Спасибо, буду разбираться в NumPy более подробно! 
Офлайн