在第一个元素上分割锯齿状数组并填充其他元素的最佳方法

问题描述 投票:0回答:1

很难描述这个问题,但是下面的代码应该可以澄清。 基本上我从一个数组开始,其中第一个元素是另一个 N 大小的数组。 数组的其余部分是单个元素。我想为每个部分分割第一个元素 a,用数组的其余部分填充:

import pandas as pd, numpy as np

data = [['100',    '200',      '300',   '400'],
        'val1',
        'val2',
        ]

ids = np.array_split(data[0], 2)
new_array = []
for id in ids:
        data[0] = id
        new_array.append(data[:])

new_array

所以我最终得到这个:

[[['100', '200'], 'val1', 'val2'], 
 [['300', '400'], 'val1', 'val2']]

这是执行此操作的最佳方法,对于非常大的数组来说也很快吗?

python pandas numpy
1个回答
0
投票

创建目标对象 dtype 数组

res = np.empty(2,3, dtype=object)

data[0]

填写
res[:,0] = data[0].reshape(2,-1)

用广播补充休息

res[:,1:] = data[1:] # (2,)=>(1,2)=>(2,2)

我还没有测试过这个;只是想在脑海中描绘出这个动作。需要概括精确的形状。

© www.soinside.com 2019 - 2024. All rights reserved.