我有两个数组a
和b
,其中包含一些数据。我还有一个数组select
,我想用它从a或b中进行选择。我只是想知道是否有一个pythonic方法可以这样做。下面是我当前的实现,它将a和b的每一行放入一个列表中,然后从中进行选择。你知道吗
a = np.zeros(shape=(10,2,1,3,4))
b = np.ones(shape=(10,2,1,3,4))
select = [1,1,1,0,1,0,1,0,1,0]
c = []
for a1,b1,select1 in zip(a,b,select):
a1b1 = [a1,b1]
c.append(a1b1[select])
如果仅从两个数组中选择,则可以使用
select
作为权重:如果要组合两个以上的数组,则此方法不起作用。你知道吗
np.where
是一个非常有效的解决方案,但最多只能用于两个数组。你知道吗我会这样做:
这应该扩展到任意数量的阵列,例如:
以@DYZ相同的方式使用转置:
如果不想转置,可以向
select
添加维度,使其广播到与a
和b
相同的形状:相关问题 更多 >
编程相关推荐