有没有办法在Numpy中的某个正方形数组board
上构建两个black
和white
视图?你知道吗
当然board
本身也可以是另一个数组上的视图?你知道吗
很明显,我们假设棋盘的等级是偶数(就像经典的8x8国际象棋棋盘),因为在奇数棋盘上完成所需任务非常容易。你知道吗
我认为这是不完全可能的,虽然我有一个接近匹配以下想法:
a = np.zeros((81,))
board = a.reshape((9,9))[:8,:8]
black = a[::2]
white = a[1::2]
black += 1
white += 2
print(board)
它几乎完成了所需的操作:board
是内部数组上的一些8x8视图,您可以使用另外两个视图分别初始化黑白单元格。但是这个解决方案并不完美,因为两个black
和white
视图也包含无用的隐藏单元。你知道吗
这个问题有更好的解决办法吗?你知道吗
这只是同事之间的理论上的挑战(而不是“你想达到什么目的?”来自生产环境的问题)。
如果
black
和white
不需要是1D,可以这样做:我认为你不可能的预感是正确的。你知道吗
如果您的
board
本身不是一个视图,那么很容易获得您可以操作的视图:如果
board
是a
的视图,则内存不会以您可以获得所需视图的方式对齐,因此ravel
将创建副本:我能想到的一个解决方法是将每个视图分成两个:
相关问题 更多 >
编程相关推荐