使用NumPy,我想生成一个n维数组的所有行和对角线的长度为k的列表。
以长度为三的以下三维数组为例。
- 1D线段
- x轴 (
- 2D对角线
- x/y 轴 (
- 3D对角线
- x/y/z 轴 (
解决方案应该是一般化的,因此它将为一个数组生成所有行和对角线,而不考虑数组的维数或长度(在所有维度中均为常数)。
以长度为三的以下三维数组为例。
array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8]],
[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
[[18, 19, 20],
[21, 22, 23],
[24, 25, 26]]])
对于此案例,我想获取以下所有类型的序列。 对于任何给定的案例,我都希望获取每种类型的所有可能序列。 下面为每种情况给出所需序列的示例。- 1D线段
- x轴 (
0, 1, 2
)
- y轴 (0, 3, 6
)
- z轴 (0, 9, 18
)- 2D对角线
- x/y 轴 (
0, 4, 8
, 2, 4, 6
)
- x/z 轴 (0, 10, 20
, 2, 10, 18
)
- y/z 轴 (0, 12, 24
, 6, 12, 18
)- 3D对角线
- x/y/z 轴 (
0, 13, 26
, 2, 13, 24
)解决方案应该是一般化的,因此它将为一个数组生成所有行和对角线,而不考虑数组的维数或长度(在所有维度中均为常数)。
(0, 1, 2)
和(2, 1, 0)
吗? - Eric(0, 1, 2)
和(2, 1, 0)
这两个 - 只需要其中一个即可。从概念上讲,我想实现的是那个游戏的逻辑,但是以一般化的格式(适用于任何大小或维数)。 - 2Cubedk
但不是n
。我在这里的答案两者都进行了泛化。 - Eric