首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Python中连接坐标数组

在Python中连接坐标数组
EN

Stack Overflow用户
提问于 2021-03-01 09:01:01
回答 1查看 84关注 0票数 1

我正在从多个d维立方体构建一个坐标数组。我想从一个空数组开始,并附加我在每个for循环中生成的坐标。但是,np.concatenate (和vstack)需要一个匹配维数的现有数组。我还希望保持维数,而不是获得平面数组。

这是我想要做的想法:

代码语言:javascript
复制
#sample from d-dimensional cube
def make_cubes(d, npoints, ncubes):
    cubes = []
    for i in range(ncubes):
        c = np.random.rand(npoints, d)     #sample from cube in d dimensions
        c += np.random.uniform(-5,5)   #random translation
        cubes = np.concatenate((cubes, c))
    return cubes

为了让它真正起作用,我必须将多维数据集定义为

代码语言:javascript
复制
cubes = [[]]
for d in range(d):
    cubes[0].append(np.nan)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-01 09:47:54

正如hpaulj所述,您可以使用append而不是concatenate。最后,可以将阵列重塑为所需的形状。

代码语言:javascript
复制
#sample from d-dimensional cube
def make_cubes(d, npoints, ncubes):
    cubes = []
    for i in range(ncubes):
        c = np.random.rand(npoints, d)     #sample from cube in d dimensions
        c += np.random.uniform(-5,5)   #random translation
        cubes.append(c)
       
    cubes = np.reshape(cubes, (npoints*ncubes,d) )
    return cubes

例如

代码语言:javascript
复制
print( make_cubes(3,4,2) )

给了我

代码语言:javascript
复制
[[-0.20605781  0.17759941 -0.54688093]
 [ 0.15476342 -0.47873276 -0.66528647]
 [ 0.05216092 -0.7118765  -0.2794354 ]
 [-0.648958   -0.49131152 -0.24827643]
 [ 3.80803203  3.41893782  3.66186498]
 [ 4.37535951  3.79385615  3.52051711]
 [ 3.98299149  4.17239746  4.09716118]
 [ 3.89030706  4.26959177  4.38166707]]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66415431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档