顯示廣告
隱藏 ✕
※ 本文為 MindOcean 轉寄自 ptt.cc 更新時間: 2022-01-22 01:36:11
看板 Gossiping
作者 newwu (說不定我一生涓滴廢文)
標題 [問卦] python做科學運算,要分享什麼?
時間 Fri Jan 21 05:18:28 2022



欸欸 我明天group meeting要分享python科學數值運算小技巧
我目前想到要講的
1. 介紹numpy
2. 不要用迴圈 用numpy
3. 用numba jit編譯
4. 用multiprocessing加速
5. 藉由torch 使用gpu做運算

科學運算相關的python小技巧
臥虎藏龍的鄉民還有什麼好建議嗎?

--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 128.146.189.73 (美國)
※ 文章代碼(AID): #1XwT6dBc (Gossiping)
※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1642713511.A.2E6.html
badbadook: https://i.imgur.com/r4IJDdN.jpg1F 180.217.24.205 台灣 01/21 05:21
deepdish: 睡著惹2F 220.134.89.190 台灣 01/21 05:23
Scathach: hello world 的技巧3F 49.158.127.17 台灣 01/21 05:24
HuangJC: 即時 AI 換臉。換自己當A片男主角不用等4F 49.217.109.203 台灣 01/21 05:25
arrenwu: 我覺得第5項可以改cupy,或者也介紹cupy5F 98.45.135.233 美國 01/21 05:28
我之前測了一下cupy
很多功能沒比torch快
你有興趣可以認真跑個benchmark看看
arrenwu: cupy的優點是用起來跟numpy差不多6F 98.45.135.233 美國 01/21 05:28
torch我覺得也差不多啊
※ 編輯: newwu (128.146.189.73 美國), 01/21/2022 05:30:03
arrenwu: 你是用cupy幾版啊? 之前 anaconda 是v67F 98.45.135.233 美國 01/21 05:30
arrenwu: 的時候有些是真的滿慢的
demandlonely: 科學運算青青幾時會被起訴9F 39.13.196.125 台灣 01/21 05:30
arrenwu: 我沒有用過torch,但numpy 跟 cupy 用起10F 98.45.135.233 美國 01/21 05:30
arrenwu: 來幾乎就是把程式瑪裡面的 numpy改cupy
arrenwu: torch 也這麼方便喔?
我覺得幾乎是這樣
這也是我用torch  不用tensorflow的理由
最近的版本更是大多數的numpy function都有對應
和cupy比不知道哪個涵蓋得多
wuyiulin: 我覺得很吃 interperter 有時候向量運13F 114.42.10.52 台灣 01/21 05:35
wuyiulin: 算會被解成迴圈讀取…benchmark出來會
wuyiulin: 一樣(#
沒道理啊
都用numpy了  應該是用numpy底層的c編譯出的code吧
ALTandTAB: faiss16F 27.52.11.33 台灣 01/21 05:35
wuyiulin: pytorch 我覺得最好用的是可以一次扔一17F 114.42.10.52 台灣 01/21 05:37
wuyiulin: 整個 tensor 做 矩陣乘法 再用 nn.func
wuyiulin: tion去運算 自己土炮出來的底層可能比
wuyiulin: 較快 但沒那麼方便跟直觀
arrenwu: multiprocessing 我覺得可以往後放,這個21F 98.45.135.233 美國 01/21 05:38
wuyiulin: 上面是不討論 numpy 狀況 我的意思是 b22F 114.42.10.52 台灣 01/21 05:38
wuyiulin: uilt-in function for python
arrenwu: 隨便寫可能會遇到 PicklingError24F 98.45.135.233 美國 01/21 05:38
arrenwu: https://bit.ly/3IeOryy
感謝分享
因為有人想要學我才放的
不然我也沒用過幾次
arrenwu: 我之前也是自己跑模擬被multiprocessing26F 98.45.135.233 美國 01/21 05:42
arrenwu: 炸到才知道有那鳥事
arrenwu: numba jit 真的很不賴
真的  而且會optimize
你假如用numpy向量運算沒注意細節,jit會快很多
grace132004: 拍聳的爬蟲 不是滿好用的嗎29F 36.226.91.17 台灣 01/21 05:48
darren8221: numpy numba jit parallel mp cupy30F 75.36.206.235 美國 01/21 05:55

是說說到gpu
我覺得julia cuda超好寫
比c好寫太多  效率也不差
※ 編輯: newwu (128.146.189.73 美國), 01/21/2022 05:58:54
liu1030: 介紹pytorch 剩下不重要31F 42.73.63.174 台灣 01/21 06:11
pc006229: python 連文組都會還要報啥32F 140.113.87.196 台灣 01/21 06:12
herculus6502: 現在幾點而已竟然這麼多樓33F 114.136.235.229 台灣 01/21 06:13
arrenwu: 文組不會的是 numpy 呀34F 98.45.135.233 美國 01/21 06:14
Eriri: 啥group meeting= = meeting報這種大家可以35F 192.226.182.12 加拿大 01/21 06:15
Eriri: 自己學的東西 誰會感興趣= =
又不是我要求的
我們的group meeting很free啦
大部分的時候都不是報paper那種
反正半小時結束也可以
ggcip0514: group meeting 報這個誰要聽?37F 152.23.88.207 美國 01/21 06:18
velaro: broadcasting吧38F 35.2.21.79 美國 01/21 06:18
這倒是值得一說
LincolnBoy: 猛 我也想聽39F 168.5.162.145 美國 01/21 06:25
Eriri: group meeting報paper也沒人要聽阿40F 192.226.182.12 加拿大 01/21 06:29
Eriri: 老闆通常只想聽有甚麼研究上的progress
喔喔
我們的group meeting不是這樣
主要是學生分享一些實用的主題 有些內容本來就很課本
wonder007: 報這幹麻?非本科?42F 42.73.47.137 台灣 01/21 06:33
廢話
CS報這個是要笑死人嗎
Lowpapa: PYTHON的歷史43F 61.228.102.128 台灣 01/21 06:39
這最無用吧  有人看程式書很認真讀完這一部份的嗎
LincolnBoy: 有沒有整理完的slide 想讀44F 168.5.162.145 美國 01/21 06:44
我可以把notebook分享給你
※ 編輯: newwu (128.146.189.73 美國), 01/21/2022 06:46:47
aska2000: scikit learn and jupiter45F 114.198.171.78 台灣 01/21 06:56
Superxixai: 偶在初學Python 也想要Notebook @@46F 42.76.31.68 台灣 01/21 06:56
venomsoul: Panda, Django47F 122.118.200.7 台灣 01/21 07:02
fan5566: 不如介紹copy paste48F 223.136.118.72 台灣 01/21 07:06
yyy855029: 想要notebook+149F 118.166.175.120 台灣 01/21 07:12
bradyhau106: 我都用 fortran 寫50F 111.241.105.180 台灣 01/21 07:30
fastyangmh: 想要+151F 27.242.66.146 台灣 01/21 07:32
jellyfishuan: 想要+152F 111.71.110.141 台灣 01/21 07:39
royli: pickle有安全性問題,少用53F 36.237.107.40 台灣 01/21 07:41
nyitalumnus: 調用是支語,可以用英文名詞嗎?虧54F 36.226.210.157 台灣 01/21 07:53
nyitalumnus: 你ip還是美國。
雖然我不在意,修了
主要是已經太多英文了 不想太晶晶體
mooc0102: 想要筆記!謝謝56F 42.73.125.242 台灣 01/21 07:54
Tolkien: +1, thank you for sharing57F 169.232.149.122 美國 01/21 07:54
ruokcnn: Dynamic programming58F 111.71.80.135 台灣 01/21 07:55
jababa520: 學cython59F 223.136.169.51 台灣 01/21 07:59
likeyousmile: 視覺化方面有plotly,簡單幾行能做60F 223.136.247.139 台灣 01/21 08:25
likeyousmile: 互動式,3d,時間軸的圖
我喜歡plotly  不過感覺系上的人都沒特別感興趣(畫圖就是要發paper啊)
dash還能簡單就做出互動界面
likeyousmile: 還有操作excel的xlwings,不用存檔62F 223.136.247.139 台灣 01/21 08:26
likeyousmile: 直接操作
likeyousmile: MongoDB非結構化資料庫跟python 整
likeyousmile: 合不錯
likeyousmile: 直接用pandas啦,numpy 比較低階
看用途啦
Forbidden204: jax 幾乎是無縫版的gpu-numpy67F 1.200.135.191 台灣 01/21 08:34
主要是我看benchmark,jax的速度好像也不如torch
ZXCWS: 科學運算還是用fortran居多68F 101.10.47.53 台灣 01/21 08:40
ZXCWS: 數值運算能力 有fortran效能好..
我不會  已經會c python julia了
懶得多學
現在也越來越少fortran了
都是老人/老闆傳下來的code

python的好處還有可以直接接軌業界

a0916665106: 想知道call c++ dll 跟純c++差異70F 39.9.129.111 台灣 01/21 09:04
tony467913: Python 社群的分享精神真好,連在八卦71F 114.34.225.14 台灣 01/21 09:08
tony467913: 版都這麼認真討論回答 推
等我明天會站內信給要的,可是是英文喔
※ 編輯: newwu (128.146.189.73 美國), 01/21/2022 09:16:49
applemilker: notebook +173F 123.195.198.63 台灣 01/21 09:17
Cireiat: 我也想要,謝謝您,再麻煩站內了74F 39.9.72.164 台灣 01/21 09:22
martin880501: 想要+175F 49.216.162.11 台灣 01/21 09:25
KYS: 可以分享notebook嗎?感謝76F 111.71.49.248 台灣 01/21 09:29
ihczfu: 想要notebook+177F 118.171.118.17 台灣 01/21 09:35
apm: 可以也寄notebook給我嗎?謝謝78F 24.30.127.18 美國 01/21 09:35
davidmath: 想要+1 最近有想學 謝謝><79F 101.9.98.239 台灣 01/21 09:35
ysyuar: 求分享+180F 59.124.94.67 台灣 01/21 09:36
ji3cp4su3ok: 想要++求分享  感謝81F 175.181.211.25 台灣 01/21 09:43
ASD332: +1 Thx82F 111.71.213.247 台灣 01/21 09:51
sammy0703: 求分享++跪謝83F 192.192.124.201 台灣 01/21 09:52
thefggeuck: 求分享,謝謝。84F 42.73.213.43 台灣 01/21 09:53
XP: 求分享+185F 59.124.127.49 台灣 01/21 09:57
asdfgh55585: 需要 謝謝86F 42.75.159.129 台灣 01/21 09:59
profitrader: 想要筆記++ 感謝87F 114.136.234.197 台灣 01/21 10:05
cgyue006: ++88F 103.152.151.68 台灣 01/21 10:10
WINxx: 想要筆記+1 謝謝~89F 101.9.200.123 台灣 01/21 10:10
dk2486248: ++90F 218.164.54.246 台灣 01/21 10:15
likeyousmile: 筆記+191F 223.136.247.139 台灣 01/21 10:22
vince1452: 求分享筆記,謝謝92F 27.240.161.140 台灣 01/21 10:23
comedymania: 想要筆記 +1,謝謝~93F 42.73.82.245 台灣 01/21 10:32
tseapau85: +1 notebook94F 61.61.145.68 台灣 01/21 10:39
shingai: 想拜讀高手的分享!先謝謝您慷慨分享95F 111.254.212.130 台灣 01/21 10:53
gypsophila99: 想要+196F 111.82.96.15 台灣 01/21 11:03
navstar: +1感謝!97F 49.216.161.64 台灣 01/21 11:13
tpegioe:98F 68.181.16.196 美國 01/21 11:25
imba8591: 站內++99F 27.247.100.254 台灣 01/21 11:28
eco: 站內+1100F 129.19.63.117 美國 01/21 11:31
be00148 
be00148: 把騎兵全部變成步兵片啊101F 101.12.32.186 台灣 01/21 11:57
valiant1014: notebook++102F 42.73.155.1 台灣 01/21 12:04
yuiweq1999: 想要筆記+1 求分享感謝~103F 111.235.208.139 台灣 01/21 12:04
commiserate: 想要+1104F 223.140.91.74 台灣 01/21 12:19
PTTYA: 站內+1105F 42.73.143.205 台灣 01/21 12:21
boooozaaaa: Notebook+1106F 42.76.173.174 台灣 01/21 12:21
zaxddg: 站內+1107F 61.218.151.186 台灣 01/21 12:23
tobe0105: 想要notebook +1 謝謝108F 60.251.32.50 台灣 01/21 12:30
liuted: 站內+1109F 42.76.9.146 台灣 01/21 12:30
nayaya: +1110F 223.136.229.96 台灣 01/21 12:34
woogee: 筆記++111F 1.171.43.126 台灣 01/21 12:41
Yosi777: 想要+1 謝謝!112F 223.138.117.117 台灣 01/21 12:44
hope2801: 求分享,謝謝113F 110.26.39.83 台灣 01/21 12:46
lukelove: 站內++114F 223.140.206.74 台灣 01/21 12:47
adsl54010: +1115F 111.249.209.231 台灣 01/21 13:00
snowball: 站內notebook+1116F 101.12.21.109 台灣 01/21 13:04
henry4204aaa: 想要筆記+1 感謝117F 140.109.53.252 台灣 01/21 13:05
tomwhite: 求分享 感謝~118F 223.141.90.173 台灣 01/21 13:15
BJkiller: 筆記謝謝 雖然一定不會給119F 123.240.243.33 台灣 01/21 13:17
tiamo77: 站內++ 謝謝120F 107.3.131.211 美國 01/21 13:19
koim: 筆記+1  謝謝121F 60.250.107.120 台灣 01/21 13:21
f66043284: 有興趣Notebook +1,先感謝分享122F 27.53.112.209 台灣 01/21 13:22
shoeshoeya: notebook+1 感謝123F 61.216.176.145 台灣 01/21 13:23
zlot: 想要筆記+1 謝謝~124F 122.116.185.203 台灣 01/21 13:30
spotH: 站內+1 感謝125F 111.249.67.31 台灣 01/21 13:36
royshome: 想要+1126F 101.12.101.189 台灣 01/21 13:42
HuangJC: python 的引數傳送非常靈活,是這原因才127F 49.217.109.203 台灣 01/21 13:44
HuangJC: 讓一堆東西寫在上面嗎?不然明明想要速度
perrie7741: 想要+1129F 101.10.109.242 台灣 01/21 13:45
HuangJC: 就用 C或組語重寫啊..130F 49.217.109.203 台灣 01/21 13:45
pupudice: +1 謝謝131F 122.60.19.93 紐西蘭 01/21 13:49
yoyololicon: 你沒要用自動微分功能換pytorch幹麻132F 60.250.32.97 台灣 01/21 14:12
yoyololicon: 想跑在gpu用cupy就好了
yoyololicon: torch有些相同功能的跟numpy名稱不同
yoyololicon: 還更不方便
yoyololicon: 你要教torch那就直接教怎麼寫custom
yoyololicon: backward fundtion, cpp extension
SHiroo: 想要+1 感謝分享138F 42.74.127.133 台灣 01/21 14:14
ashura1234: tf2.0也差不多了139F 174.127.227.63 美國 01/21 14:15
yoyololicon: 說到數值運算的小技巧我推薦是einsum140F 60.250.32.97 台灣 01/21 14:17
yoyololicon: 除非你tensor要消掉的維度很複雜
yoyololicon: 不然einsum有夠慢
yoyololicon: 一般人的usecase最多只需要用到bmm
yoyololicon: @Huang因為生態圈支援完整吧
yoyololicon: 速度倒是不用擔心 數值運算套件的底
yoyololicon: 層全部是編譯語言 python只是當個界
yoyololicon: 面XD
HuangJC: 生態圈應該是大者恒大,除非財團介入力推148F 49.217.109.203 台灣 01/21 14:44
HuangJC: C語言因為可攜性,不是建立生態圈很久了?
xbelieve: notebook+1 感謝150F 39.13.197.208 台灣 01/21 14:44
yoyololicon: 做數值運算跟研究的沒這麼需要可攜151F 60.250.32.102 台灣 01/21 15:04
yoyololicon: 性吧XD
Yeeee2018: 站內++ 謝謝153F 114.26.218.144 台灣 01/21 15:32
stilllove56: 站內++ 謝謝154F 211.75.72.242 台灣 01/21 16:12
tatlacz: 我要 站內++  謝謝155F 91.40.95.213 德國 01/21 16:34
victorchiang: 筆記++,感恩!156F 46.114.145.118 德國 01/21 16:50
dosmark9: +1157F 49.216.26.238 台灣 01/21 17:35
rollstone: 站內++ 謝謝158F 42.73.122.122 台灣 01/21 18:12
lalalada: 站內++ 感恩!!159F 114.84.149.183 中國 01/21 18:35
notlE: notebook +1! 謝謝160F 101.137.10.86 台灣 01/21 20:39
allenfish: 求分享,也想要學習,謝謝161F 219.68.197.78 台灣 01/22 01:26

--
※ 看板: Gossiping 文章推薦值: 0 目前人氣: 0 累積人氣: 422 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