如何将Python元组列表直接解压为numpy数组而无需额外类型转换
元组列表直接解压为numpy数组的简洁方法
有两种一行即可实现的写法,不需要单独多次调用np.array()转换:
方法1:转置numpy二维数组后直接解压
先将整个元组列表转换为numpy二维数组,转置后直接拆分赋值,代码如下:
import numpy as np a = [(1,2), (3,4)] b, c = np.array(a).T
执行后b为array([1, 3]),c为array([2, 4]),均为numpy数组类型,完全符合需求。
如果需要拆分的列数更多,该写法也可以通用,只需要对应左侧变量数量和元组长度一致即可。
方法2:结合map批量转换
如果不想生成临时的二维数组,也可以搭配map函数对zip(*a)返回的多组元组批量执行类型转换:
b, c = map(np.array, zip(*a))
该写法和第一种的执行结果完全一致,可根据个人编码习惯选择。
内容的提问来源于stack exchange,提问作者deppep
相关产品推荐
相关产品推荐

