一行Python代码能实现什么丧心病狂的功能?
作者 | 天元浪子
来源 | CSDN博客
手头有 109 张头部 CT 的断层扫描图片,我打算用这些图片尝试头部的三维重建。基础工作之一,就是要把这些图片数据读出来,组织成一个三维的数据结构(实际上是四维的,因为每个像素有 RGBA 四个通道)。
这个数据结构,自然是 numpy 的 ndarray 对象,读取图像文件我习惯使用 PIL。因此,需要导入两个模块:
1import numpy as np
2from PIL import Image
接下来,我用一行代码就把 109 张图片读到了一个 109x256x256x4 的 numpy 数组中,耗时 172 毫秒:
1data = np.stack([np.array(Image.open('head%d.png'%i)) for i in range(109)], axis=0)
通常,上面这一行代码应该写成这样:
1data = list()
2for i in range(109):
3img = Image.open('head%d.png'%i)
4img = np.array(img)
5data.append(img)
6data = np.stack(data, axis=0)
我把这些代码写成一行,却毫无晦涩艰深之感,仍然像诗歌一样优美、像自然语言一样通俗!
那一刻,我脑洞大开,很想知道 python 高手们只用一行代码都能干些什么?当然,限定条件是不能引用自定义的模块,可以使用内置模块或通用的第三方模块。上网一搜,发现这个问题好像是 python 的专属问题,其他语言很难用一行代码做点什么。知乎上有一篇名为《一行 Python 能实现什么丧心病狂的功能?》(https://www.zhihu.com/question/37046157)的帖子,其镜像贴只有 java 的和 js 的,点进去发现,和 python 的完全不是一个概念。
整理了一下知乎上这篇文章的内容,颇觉有趣,分享给大家。
1. 一行代码打印乘法口诀
1print('\n'.join([' '.join(["%2s x%2s = %2s"%(j,i,i*j) for j in range(1,i+1)]) for i in range(1,10)]))'\n'.join([' '.join(["%2s x%2s = %2s"%(j,i,i*j) for j in range(1,i+1)]) for i in range(1,10)]))
2. 一行代码打印迷宫
1print(''.join(__import__('random').choice('\u2571\u2572') for i in range(50*24)))
3. 一行代码表白爱情
1print('\n'.join([''.join([('Love'[(x-y) % len('Love')] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0else' ') for x in range(-30, 30)]) for y in range(30, -30, -1)]))
4. 一行代码打印小龟龟
1print('\n'.join([''.join(['*' if abs((lambda a:lambda z,c,n:a(a,z,c,n))(lambda s,z,c,n:z if n==0 else s(s,z*z+c,c,n-1))(0,0.02*x+0.05j*y,40))<2 else ' ' for x in range(-80,20)]) for y in range(-20,20)]))
你在 Python 使用过程中用一行代码实现过哪些激动人心的功能呢?欢迎留言讨论。
原文链接:
https://blog.csdn.net/xufive/article/details/96475103
(*本文为 AI科技大本营转载文章,转载请联系原作者)
◆
精彩推荐
◆
“只讲技术,拒绝空谈!”2019 AI开发者大会将于9月6日-7日在北京举行,这一届AI开发者大会有哪些亮点?一线公司的大牛们都在关注什么?AI行业的风向是什么?2019 AI开发者大会,倾听大牛分享,聚焦技术实践,和万千开发者共成长。目前,大会早鸟票抢购中~扫码购票,领先一步!
推荐阅读
阿里达摩院做AI这两年
性能比GPU高100倍!华人教授研发全球首个可编程忆阻器AI计算
豪投10亿!华为放话:3年培养100万AI人才!网友神回应了
《长安十二时辰》教了哪些算法知识?
非科班出身程序员,如何超越科班程序员?
谷歌停止中国版搜索引擎;李楠宣布离职魅族;微软用 Rust 替代 C/C++ | 极客头条
首批8款5G手机获3C认证:华为占4款;IBM获AT&T“几十亿美元”云计算合同;马库斯:未来薪酬将以Libra发放
用50年前NASA送阿波罗上天的计算机挖矿什么体验? 出一个块要10^18年……

相关文章:

Windows7 32位机上,OpenCV中配置GPU操作步骤
1、 查看本机配置,查看显卡类型是否支持NVIDIA GPU,本机显卡为NVIDIA GeForce 8400 GS; 2、 从http://www.nvidia.cn/Download/index.aspx?langcn下载最新驱动并安装; 3、 从https://developer.nvidia.com/cuda-toolkit根据…

