我有下面的数组,有没有一种使用numpy或数组的快速方法?

[ ['one','two','three'] [1,2,3] ]

需要将其转换为以下内容

[ ['one',1], ['two',2], ['three',3] ]

Numpy还是数组

推荐答案

你可以用zip.

a = [['one','two','three'],[1,2,3]]

new_a = [[i, j] for i, j in zip(a[0],a[1])]

print(new_a)
[['one', 1], ['two', 2], ['three', 3]]

额外的

根据 comments 和答案,我突然对@lhopital的答案、我的答案和@moe提供的答案中的性能时间感到好奇.所以我创建了一个包含260个字符和260个值的2d列表.

%timeit [[s, n] for s, n in zip(*a)]
40.2 µs ± 2.21 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

%timeit [[i, j] for i, j in zip(a[0],a[1])]
27.2 µs ± 1.15 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

a = np.array(a)

%timeit a.T
146 ns ± 2.47 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

显然,np.transpose是最快的使用方法.

Python相关问答推荐

将列中的滚动值集转换为单元格中的单个值

将numpy数组与空数组相加

了解shuffle在NP.random.Generator.choice()中的作用

pandas DataFrame中类型转换混乱

收件箱转换错误- polars.exceptions. ComputeHelp- pandera(0.19.0b3)带有polars

跟踪我已从数组中 Select 的样本的最有效方法

如何通过多2多字段过滤查询集

jit JAX函数中的迭代器

Pystata:从Python并行运行stata实例

Pandas 都是(),但有一个门槛

如何使用它?

如何在Python脚本中附加一个Google tab(已经打开)

OR—Tools CP SAT条件约束

将输入聚合到统一词典中

pandas:排序多级列

在ubuntu上安装dlib时出错

当递归函数的返回值未绑定到变量时,非局部变量不更新:

转换为浮点,pandas字符串列,混合千和十进制分隔符

字符串合并语法在哪里记录

使用BeautifulSoup抓取所有链接