91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python大數據一定要用Numpy Array的原因是什么

發布時間:2023-05-05 09:16:50 來源:億速云 閱讀:243 作者:zzz 欄目:編程語言

這篇文章主要講解了“Python大數據一定要用Numpy Array的原因是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python大數據一定要用Numpy Array的原因是什么”吧!

1.內存占用更小

適當地使用Numpy數組替代List,你能讓你的內存占用降低20倍。

對于Python原生的List列表,由于每次新增對象,都需要8個字節來引用新對象,新的對象本身占28個字節(以整數為例)。所以列表 list 的大小可以用以下公式計算:

64 + 8 * len(lst) + len(lst) * 28 字節

Python大數據一定要用Numpy Array的原因是什么

而使用Numpy,就能減少非常多的空間占用。比如長度為n的Numpy整形Array,它需要:

96 + len(a) * 8 字節

Python大數據一定要用Numpy Array的原因是什么

可見,數組越大,你節省的內存空間越多。假設你的數組有10億個元素,那么這個內存占用大小的差距會是GB級別的。

2.速度更快、內置計算方法

運行下面這個腳本,同樣是生成某個維度的兩個數組并相加,你就能看到原生List和Numpy Array的性能差距。

import time
import numpy as np
size_of_vec = 1000
def pure_python_version():
t1 = time.time()
X = range(size_of_vec)
Y = range(size_of_vec)
Z = [X[i] + Y[i] for i in range(len(X)) ]
return time.time() - t1
def numpy_version():
t1 = time.time()
X = np.arange(size_of_vec)
Y = np.arange(size_of_vec)
Z = X + Y
return time.time() - t1
t1 = pure_python_version()
t2 = numpy_version()
print(t1, t2)
print("Numpy is in this example " + str(t1/t2) + " faster!")

結果如下:

0.00048732757568359375 0.0002491474151611328
Numpy is in this example 1.955980861244019 faster!

可以看到,Numpy比原生數組快1.95倍。

如果你細心的話,還能發現,Numpy array可以直接執行加法操作。而原生的數組是做不到這點的,這就是Numpy 運算方法的優勢。

我們再做幾次重復試驗,以證明這個性能優勢是持久性的。

import numpy as np
from timeit import Timer
size_of_vec = 1000
X_list = range(size_of_vec)
Y_list = range(size_of_vec)
X = np.arange(size_of_vec)
Y = np.arange(size_of_vec)
def pure_python_version():
Z = [X_list[i] + Y_list[i] for i in range(len(X_list)) ]
def numpy_version():
Z = X + Y
timer_obj1 = Timer("pure_python_version()",
 "from __main__ import pure_python_version")
timer_obj2 = Timer("numpy_version()",
 "from __main__ import numpy_version")
print(timer_obj1.timeit(10))
print(timer_obj2.timeit(10)) # Runs Faster!
print(timer_obj1.repeat(repeat=3, number=10))
print(timer_obj2.repeat(repeat=3, number=10)) # repeat to prove it!

結果如下:

0.0029753120616078377
0.00014940369874238968
[0.002683573868125677, 0.002754641231149435, 0.002803879790008068]
[6.536301225423813e-05, 2.9387418180704117e-05, 2.9171351343393326e-05]

可以看到,第二個輸出的時間總是小得多,這就證明了這個性能優勢是具有持久性的。

所以,如果你在做一些大數據研究,比如金融數據、股票數據的研究,使用Numpy能夠節省你不少內存空間,并擁有更強大的性能。

感謝各位的閱讀,以上就是“Python大數據一定要用Numpy Array的原因是什么”的內容了,經過本文的學習后,相信大家對Python大數據一定要用Numpy Array的原因是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汉川市| 得荣县| 咸丰县| 阿克陶县| 木里| 永福县| 江都市| 花莲市| 晴隆县| 侯马市| 太康县| 云南省| 崇礼县| 涡阳县| 钟祥市| 双辽市| 红安县| 屏山县| 湛江市| 象州县| 河南省| 天长市| 包头市| 玛多县| 平凉市| 丹凤县| 宁远县| 高要市| 乳山市| 中超| 嵩明县| 南召县| 新巴尔虎左旗| 佛学| 文成县| 中卫市| 新泰市| 乌兰察布市| 驻马店市| 军事| 涪陵区|