python技巧(1)--如何转换itertools.chain对象为数组

总第 115 篇文章,本文大约 900 字,阅读大约需要 3 分钟

之前做1月总结的时候说过希望每天或者每2天开始的更新一些学习笔记,这是开始的第一篇。

这篇介绍的是如何把一个 itertools.chain 对象转换为一个数组。

参考 stackoverflow 上的一个回答:Get an array back from an itertools.chain object,链接如下:

https://stackoverflow.com/questions/26853860/get-an-array-back-from-an-itertools-chain-object

例子:

list_of_numbers = [[1, 2], [3], []]
import itertools
chain = itertools.chain(*list_of_numbers)

解决方法有两种:

第一种比较简单,直接采用 list 方法,如下所示:

list(chain)

但缺点有两个:

  • 会在外层多嵌套一个列表

  • 效率并不高

第二个就是利用 numpy 库的方法 np.fromiter,示例如下:

>>> import numpy as np
>>> from itertools import chain
>>> list_of_numbers = [[1, 2], [3], []]
>>> np.fromiter(chain(*list_of_numbers), dtype=int)
array([1, 2, 3])

对比两种方法的运算时间,如下所示:

>>> list_of_numbers = [[1, 2]*1000, [3]*1000, []]*1000
>>> %timeit np.fromiter(chain(*list_of_numbers), dtype=int)
10 loops, best of 3: 103 ms per loop
>>> %timeit np.array(list(chain(*list_of_numbers)))
1 loops, best of 3: 199 ms per loop

可以看到采用 numpy 方法的运算速度会更快。


欢迎关注我的微信公众号--算法猿的成长,或者扫描下方的二维码,大家一起交流,学习和进步!

如果觉得不错,在看、转发就是对小编的一个支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/408432.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python技巧(2)--碾平列表和列表去重

总第 116 篇文章,本文大约 1000 字,阅读大约需要 3 分钟今天介绍和列表相关的两个小技巧:碾平列表(flatten list),也就是列表里的元素也带有列表的情况;列表去重,保留原始顺序和不保…

原来电脑并不需要重装系统才能恢复出厂设置,这个操作学起来!

前言 小伙伴们应该都知道手机上有恢复出厂设置的功能,如果想要把手机送给朋友或者卖给别人,就会先恢复出厂设置。 但换到Windows电脑上之后,如果出现同样的情况,就会第一时间想到重装系统。就好像Windows电脑上不存在恢复出厂设…

2020年周记(2/50)

总第 117 篇文章,本文大约 1400 字,阅读大约需要 5 分钟因为春节假期的延长,中间还是休息过长,少了两周的周记了,这是2020年的第二篇周记,内容还是这几个方面:工作学习阅读&写作其他下周计划…

一日一学:返回排序好的列表的索引顺序

总第 118 篇文章,本文大约 700 字,阅读大约需要 2 分钟今天介绍的是对列表排序后,返回排序好的索引顺序。问题描述:给定一个列表 [2, 3, 1, 4, 5] ,怎么返回排序后的索引顺序,即 [2,0,1,3,4] ?解决方法&a…

2020年周记(3/50)

总第 119 篇文章,本文大约 700 字,阅读大约需要 2 分钟第三篇周记,依然在家办公的一周。工作学习阅读&写作其他下周计划ps. 昨天发文章后才发现有些地方需要修改,所以删除了发出的文章,修改后再发出来&#xff1…

一日一学--如何对数值型特征进行分桶

点击上方“算法猿的成长“,关注公众号,选择加“星标“或“置顶”总第 120 篇文章,本文大约 1200 字,阅读大约需要 3 分钟今天这篇文章主要是介绍在特征工程中,对数值型特征进行分桶操作的方法。简介分桶是离散化的常用…

常见的数据增强项目和论文介绍

点击上方“算法猿的成长“,关注公众号,选择加“星标“或“置顶”总第 121 篇文章,本文大约 1100 字,阅读大约需要 3 分钟在机器学习项目中,数据集对算法模型的性能是有很大的影响的,特别是现在深度学习&a…

PS网页设计教程XXIX——如何在PS中设计一个画廊布局

作为编码者,美工基础是偏弱的。我们可以参考一些成熟的网页PS教程,提高自身的设计能力。套用一句话,“熟读唐诗三百首,不会作诗也会吟”。 本系列的教程来源于网上的PS教程,都是国外的,全英文的。本人尝试翻…

RS(2)--从文本数据到用户画像

点击上方“算法猿的成长“,关注公众号,选择加“星标“或“置顶”总第 122 篇文章,本文大约 5100 字,阅读大约需要 15 分钟上一篇文章简单介绍了推荐系统的定义和应用,推荐系统第二篇,简单介绍用户画像的知…

深度学习算法简要综述(上)

点击上方“算法猿的成长“,关注公众号,选择加“星标“或“置顶”总第 123 篇文章,本文大约 2300 字,阅读大约需要 7 分钟原文:https://theaisummer.com/Deep-Learning-Algorithms/作者:Sergios Karagianna…

深度学习算法简要综述(下)

点击上方“算法猿的成长“,关注公众号,选择加“星标“或“置顶”总第 124 篇文章,本文大约 3731 字,阅读大约需要 10 分钟原文:https://theaisummer.com/Deep-Learning-Algorithms/作者:Sergios Karagianna…

关于AI你可能不知道的5件事情

点击上方“算法猿的成长“,关注公众号,选择加“星标“或“置顶”总第 125 篇文章,本文大约 1400 字,阅读大约需要 7 分钟原文:https://www.blog.google/technology/ai/five-things-a-to-z-ai/作者:Gina Nef…

10个实用的机器学习建议

点击上方“算法猿的成长“,关注公众号,选择加“星标“或“置顶”总第 126 篇文章,本文大约 2500 字,阅读大约需要 10 分钟原文:https://medium.com/modern-nlp/10-great-ml-practices-for-python-developers-b089eefc1…

设计模式笔记——生成器模式(Builder Pattern)

一、概述在软件系统中,把构造对象实例的逻辑移到了类的外部,在这个类的外部定义了类的逻辑。它把一个复杂对象的构造过程从对象的表示中分离出来了,其直接效果是将一个复杂的对象简化为一个比较简单的目标对象。它强调的是产品构造过程。二、…

每日一学:如何转换png图片为jpg图片

点击上方“算法猿的成长“,关注公众号,选择加“星标“或“置顶”总第 128 篇文章,本文大约 800 字,阅读大约需要 3 分钟背景最近在工作中会遇到需要将 png 图片转换为 jpg 图片的需求,主要原因也是 png 图片占的空间太…

python 数据模型

点击上方“算法猿的成长“,关注公众号,选择加“星标“或“置顶”总第 129 篇文章,本文大约 4500 字,阅读大约需要 15 分钟最近开始阅读《流畅的python》,也会开始更新这本书的学习笔记第一篇的内容是第一章 python 数…

每日一学:如何用matplotlib展示图片

点击上方“算法猿的成长“,关注公众号,选择加“星标“或“置顶”总第 130 篇文章,本文大约 1000 字,阅读大约需要 5 分钟前言今天简单介绍如何通过 matplotlib 展示图片,分为以下几种情况:直接用 matplotli…