【2018.12.15】【考试总结】【模拟+逆序对+树状数组+贪心+multiset】爆零之旅
这是我悲惨的接近爆零的一次考试,但是本蒟蒻不能放弃,还是要总结的QAQ 答题卡 【题目背景】 八月是个悲惨的月份。先不谈炎热的天气,对于新生来说,八月意味着军训; 而对于高二高三的同学来说,八月意味着开学…

RememberMe 功能的实现(base-auth使用说明)
2019独角兽企业重金招聘Python工程师标准>>> 日常记录,代码是根据SpringSecurity写的。 ###写个Entity类实现UserDetails <!-- lang: java --> package com.lqz.b2c.base.web.controller.member.support;import com.lqz.b2c.base.entity.Passport;…

AutoML前沿技术与实践经验分享 | 免费公开课
传统机器学习的解决范式可表示为:ML Solution ML expertise Computation Data新机器学习范式可表示为:New ML Solution 100x Computation 100x Data通过表示的变化,可以看出,传统范式的“ML expertise”被“100x”的“Comput…

Windows 7 64位机上搭建Android开发环境
1、从http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html下载Java JDK,根据机子本身配置,选择jdk-7u25-windows-x64.exe下载,将其安装到D:\ProgramFiles\Java\jdk1.7.0_25文件夹下,并将D:\Pro…

近4万Star,登月源码登顶GitHub,这位女程序员“拯救”了阿波罗
作者 | 伍杏玲转载自CSDN(ID:CSDNnews)1969 年 7 月 20 日,“阿波罗 11 号”飞船登月,宇航员尼尔阿姆斯特朗(Neil Armstrong)成功踏上月球表面,标志着人类第一次踏上月球,…

Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤
1、 先按照http://blog.csdn.net/fengbingchun/article/details/10439281中操作搭建好基本的Android开发环境; 2、 打开Eclipse,-->Window-->AndroidVirtual Device Manager-->New-->AVD Name:Android_OpenGLES, Device:GalaxyNexus(4.65…

animate默认时长所带来的问题及解决
一、需求描述 做一个进度条长度逐渐减少的动画,当进度条长度小于等于0时,关闭动画,并弹出透明底板显示新提示。 二、问题描述 初始代码如下: //设置进度条初始长度 var progressLength 180; //设置一个定时器 var timer …

避坑指南:如何选择适当的预测评价指标?| 程序员评测
作者 | Nicolas Vandeput译者 | Tianyu责编 | Jane出品 | AI科技大本营(ID:rgznai100)【导语】因为不存在一个适用于所有情况的评价指标,所以评估预测精度(或误差)就变成了一件不是那么容易的事情。只有通过…

利用JNI技术在Android中调用C++代码
JNI是Java Native Interface的简称,也就是Java本地接口,它提供了若干的API实现Java和其它语言的通信(主要是C&C)。 1、打开Eclipse,File-->New-->Project…-->AndroidApplication Project-->Application Name:TestJNI,Packag…

微软开源数据处理引擎 Trill,每天可分析万亿次事件
微软近日开源了数据处理引擎 Trill,它每天能够分析万亿次事件。项目地址:https://github.com/Microsoft/trill当下每毫秒处理大量数据正成为一种常见的业务需求,此次微软开源的 Trill,据说每秒能够处理高达数十亿事件,…

【杭电ACM】1097 A hard puzzle
【杭电ACM】1097 A hard puzzle http://acm.hdu.edu.cn/showproblem.php?pid1097 先用int手写了算法结果竟然wrong answer,估计是测试数据很大,直接上BigInteger 和modPow(),轻松解决。 1 //author:pz2 3 import java.math.BigInteger;4 im…

mvc 下的 signalR使用小结
2019独角兽企业重金招聘Python工程师标准>>> sirnal下有两种使用。 一种是 Persistent Connection ,另外一种是Hubs 。详细请看 https://github.com/SignalR/SignalR/wiki ; hubs支持浏览器与客户端互相调用方法。所以应用更广泛。 在前台…

利用JNI技术在Android中调用C++形式的OpenGL ES 2.0函数
1、 打开Eclipse,File-->New-->Project…-->Android-->AndroidApplication Project,Next-->Application Name:FillTriangle, PackageName:com.filltriangle.android,Minimum Required SDK:API 10Android2.3.3(Gingerbread),Next--&g…
Python三十年技术演变史
作者 | 宋天龙,大数据技术专家,触脉咨询合伙人兼副总裁,前Webtrekk中国区技术和咨询负责人(Webtrekk,德国的在线数据分析服务提供商)。擅长数据挖掘、建模、分析与运营,精通端到端数据价值场景设…

php 扩展包链接
https://pecl.php.net/package-stats.php?cid7转载于:https://www.cnblogs.com/gaoyuechen/p/10148754.html

