作者 |?? 天元浪子
來源 | CSDN博客
手頭有 109 張頭部 CT 的斷層掃描圖片,我打算用這些圖片嘗試頭部的三維重建。基礎工作之一,就是要把這些圖片數據讀出來,組織成一個三維的數據結構(實際上是四維的,因為每個像素有 RGBA 四個通道)。
這個數據結構,自然是 numpy 的 ndarray 對象,讀取圖像文件我習慣使用 PIL。因此,需要導入兩個模塊:
1
import
?numpy?
as
?np
2
from
?PIL?
import
?Image
接下來,我用一行代碼就把 109 張圖片讀到了一個 109x256x256x4 的 numpy 數組中,耗時 172 毫秒:
1
data
?=?np.stack([np.array(Image.
open
(
'head%d.png'
%i))?
for
?i?
in
?range(
109
)],?axis=
0
)
通常,上面這一行代碼應該寫成這樣:
1
data?=?list()
2
for?i?in?range(109):
3
img?=?Image.open('head%d.png'%i)
4
img?=?np.array(img)
5
data.append(img)
6
data?=?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. 一行代碼打印迷宮
1 print ( '' .join(__import__( 'random' ).choice( '\u2571\u2572' )? for ?i? in ?range(50*24)))
3. 一行代碼表白愛情
1
print
(
'\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
?<=?
0
else
'?'
)?
for
?x?
in
?range(
-30
,?
30
)])?
for
?y?
in
?range(
30
,?
-30
,?
-1
)]))
4. 一行代碼打印小龜龜
1
print(
'\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年……

更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
