【发布时间】:2018-06-06 01:53:29
【问题描述】:
鉴于我有一个多维索引数组,我如何从这些索引创建一个布尔数组?对于一维情况,它看起来像这样:
a = [1,5,6]
b = somefunction(total_array_length=10, a)
>>> [False, True, False, False, False, True, True, False, False, False]
对于 2D 情况,它看起来像这样:
a = [[1,3],[4,2]]
b = somefunction(total_array_length=5, a)
>>> [[False, True, False, True, False], [False, False, True, False, True]]
我想用它来为数组创建掩码。我有一个维度为 8 的多维数组,对于最后一个轴,我可以找到我想要保留的元素的索引。换句话说,我有一个 8D 数组,其中最后一个轴包含我想保留在原始数组中的所有索引。有人知道怎么做吗?
在上面的函数中,total_array_length 将等于原始数组的长度。
那么我将如何为形状为 (23,5,76,32,1,3,8,9) 的数组执行此操作,索引数组的形状为 (23,5,76,32,1,3,8 ,4)?注意 4
a.shape = (23,5,76,32,1,3,8,4)
b = somefunction(total_array_length=9, a)
b.shape =(23,5,76,32,1,3,8,9)
【问题讨论】:
-
不清楚
total_array_length是什么以及为什么b的形状与a的形状在这两个示例中都不匹配。此外,还不清楚您要对 8d 数组的最后一个轴说什么。这听起来与您的示例不相似。 -
如果遇到困难,请尝试编写代码并发布。不要要求我们从头开始。
-
我说清楚了吗?
标签: python arrays numpy multidimensional-array mask