我想使用1-dim数组的值从Numpy中的2-dim数组中切片/返回行和列。例如,假设我有以下的一个维数组: [1,3,5) 和下面的2维数组:使用来自Numpy中的1d数组的值返回2d数组中的行和列
array([[1, 0, 0, 0, 0, 0],
[0, 4, 0, 0, 0, 1],
[0, 0, 3, 0, 0, 0],
[0, 1, 0, 7, 0, 10],
[0, 0, 0, 0, 8, 0],
[0, 2, 0, 0, 0, 9]])
如何返回如下:
array([[4, 0, 1],
[1, 7, 10],
[2, 0, 9]])
我还希望能够使用相同的示例生成6x6掩码。所以,我会得到这样的:
array([[True, True, True, True, True, True],
[True, False, True, False, True, False],
[True, True, True, True, True, True],
[True, False, True, False, True, False],
[True, True, True, True, True, True],
[True, False, True, False, True, False]],)
我已经尝试了很多不同的东西,似乎没有得到正是我需要的。我知道我可以通过编写几个循环来实现,但我认为必须有一个更简单的方法。我也做了一些搜索,但仍然没有运气。提前致谢!
+1但是'a [b] [:, b]'与'a [b [:,无],b]'或者其他类似的变体例如'a [b.reshape(-1, 1),b]',并且可以让你实例化一个中间数组。 – Jaime
太棒了!不,我的步幅访问不规则,所以这:a [:,b] [b]的作品。我只是用一个很容易遵循的例子。我的真实数据更大,而且不规则。就像你说的,这对制作面具不起作用。有什么建议么?再次感谢! – user2503169
我想返回a的平均值和最大值,只有那些在b中有行/列位置的单元格,并且在给定掩码的情况下知道a中最大值的索引是很好的。 – user2503169