如何将多个值附加到numPy数组?

时间:2019-02-20 15:27:37

标签: python numpy pygame

我正在pygame中制作蛇游戏,我需要制作一系列pygame rect。当我测试代码以查看基本思想是否有效时,它没有起作用。应该在什么时候打印

[[0,0],
[10,0],
[20,0],

,依此类推,直到达到最大的x值,然后将y值加10,当y值始终为0时,它仅打印x值。对于pygame和python来说,我是新手帮助将不胜感激。 我的代码:

class Grid:

def __init__(self, gridSize):

    self.gridSize = gridSize
    self.numX = int(screenX / gridSize)
    self.numY = int(screenX / gridSize)
    self.xList = []

    for y in range(0, self.numY * 10, 10):

        for x in range(0, self.numX * 10, 10):

            self.xList.append((x,y))

        if y == 0:

            self.array = np.array(self.xList)

        else:

            np.append(self.array, self.xList)

        self.xList = []

    print(self.array)

2 个答案:

答案 0 :(得分:0)

大多数(如果不是全部)numpy命令不会就地修改其数组。他们返回一个新数组,但旧数组保持原样。

因此,您需要在else

else:
   self.array = np.append(self.array, self.xList)

这将更新self.array,使其包含新的附加数组。

这也解释了为什么您只看到y = 0的打印输出,而看不到其他值。 (通过调试并逐步执行代码,您可能会得出相同的结论。也许下次?:-))

答案 1 :(得分:0)

对于初学者来说,您不需要遍历Y范围: self.numY = int(screenX / gridSize)必须为self.numY = int( screenY / gridSize)