我有一个numpy数组
a = array([[1,2], [3,4], [5,6] .....])
我有两个索引作为这样的元组(0,2)
。所以我想加入这些子索引的子数组。所以最终的预期输出有点像这样 -
a = array([[1,2,5,6], [3,4] .....])
在此连接之后,索引和顺序没有意义。也就是说,[1,2,5,6]
可能会在[3,4]
之后出现。此外,子阵列大小2只是代表性的,它也可以是不均匀的。
如何使用一些内置的numpy函数来做到这一点?
答案 0 :(得分:2)
您无法使用numpy
numpy arrays
在所有 arrays
上需要相同的axis
长度,但您可以使用嵌套lists
}。
因此,使用lists
,您只需创建一个function
来做您想做的事情,所以:
def joinSubs(lst, tpl):
lst[tpl[0]] += lst[tpl[1]]
lst.pop(tpl[1])
return lst
然后运行:
joinSubs([[1,2], [3,4], [5,6]], (0,2))
提供您想要的list
:):
[[1, 2, 5, 6], [3, 4]]
请注意,如果此numpy array
已经大量嵌入其他部分代码并使用numpy
functions
,则可以使用.tolist()
将其转换为{{ 1}}:
list
答案 1 :(得分:0)
如果你想坚持使用numpy,你可以使用它。
a = np.array([[1, 2], [3, 4], [5, 6]])
b = (0, 2)
a_final = np.array([np.delete(a, b, 0), a[[*b]].flatten()])