作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
类似于问题here我有三个任意一维数组,例如:
x_p = np.array((0.0,1.1, 2.2, 3.3, 4.4))
y_p = np.array((5.5,6.6,7.7))
z_p = np.array((8.8, 9.9))
我需要
points = np.array([[0.0, 5.5, 8.8],
[1.1, 5.5, 8.8],
[2.2, 5.5, 8.8],
...
[4.4, 7.7, 9.9]])
1) 第一个索引变化最快。2) 点是浮点坐标,而不是整数索引。3)我注意到从版本1.7.0开始,numpy.meshgrid已经改变了默认indexing='xy'
的行为,并且需要使用
np.vstack(np.meshgrid(x_p,y_p,z_p,indexing='ij')).reshape(3,-1).T
获取最后一个索引快速变化的结果点,这不是我想要的。(从1.7.0开始才提到,meshgrid
支持维度>2,我没有检查)
最佳答案
我通过一些尝试和错误发现了这一点。
我认为 ij
v xy
索引一直在 meshgrid
中(这是更新的 sparse
参数) )。它只影响 3 个返回元素的顺序。
为了让 x_p
变化最快,我将其放在参数列表的最后,然后使用 ::-1
反转末尾的列顺序。
我使用 stack
在最后将数组连接到新轴上,因此不需要转置。但 reshape 和转置都很便宜(时间方面)。因此它们可以以任何有效且易于理解的组合使用。
In [100]: np.stack(np.meshgrid(z_p, y_p, x_p, indexing='ij'),3).reshape(-1,3)[:,::-1]
Out[100]:
array([[ 0. , 5.5, 8.8],
[ 1.1, 5.5, 8.8],
[ 2.2, 5.5, 8.8],
[ 3.3, 5.5, 8.8],
[ 4.4, 5.5, 8.8],
[ 0. , 6.6, 8.8],
...
[ 2.2, 7.7, 9.9],
[ 3.3, 7.7, 9.9],
[ 4.4, 7.7, 9.9]])
关于python - 从三个 1D 数组创建 3D 坐标的 numpy 数组,第一个索引变化最快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45391740/
我是一名优秀的程序员,十分优秀!