【发布时间】:2020-07-07 22:17:57
【问题描述】:
我想将数组拆分为带有掩码和索引的数组
如下所示
a = array([ 0, 1, 2, 3, 4, 5]))
b = [0,2,3]
进入
c = array([[0, 2, 3], [1, 3, 4], [2, 4, 5]])
我可以在没有循环的情况下这样做吗?
编辑:
更多示例...
说,我们有一个数组a,形状为[10, 10, 10]
其中a[x, y, :] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
现在给定掩码b = [0, 3, 7]
我希望输出是一个数组c,形状为[10, 10, 3, 3]
其中c[x, y, :, :] = [[0, 3, 7], [1, 4, 8], [2, 5, 9]]
【问题讨论】:
-
我不明白您的示例输入/输出。你能想出另一个更清楚的例子吗?
-
这只是一个小例子,但我想在大小约为 100*300*300 的数组上执行此操作。循环会花费很多时间。有没有其他方法可以做到这一点?
-
如果
a=array([9,4,7,2,4,3,9,7,5])和b=[1,1,3]会发生什么? -
您能否添加更多有关该问题的一般信息? @LudvigH OP 想要访问
a中每个位置的第一项、第三项和第四项(由b中的索引给出)。要回答您的问题,它会提供[[9, 9, 7], [4, 4, 2], [7, 7, 4], ...]供您输入。
标签: python python-3.x numpy numpy-ndarray numpy-slicing