我有下面的数组,有没有一种使用numpy或数组的快速方法?
[ ['one','two','three'] [1,2,3] ]
需要将其转换为以下内容
[ ['one',1], ['two',2], ['three',3] ]
Numpy还是数组
我有下面的数组,有没有一种使用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
是最快的使用方法.