面向中小企业的视频云服务 视频托管
2019独角兽企业重金招聘Python工程师标准>>> 面向中小企业的视频云服务解决方案 如果你是一个传统的企业网站,想要在网站首页加入一段视频,或者是一个垂直资讯网站想要开设视频频道,又或者想要进行一项活动的在线直播。这时候也许…

VS2010下编译OpenCV2.4.6静态库
1、 从 http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.3/ 下载最新的OpenCV2.4.6; 2、 将OpenCV-2.4.6.0.exe存放到D:\Soft\OpenCV2.4.6文件夹下,解压到当前文件夹下,生成一个opencv文件夹; 3、 下…

【性能优化之道】每秒上万并发下的Spring Cloud参数优化实战
一、写在前面 相信不少朋友都在自己公司使用Spring Cloud框架来构建微服务架构,毕竟现在这是非常火的一门技术。 如果只是用户量很少的传统IT系统,使用Spring Cloud可能还暴露不出什么问题。 如果是较多用户量,高峰每秒高达上万并发请求的互联…
共话数据智能新经济,首届市北·GMIS 2019全球数据智能峰会隆重召开
7月19日,上海市市北高新技术服务业园区(以下简称“市北高新”)成功举办首届「市北GMIS 2019全球数据智能峰会」(以下简称“市北GMIS峰会”)。为期两天的市北GMIS峰会以“拥抱数智经济,赋能产业生态”为主题…

最新剑桥《AI全景报告》出炉:中国发表机器学习学术研究超过美国
来源 | 转载自新智元(ID:AI_era)2019年即将过去一半,剑桥大学的两位研究人员近日推出了本年度的State AI 2019全景报告。本报告基本沿袭去年的大体框架,从产业、人才、政策、预测等方面对过去一年来AI领域的技术的新进步、产业格局…

《OpenMP编译原理及实现技术》摘录
内容摘自《OpenMP编译原理及实现技术》第2章 代码测试环境:Windows7 64bit, VS2010, 4核机。 可以说OpenMP制导指令将C语言扩展为一个并行语言,但OpenMP本身不是一种独立的并行语言,而是为多处理器上编写并行程序而设计的、指导共享内存、多…

C# 36进制转10进制
代码是Java转过来的,变量名都没有改……有空再整理一下好了。public long toDecimal(string input, long bs){try{long Bigtemp 0, temp 1;int len input.Length;for (int i len - 1; i > 0; i--){if (i ! len - 1)temp * bs;long num changeDec(input[i]);…

Oracle Cloud Native Framework推出云原生解决方案
摘要:Oracle Cloud Native Framework云原生平台提供托管云服务和本地软件,同时在现Oracle云基础架构上跨应用程序配置和分析大量服务。developer relations for Oracle Cloud Infrastructure副总裁Bob Quillin讨论了该框架的优势以及对2019年云原生市场的…
OpenMP知识点汇总
1. OpenMP(Open Multi-Processing)官网:http://openmp.org/wp/ 2. OpenMP最新版本4.0,2013年7月发布。Visual Studio 2010内置支持OpenMP2.0,选中工程属性->C/C->Language->Open MP Support:选中Yes(/openmp)即可,然后在…

chsop 兼容jquery(解决与transport.js冲突)
2019独角兽企业重金招聘Python工程师标准>>> $(function() { window.__Object_toJSONString Object.prototype.toJSONString; delete Object.prototype.toJSONString; }); 要用到jquery的页面放入此代码即可 转载于:https://my.oschina.net/netmouse/blog/1241…

进程详细剖析(二)
摘自《C多核高级编程》 5.6.3 进程状态 在进程执行期间,它的状态会发生改变。进程的状态时指进程的当前状况。在POSIX兼容的环境中,进程可以处于以下状态: 1)运行(running) 2)就绪(runnable, r…

AI算力需求6年增长30万倍,「超异构计算」才能满足下一个10年
今年 3 月,「强化学习教父」Richard Sutton 在《苦涩的教训》一文中指出,「70 年的人工智能研究史告诉我们,利用计算能力的一般方法最终是最有效的方法。要在短期内有所提升,研究人员要利用专门领域的人类知识。但如果想要长期的获…

一览六月最热的5篇AI技术论文
作者 | 神经小姐姐转载自HyperAI超神经(ID: HyperAI)导语:始建于 1991 年的 arXiv.org 至今已收录超过 100 万篇论文预印本,近年来,其每月提交量已经超过 1 万篇。这里成为一个巨大的学习宝库。本文罗列了 arXiv.org 上…

OnCheckedChanged的触发需要AutoPostBack=true
OnCheckedChanged的触发需要AutoPostBack"true"