網(wǎng)站首頁 如何設(shè)置抖音怎么運(yùn)營和引流
手頭有 109 張頭部 CT 的斷層掃描圖片,我打算用這些圖片嘗試頭部的三維重建?;A(chǔ)工作之一,就是要把這些圖片數(shù)據(jù)讀出來,組織成一個(gè)三維的數(shù)據(jù)結(jié)構(gòu)(實(shí)際上是四維的,因?yàn)槊總€(gè)像素有 RGBA 四個(gè)通道)。
?
這個(gè)數(shù)據(jù)結(jié)構(gòu),自然是 numpy 的 ndarray 對(duì)象,讀取圖像文件我習(xí)慣使用 PIL。因此,需要導(dǎo)入兩個(gè)模塊:
import numpy as np
from?PIL?import?Image
接下來,我用一行代碼就把 109 張圖片讀到了一個(gè) 109x256x256x4 的 numpy 數(shù)組中,耗時(shí) 172 毫秒:
data?=?np.stack([np.array(Image.open('head%d.png'%i))?for?i?in?range(109)],?axis=0)
通常,上面這一行代碼應(yīng)該寫成這樣:???????
data = list()
for i in range(109):
img = Image.open('head%d.png'%i)
img = np.array(img)
data.append(img)
data?=?np.stack(data,?axis=0)
我把這些代碼寫成一行,卻毫無晦澀艱深之感,仍然像詩歌一樣優(yōu)美、像自然語言一樣通俗!
那一刻,我腦洞大開,很想知道 python 高手們只用一行代碼都能干些什么?當(dāng)然,限定條件是不能引用自定義的模塊,可以使用內(nèi)置模塊或通用的第三方模塊。上網(wǎng)一搜,發(fā)現(xiàn)這個(gè)問題好像是 python 的專屬問題,其他語言很難用一行代碼做點(diǎn)什么。知乎上有一篇名為《一行 Python 能實(shí)現(xiàn)什么喪心病狂的功能?》的帖子,其鏡像貼只有 java 的和 js 的,點(diǎn)進(jìn)去發(fā)現(xiàn),和 python 的完全不是一個(gè)概念。
整理了一下知乎上這篇文章的內(nèi)容,頗覺有趣,分享給大家。
這里插播一條粉絲福利,如果你正在學(xué)習(xí)Python或者有計(jì)劃學(xué)習(xí)Python,想要突破自我,對(duì)未來十分迷茫的,可以點(diǎn)擊這里獲取最新的Python學(xué)習(xí)資料和學(xué)習(xí)路線規(guī)劃(免費(fèi)分享,記得關(guān)注)
1. 一行代碼打印乘法口訣
print('\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. 一行代碼打印迷宮
print(''.join(__import__('random').choice('\u2571\u2572')?for?i?in?range(50*24)))
3. 一行代碼表白愛情
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?<=?0else'?')?for?x?in?range(-30,?30)])?for?y?in?range(30,?-30,?-1)]))
4. 一行代碼打印小龜龜
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 使用過程中用一行代碼實(shí)現(xiàn)過哪些激動(dòng)人心的功能呢?歡迎留言討論。
最后分享一下以前做的一個(gè)圣誕樹源代碼???????
import turtle
screen = turtle.Screen()
screen.setup(375, 700)
circle = turtle.Turtle()
circle.shape('circle')
circle.color('red')
circle.speed('fastest')
circle.up()
square = turtle.Turtle()
square.shape('square')
square.color('green')
square.speed('fastest')
square.up()
circle.goto(0, 280)
circle.stamp()
k = 0
for i in range(1, 13):
y = 30 * i
for j in range(i - k):
x = 30 * j
square.goto(x, -y + 280)
square.stamp()
square.goto(-x, -y + 280)
square.stamp()
if i % 4 == 0:
x = 30 * (j + 1)
circle.color('red')
circle.goto(-x, -y + 280)
circle.stamp()
circle.goto(x, -y + 280)
circle.stamp()
k += 3
if i % 4 == 3:
x = 30 * (j + 1)
circle.color('yellow')
circle.goto(-x, -y + 280)
circle.stamp()
circle.goto(x, -y + 280)
circle.stamp()
square.color('brown')
for i in range(13, 17):
y = 30 * i
for j in range(2):
x = 30 * j
square.goto(x, -y + 280)
square.stamp()
square.goto(-x, -y + 280)
square.stamp()
效果
最后,我精心籌備了一份全面的Python學(xué)習(xí)大禮包,完全免費(fèi)分享給每一位渴望成長(zhǎng)、希望突破自我現(xiàn)狀卻略感迷茫的朋友。無論您是編程新手還是希望深化技能的開發(fā)者,都?xì)g迎加入我們的學(xué)習(xí)之旅,共同交流進(jìn)步!
🌟 學(xué)習(xí)大禮包包含內(nèi)容:
Python全領(lǐng)域?qū)W習(xí)路線圖:一目了然,指引您從基礎(chǔ)到進(jìn)階,再到專業(yè)領(lǐng)域的每一步學(xué)習(xí)路徑,明確各方向的核心知識(shí)點(diǎn)。
超百節(jié)Python精品視頻課程:涵蓋Python編程的必備基礎(chǔ)知識(shí)、高效爬蟲技術(shù)、以及深入的數(shù)據(jù)分析技能,讓您技能全面升級(jí)。
實(shí)戰(zhàn)案例集錦:精選超過100個(gè)實(shí)戰(zhàn)項(xiàng)目案例,從理論到實(shí)踐,讓您在解決實(shí)際問題的過程中,深化理解,提升編程能力。
華為獨(dú)家Python漫畫教程:創(chuàng)新學(xué)習(xí)方式,以輕松幽默的漫畫形式,讓您隨時(shí)隨地,利用碎片時(shí)間也能高效學(xué)習(xí)Python。
互聯(lián)網(wǎng)企業(yè)Python面試真題集:精選歷年知名互聯(lián)網(wǎng)企業(yè)面試真題,助您提前備戰(zhàn),面試準(zhǔn)備更充分,職場(chǎng)晉升更順利。
👉 立即領(lǐng)取方式:只需【點(diǎn)擊這里】,即刻解鎖您的Python學(xué)習(xí)新篇章!讓我們攜手并進(jìn),在編程的海洋里探索無限可能