gpt4 book ai didi

python - 压缩不均匀的 numpy 数组

转载 作者:太空狗 更新时间:2023-10-30 02:59:12 26 4
gpt4 key购买 nike

考虑以下 numpy.arrays:

a = np.array([1., 2., 3.])
b = np.array([4., 5.])
c = np.array([6., 7.])

我需要结合这些,所以我最终得到以下内容:

[(1., 4., 6.), (1., 5., 7.), (2., 4., 6.), (2., 5., 7.), (3., 4., 6.), (3., 5., 7.)]

请注意,在这种情况下,数组 a 恰好是最大的数组。然而,这并不能保证。也不能保证长度。换句话说,任何数组都可以是最长的,并且每个数组的长度都是任意的。

我尝试使用 itertools.izip_longest 但我只能将 fillvalue 用于带有 3. 的元组,这是行不通的。我也尝试了 itertools.product,但我的结果不是真正的笛卡尔积。

最佳答案

您可以转置 bc,然后使用 itertools.product< 创建 a 与转置数组的乘积:

>>> from itertools import product
>>> [np.insert(j,0,i) for i,j in product(a,np.array((b,c)).T)]
[array([ 1., 4., 6.]), array([ 1., 5., 7.]), array([ 2., 4., 6.]), array([ 2., 5., 7.]), array([ 3., 4., 6.]), array([ 3., 5., 7.])]
>>>

关于python - 压缩不均匀的 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32113288/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com