在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

List和Numpy Array有什么區(qū)別

科技綠洲 ? 來源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-10-30 10:49 ? 次閱讀

Numpy 是Python科學(xué)計(jì)算的一個(gè)核心模塊。它提供了非常高效的數(shù)組對(duì)象,以及用于處理這些數(shù)組對(duì)象的工具。一個(gè)Numpy數(shù)組由許多值組成,所有值的類型是相同的。

Python的核心庫提供了 List 列表。列表是最常見的Python數(shù)據(jù)類型之一,它可以調(diào)整大小并且包含不同類型的元素,非常方便。

那么List和Numpy Array到底有什么區(qū)別?為什么我們需要在大數(shù)據(jù)處理的時(shí)候使用Numpy Array?答案是性能。

Numpy數(shù)據(jù)結(jié)構(gòu)在以下方面表現(xiàn)更好:

1.內(nèi)存大小—Numpy數(shù)據(jù)結(jié)構(gòu)占用的內(nèi)存更小。

2.性能—Numpy底層是用C語言實(shí)現(xiàn)的,比列表更快。

3.運(yùn)算方法—內(nèi)置優(yōu)化了代數(shù)運(yùn)算等方法。

下面分別講解在大數(shù)據(jù)處理時(shí),Numpy數(shù)組相對(duì)于List的優(yōu)勢(shì)。

1.內(nèi)存占用更小

適當(dāng)?shù)厥褂肗umpy數(shù)組替代List,你能讓你的內(nèi)存占用降低20倍。

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

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

圖片

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

96 + len(a) * 8 字節(jié)

圖片

可見,數(shù)組越大,你節(jié)省的內(nèi)存空間越多。假設(shè)你的數(shù)組有10億個(gè)元素,那么這個(gè)內(nèi)存占用大小的差距會(huì)是GB級(jí)別的。

2.速度更快、內(nèi)置計(jì)算方法

運(yùn)行下面這個(gè)腳本,同樣是生成某個(gè)維度的兩個(gè)數(shù)組并相加,你就能看到原生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!")

結(jié)果如下:

0.00048732757568359375 0.0002491474151611328
Numpy is in this example 1.955980861244019 faster!

可以看到,Numpy比原生數(shù)組快1.95倍。

如果你細(xì)心的話,還能發(fā)現(xiàn),Numpy array可以直接執(zhí)行加法操作。而原生的數(shù)組是做不到這點(diǎn)的,這就是Numpy 運(yùn)算方法的優(yōu)勢(shì)。

我們?cè)僮鰩状沃貜?fù)試驗(yàn),以證明這個(gè)性能優(yōu)勢(shì)是持久性的。

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!

結(jié)果如下:

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

可以看到,第二個(gè)輸出的時(shí)間總是小得多,這就證明了這個(gè)性能優(yōu)勢(shì)是具有持久性的。

