python - 将 1x1 维数组列表转换为 python 中的浮点列表
问题描述
我有一个表格列表:
[array([ 3755.16235032]),
array([ 3755.16235032]),
array([ 3755.16235032]),
array([ 3755.16235032])]
我想要一份表格清单:
[3755.16235032,
3755.16235032,
3755.16235032,
3755.16235032]
第一个列表的每个元素都是 sci kit 学习回归器的结果。我想要第二种格式,所以我可以绘制分类器的预测。
解决方案
用于np.concatenate
避免手动迭代:
my_list = [np.array([ 3755.16235032]),
np.array([ 3755.16235032]),
np.array([ 3755.16235032]),
np.array([ 3755.16235032])]
new_list = np.concatenate(my_list).tolist()
>>> new_list
[3755.16235032, 3755.16235032, 3755.16235032, 3755.16235032]
基准:
基于评论中的广泛讨论,这是我的基准测试:
my_list = [np.random.randn(1) for _ in range(100000)]
def concat_method(my_list=my_list):
return np.concatenate(my_list).tolist()
def hstack_method(my_list=my_list):
return np.hstack(my_list).tolist()
def flatten_method(my_list=my_list):
return np.array(my_list).flatten().tolist()
def ravel_method(my_list=my_list):
return np.array(my_list).ravel().tolist()
import timeit
>>> timeit.timeit(concat_method, number=100) / 100
0.025655772869977226
>>> timeit.timeit(hstack_method, number=100) / 100
0.1172302443100125
>>> timeit.timeit(ravel_method, number=100) / 100
0.041237239889997
>>> timeit.timeit(flatten_method, number=100) / 100
0.0412076849100049
推荐阅读
- android - 在多列中显示重复项
- spring-boot - Spring Boot JDBC 身份验证失败
- python - 匹配数据框列中的确切字符串
- java - Spring Boot JPA OneToMany 和 ManyToOne 给我带来了 JoinTable 中的所有寄存器
- javascript - 道具验证中缺少“类” - Linting
- tensorflow - 我是 ML 的新手,我正在尝试在时尚 mnist 数据集上构建一个 CNN,但我不断收到此错误
- c# - 如何用单行反转查询
- android - AppCompatActivity 中未解析的 Android Activity Results API 引用
- c - 格式问题,为什么这个错误没有消失?
- python - Python Dataframe显示列表中的元素存在于列表列表中的行