中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

凤山市| 华坪县| 百色市| 略阳县| 关岭| 英超| 遵义县| 乾安县| 三亚市| 遂平县| 祁连县| 陆丰市| 腾冲县| 友谊县| 金乡县| 富阳市| 内江市| 刚察县| 称多县| 裕民县| 策勒县| 南投市| 舟曲县| 普定县| 荆门市| 乐清市| 马鞍山市| 丹阳市| 额济纳旗| 吉林省| 刚察县| 贵港市| 宣恩县| 井陉县| 万山特区| 武平县| 思南县| 五大连池市| 辽源市| 涟源市| 和林格尔县|