单元之间的NumPy阵列网格

时间:2018-08-28 06:29:28

标签: python arrays numpy

很难用语言表达,但是图像可以解释一切。

如何使用NumPy,zeros函数和for循环创建类似的数组?

Image

2 个答案:

答案 0 :(得分:0)

我不知道这是否是最好的方法。我使用了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]])

答案 1 :(得分:0)

利用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.]])