所以,如果你在做一些大數(shù)據(jù)研究,比如金融數(shù)據(jù)、股票數(shù)據(jù)的研究,使用Numpy能夠節(jié)省你不少內(nèi)存空間,并擁有更強(qiáng)大的性能。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)處理
    +關(guān)注

    關(guān)注

    0

    文章

    626

    瀏覽量

    29030
  • Array
    +關(guān)注

    關(guān)注

    99

    文章

    18

    瀏覽量

    18765
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4825

    瀏覽量

    86194
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    預(yù)定義和不預(yù)定義什么區(qū)別

    0x01#define down_array0x02#define clear_array 0x03#define function_array 0x04#define null0類似這種預(yù)定義和不預(yù)定義
    發(fā)表于 02-25 06:35

    List中的ArrayList和LinkedList什么區(qū)別

    明白 List 中 ArrayList 和 LinkedList 什么區(qū)別,這簡(jiǎn)直太遺憾了,這兩者其實(shí)都是數(shù)據(jù)結(jié)構(gòu)中的基礎(chǔ)內(nèi)容,這篇文章會(huì)從基礎(chǔ)概念開始,分析兩者在 Java 中的具體源碼實(shí)現(xiàn),尋找
    發(fā)表于 12-23 07:21

    鋰亞電池 鋰電池什么區(qū)別

    鋰亞電池 鋰電池什么區(qū)別
    發(fā)表于 10-30 08:51 ?3425次閱讀

    hdmi與vga什么區(qū)別

    現(xiàn)在的有線連接一般都是利用HDMI和VGA這兩種接口,但HDMI和VGA接口到底什么區(qū)別呢?
    的頭像 發(fā)表于 01-24 13:58 ?3.9w次閱讀

    RTOS和 TSOS什么區(qū)別

    RTOS和TSOS什么區(qū)別
    的頭像 發(fā)表于 03-12 11:22 ?4915次閱讀

    晶體管與繼電器輸出的PLC什么區(qū)別

    晶體管與繼電器輸出的PLC什么區(qū)別
    的頭像 發(fā)表于 12-24 21:57 ?3035次閱讀

    單片機(jī)和PLC什么區(qū)別

    單片機(jī)和PLC什么區(qū)別
    發(fā)表于 11-13 19:21 ?11次下載
    單片機(jī)和PLC<b class='flag-5'>有</b><b class='flag-5'>什么區(qū)別</b>?

    單片機(jī)和PLC什么區(qū)別

    單片機(jī)和PLC什么區(qū)別
    發(fā)表于 11-23 16:21 ?79次下載
    單片機(jī)和PLC<b class='flag-5'>有</b><b class='flag-5'>什么區(qū)別</b>?

    Vivado Schematic中的實(shí)線和虛線什么區(qū)別

    Vivado Schematic中的實(shí)線和虛線什么區(qū)別
    的頭像 發(fā)表于 06-06 11:13 ?1439次閱讀
    Vivado Schematic中的實(shí)線和虛線<b class='flag-5'>有</b><b class='flag-5'>什么區(qū)別</b>?

    EML與DML:什么區(qū)別?該如何選擇?

    DML和EML什么區(qū)別?該如何選擇?本文將回答這些問題。
    的頭像 發(fā)表于 06-30 10:43 ?2869次閱讀
    EML與DML:<b class='flag-5'>有</b><b class='flag-5'>什么區(qū)別</b>?該如何選擇?

    FPC與傳統(tǒng)PCB到底什么區(qū)別.zip

    FPC與傳統(tǒng)PCB到底什么區(qū)別
    發(fā)表于 03-01 15:37 ?4次下載

    pcb軟板和硬板什么區(qū)別

    pcb軟板和硬板什么區(qū)別
    的頭像 發(fā)表于 12-19 10:01 ?2534次閱讀

    hdi板與普通pcb什么區(qū)別

    hdi板與普通pcb什么區(qū)別
    的頭像 發(fā)表于 12-28 10:26 ?4324次閱讀

    私有云和公有云什么區(qū)別

    私有云和公有云在多個(gè)方面存在顯著的區(qū)別,以下是具體的比較,主機(jī)推薦小編為您整理發(fā)布私有云和公有云什么區(qū)別
    的頭像 發(fā)表于 02-20 10:38 ?599次閱讀

    GD32與STM32什么區(qū)別

    電子發(fā)燒友網(wǎng)站提供《GD32與STM32什么區(qū)別.docx》資料免費(fèi)下載
    發(fā)表于 04-03 17:27 ?0次下載
    主站蜘蛛池模板: 天天干天天干天天 | 五月天婷婷丁香花 | 好硬好湿好爽再深一点h | 国产在线视频不卡 | 四虎最新网址在线观看 | 黄色日本视频 | xxxxx69日本老师hd | 久久精品视频网站 | 看亚洲a级一级毛片 | 亚洲黄色网址大全 | 国产欧美日韩在线人成aaaa | 天天舔天天 | 天堂8资源在线官网资源 | 三级aa久久 | 四虎精品久久久久影院 | 亚洲va久久久噜噜噜久久狠狠 | 黄黄的网站在线观看 | 国产精品麻豆va在线播放 | 免费观看一级特黄欧美大片 | 激情文学综合网 | 五月六月激情 | 尤物蜜芽福利国产污在线观看 | 日韩一级片在线免费观看 | 亚洲va老文色欧美黄大片人人 | 男人的天堂免费视频 | 色www亚洲国产张柏芝 | 乱肉情欲杂乱小说 | 色久优优 欧美色久优优 | 久久看精品 | 你懂得的在线观看免费视频 | 国内一级毛片 | 国产1024一区二区你懂的 | 天天好比| 一级毛片一级毛片一级毛片 | 速度与激情10 | 国产免费播放一区二区三区 | www.天天射| 日本经典在线三级视频 | 欧美高h | 黄在线观看网站 | 欧美一级片在线视频 |