NumPy Array Сетка между клетками - PullRequest
0 голосов
/ 28 августа 2018

Трудно выразить словами, но изображение может объяснить все.

Как создать такой массив, используя NumPy, функцию нулей и циклы for?

image

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Решение, использующее индексирование numpy

>>> import numpy as np
>>> a = np.zeros((7,7))
>>> b = np.arange(1,17)
>>> a[::2,::2]=b.reshape(4,4)
>>> a
array([[ 1.,  0.,  2.,  0.,  3.,  0.,  4.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 5.,  0.,  6.,  0.,  7.,  0.,  8.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 9.,  0., 10.,  0., 11.,  0., 12.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [13.,  0., 14.,  0., 15.,  0., 16.]])
0 голосов
/ 28 августа 2018

Я не знаю, лучший ли это метод. Для этого я использовал np.zeros и вложенный цикл while.

import numpy as np
arr = np.zeros((7,7),dtype=int)
count=1
i = 0
while i <= 6:
    j=0
    while j <=6:
        arr[i][j]=count
        count+=1
        j+=2
    i+=2

Выход

array([[ 1,  0,  2,  0,  3,  0,  4],
       [ 0,  0,  0,  0,  0,  0,  0],
       [ 5,  0,  6,  0,  7,  0,  8],
       [ 0,  0,  0,  0,  0,  0,  0],
       [ 9,  0, 10,  0, 11,  0, 12],
       [ 0,  0,  0,  0,  0,  0,  0],
       [13,  0, 14,  0, 15,  0, 16]])

1008 *

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