使用 N 维立方体的顶点坐标创建 numpy 数组

DeL*_*n88 3 python numpy multidimensional-array

在给定维度 的情况下,创建包含以坐标原点为中心的 N 维立方体顶点坐标的 numpy 数组可能是一种有效的方法N

例如,因为N=1它应该返回np.array([[1],[-1]])

因为N=2它应该返回np.array([[1,1],[1,-1],[-1,1],[-1,-1]])

为了N=3np.array([[1,1,1],[1,1,-1],[1,-1,1],[1,-1,-1],[-1,1,1],[-1,1,-1],[-1,-1,1],[-1,-1,-1]])

Chr*_*ler 5

您可以使用product来自itertools

from itertools import product

def vertices(N): 
    return list(product((1, -1), repeat=N))

print(vertices(1))
# [(1,), (-1,)]

print(vertices(2))
# [(1, 1), (1, -1), (-1, 1), (-1, -1)]

print(vertices(3))
# [(1, 1, 1), (1, 1, -1), (1, -1, 1), (1, -1, -1), (-1, 1, 1), (-1, 1, -1), (-1, -1, 1), (-1, -1, -1)]
Run Code Online (Sandbox Code Playgroud)