我有3个名为vertices
,bcoords
和tet
的numpy.ndarray,其中包含以下shape
:
vertices (1965, 4, 6)
tet (1048576,)
bcoords (1048576, 4)
我想访问ndarrays中的数据来进行一些操作。
_
tet
包含引用vertices
tet
和bcoords
中的值序列相同
EDIT2:
vertices (1965, 4, 6)
vertices
中的值为1965
单纯形,由4
个点定义,每个point
由6
个值R, G, B, X, Y, Z
定义
使用每个X, Y, Z
的{{1}}坐标的Delaunay三角剖分计算单纯形
point
tet (1048576,)
bcoords (1048576, 4)
中的值是单纯形的索引。它们是使用tet
1048576
(结构:target
)列表制作的。其中一个单纯形式可能包含或不包含X, Y, Z
。
如果目标是单形,则tet包含1965个索引中的一个,如果不是,target
包含值tet
-1
中的值是bcoords
我想通过target
或tet
(或者更好地同时通过两个)来循环播放bcoords
(即如果vertices
} return tet
我想获得数组10
的第10个值),同时我想得到vertices
编辑:
我写了“如果bcoords
返回tet
我想获得数组的第10个值10
”
我的意思是vertices
的{{1}},它包含的数据,以下是一些示例:
row
给出:
vertices
索引列表
print tet
给出:
[1758 1758 1758 ..., 33 33 33]
4点清单
我该怎么做?
我应该合并print vertices[1758]
和[[ 63. 0. 63. 4.56112396 3.97230907
5.22919258]
[ 0. 0. 95. 4.05451235 4.07627874
7.38992147]
[ 63. 0. 0. 5.91857152 5.28300682
4.5745692 ]
[ 0. 63. 63. 4.20672279 5.43250873
6.32627709]]
吗?如果是,我该怎么做?
或者有没有办法同时循环遍历2个阵列?
如何使用tet
中包含的值替换bcoords
的值(tet
中的值的索引)?
这是vertices
存在的原因之一,如果是,在这种特殊情况下如何使用它?
由于
答案 0 :(得分:0)
如果你有足够的内存,只需使用花哨的索引:
mask = tet != -1
tet2 = tet[mask]
bcoords2 = bcoords[mask, :]
vertices2 = vertices[tet2]