如何使用tile function
创建一个‘n*n’
的棋盘矩阵,其值为alternate0 and 1
。在
例如:
当n的值为2时,输出应为:
[[0 1]
[1 0]]
我可以创建一个matrix with 0 and 1
,但它们不会交替出现,下面是我尝试的:
`
import numpy as np
n = 4
arr = ([0,1])
print(np.tile(arr,(n,n//2)))
`
我得到的输出:
`
^{pr2}$我想要的输出:
`
[[0 1 0 1]
[1 0 1 0]
[0 1 0 1]
[1 0 1 0]]`
这是一个单线纽比解决方案。也就是说,我认为丹尼尔的回答更具可读性,也可能更有效率。在
如果
n
是奇数,则np.arange(n*n).reshape(n,n)%2
给出正确的结果。但是,如果n
是偶数,那么所有的行和列都是相同的(就像您的结果一样)。我们可以通过每隔一行减去一个来解决这个问题。在相当于
^{pr2}$以下是
numpy
解决方案:它给出了
^{pr2}$n
的各种值:您可以使用numpy fancy indexing,无需使用np.tile:
输出
^{pr2}$相关问题 更多 >
编程相关推荐