作者 |?? 天元浪子
來源 | CSDN博客
手頭有 109 張頭部 CT 的斷層掃描圖片,我打算用這些圖片嘗試頭部的三維重建。基礎(chǔ)工作之一,就是要把這些圖片數(shù)據(jù)讀出來,組織成一個三維的數(shù)據(jù)結(jié)構(gòu)(實際上是四維的,因為每個像素有 RGBA 四個通道)。
這個數(shù)據(jù)結(jié)構(gòu),自然是 numpy 的 ndarray 對象,讀取圖像文件我習(xí)慣使用 PIL。因此,需要導(dǎo)入兩個模塊:
1
import
?numpy?
as
?np
2
from
?PIL?
import
?Image
接下來,我用一行代碼就把 109 張圖片讀到了一個 109x256x256x4 的 numpy 數(shù)組中,耗時 172 毫秒:
1
data
?=?np.stack([np.array(Image.
open
(
'head%d.png'
%i))?
for
?i?
in
?range(
109
)],?axis=
0
)
通常,上面這一行代碼應(yīng)該寫成這樣:
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)
我把這些代碼寫成一行,卻毫無晦澀艱深之感,仍然像詩歌一樣優(yōu)美、像自然語言一樣通俗!
那一刻,我腦洞大開,很想知道 python 高手們只用一行代碼都能干些什么?當(dāng)然,限定條件是不能引用自定義的模塊,可以使用內(nèi)置模塊或通用的第三方模塊。上網(wǎng)一搜,發(fā)現(xiàn)這個問題好像是 python 的專屬問題,其他語言很難用一行代碼做點什么。知乎上有一篇名為《一行 Python 能實現(xiàn)什么喪心病狂的功能?》(https://www.zhihu.com/question/37046157)的帖子,其鏡像貼只有 java 的和 js 的,點進(jìn)去發(fā)現(xiàn),和 python 的完全不是一個概念。
整理了一下知乎上這篇文章的內(nèi)容,頗覺有趣,分享給大家。
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 使用過程中用一行代碼實現(xiàn)過哪些激動人心的功能呢?歡迎留言討論。
原文鏈接:
https://blog.csdn.net/xufive/article/details/96475103
(*本文為 AI科技大本營轉(zhuǎn)載文章,轉(zhuǎn)載請聯(lián)系原作者 )
◆
精彩推薦
◆
“只講技術(shù),拒絕空談 ! ”2019 AI開發(fā)者大會將于9月6日-7日在北京舉行,這一屆AI開發(fā)者大會有哪些亮點?一線公司的大牛們都在關(guān)注什么?AI行業(yè)的風(fēng)向是什么?2019 AI開發(fā)者大會,傾聽大牛分享,聚焦技術(shù)實踐,和萬千開發(fā)者共成長。 目前,大會早鳥票搶購中~掃碼購票,領(lǐng)先一步!
推薦閱讀
-
阿里達(dá)摩院做AI這兩 年
-
性能比GPU高100倍 !華人教授研發(fā)全球首個可編程憶阻器AI計算
-
豪投10億!華為放話:3年培養(yǎng)100萬AI人才!網(wǎng)友神回應(yīng)了
-
《長安十二時辰》教了哪些算法知識?
-
非科班出身程序員,如何超越科班程序員?
-
谷歌停止中國版搜索引擎;李楠宣布離職魅族;微軟用 Rust 替代 C/C++ | 極客頭條
-
首批8款5G手機(jī)獲3C認(rèn)證: 華為占4款; IBM獲AT&T“幾十億美元”云計算合同; 馬庫斯: 未來薪酬將以Libra發(fā)放
-
用50年前NASA送阿波羅上天的計算機(jī)挖礦什么體驗? 出一個塊要10^18年……

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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