為什麼要學Numpy,一文總結知識點

2021-01-14 螞蟻學Python

還記得自己剛接觸Pandas、Sklearn、Tensorflow這幾個技術的時候,經常看到文檔和代碼中針對多維數組的創建、變形、乘法等操作,因為不了解這些知識導致難以理解進度緩慢,後來才知道它們都是在依賴Numpy這個庫。


後來我發現,如果想學好Pandas和Sklearn/Tensorflow這些數據分析、機器學習/深度學習的技術,Numpy是一定要系統性的學習的。


本文總結下Numpy的一些重要的知識內容:


Numpy的介紹Numpy是什麼Python的一個開源的數值計算擴展庫,用來存儲和處理多維矩陣Numpy的用途高性能的實現二維或多維數組的處理和計算作為pandas、scikit-learn、tensorflow等基礎依賴庫Numpy的基礎結構一維數組、二維數組Numpy的核心數據結構數組的屬性數組的維度:shape元組數組的維度數目:ndim數組全部元素的個數:size數組的元素類型:dtype構造數組從Python的列表List和嵌套列表創建array:x = np.array([1,2,3,4,5,6,7,8])便捷函數:arange、ones/ones_like、zeros/zeros_like、empty/empty_like、full/full_like隨機數組0~1之間均勻分布:rand(d0, d1, …, dn)均值0方差1的標準分布:randn(d0, d1, …, dn)隨機整數:randint(low[, high, size)0~1之間隨機數:random([size])從數組a中隨機抽取結果:choice(a[, size, replace, p])對數組x隨機打散:shuffle(x)實現數組全排列:permutation(x)按均值loc方差scale生成的高斯分布數組:normal([loc, scale, size])生成low和high之間均勻分布的數字:uniform([low, high, size])結構化數組用於表達各列類型不同的異構數據:np.dtype([('name', 'U10'), ('age', 'i4'), ('weight', 'f8')])可以用列表切片的方式查詢行:my_arr[0:2]用字典的方式查詢列:my_arr['age']按條件做篩選:my_arr[my_arr["age"] >= 29]對異構數據的操作一般用pandas更容易處理數組的操作數據查詢基礎索引:X[:2, 2:4]神奇索引:x[[3,4,7]]布爾索引:x[x>5]怎樣增加一個維度arr[np.newaxis, :]np.expand_dims(arr, axis=0)np.reshape(arr, (1, 5))數組的合併沿著指定axis進行數組的合併:np.concatenate(array_list, axis=0/1)垂直vertically、按行row wise進行數據合併:np.vstack或者np.row_stack(array_list)水平horizontally、按列column wise進行數據合併:np.hstack或者np.column_stack(array_list)數組的乘法*符號或者np.multiply:逐元素乘法,對應位置的元素相乘,要求shape相同@符號或者np.matmul:矩陣乘法,形狀要求滿足(n,k),(k,m)->(n,m)數組的排序numpy.sort:返回排序後數組的拷貝array.sort:原地排序數組而不是返回拷貝numpy.argsort:間接排序,返回的是排序後的數字索引數據統計np.sum:所有元素的和np.prod:所有元素的乘積np.cumsum:元素的累積加和np.cumprod:元素的累積乘積np.min:最小值np.max:最大值np.percentile:0-100百分位數np.quantile:0-1分位數np.median:中位數np.average:加權平均,參數可以指定weightsnp.mean:平均值np.std:標準差np.var:方差廣播的概念規則1:如果兩個數組的維度數dim不相同,那麼小維度數組的形狀將會在左邊補1規則2:如果shape的維度不匹配,但是有維度是1,那麼可以擴展維度是1的維度匹配另一個數組;規則3:如果shape的維度不匹配,但是沒有任何一個維度是1,則匹配失敗引發錯誤;Numpy數組讀寫到文件np.load(filename):從.npy或者.npz文件中加載numpy數組np.save(filename, arr):將單個numpy數組保存到.npy文件中np.savez(filename, arra=arra, arrb=arrb):將多個numpy數組保存到.npz未壓縮的文件格式中np.savez_compressed(filename, arra=arra, arrb=arrb):將多個numpy數組保存到.npz壓縮的文件格式中線性代數包求解逆矩陣B = np.linalg.inv(A)SVD矩陣分解U, S, V = np.linalg.svd(A, full_matrices=False)求解線性方程組x = np.linalg.solve(A, b)多項式擬合params = np.polyfit(x, y, 10)與其它庫的關係Numpy與Matplotlib的關係曲線圖:plt.plot(x, y)柱狀圖:plt.bar(labels, arr)餅圖:plt.pie(arr, labels=labels, autopct='%1.1f%%')直方圖:plt.hist(arr, bins=100, density=1)Numpy與Pandas的關係構造Series:series = pd.Series(arr)構造DataFrame:df = pd.DataFrame(arr, columns = ["ca", "cb", "cc", "cd"])Series轉Numpy:series.values、series.to_numpy()DataFrame轉Numpy:df.values、df.to_numpy()Numpy與Scikit-learn的關係數據集是Numpy:data, target = datasets.load_boston(return_X_y=True)拆分訓練集和測試集:X_train, X_test, y_train, y_test = train_test_split(data, target)訓練模型:clf.fit(X_train, y_train)模型打分:clf.score(X_test, y_test)模型預估:clf.predict(X_test[:3])


另外,對於Numpy技術的講解我自己錄製成了22集的視頻課程:


視頻全集地址在愛奇藝搜索「numpy」就能找到我


或者點下方「閱讀原文」可以跳轉到視頻全集

相關焦點

  • numpy庫學習總結(基礎知識)
    今天,我們來介紹一款處理數組的「神器」,對numpy學習中的一些基礎知識進行總結。NumPy庫的學習總結(待續)【numpy庫介紹】numpy的全稱是Numerical Python(本文全部使用小寫,貌似應該寫成NumPy這樣,但是這不重要),是Python的一個擴展程序庫,它不僅針對數組運算提供了大量的函數庫
  • 高考數學重點:三角函數知識點總結!這塊知識點一定要弄懂
    在高中階段,有一個知識點是一定要弄懂的,它就是三角函數,作為標準的幾何知識點,三角函數一直都是高考中出現頻率極高的考點,甚至可以說是必考點。對於高中的幾何部分來講,三角函數這一塊的知識點也是必須吃透的,因為在幾何部分的學習中,很多知識點都與三角函數有著或多或少的聯繫,三角函數搞不懂,幾何學起來也困難。而幾何又是高中數學裡面數一數二的重點,學不好對高考也是有影響的。有很多同學有這麼一種情況,在學校學習的時候,老師講課我都能聽得懂,也能理解,學習也努力,但是考試成績總是上不去。
  • 高三化學一輪複習知識點總結 化學一輪複習怎麼學
    高三化學一輪複習知識點總結 化學一輪複習怎麼學高三階段是整個高中生涯的衝刺階段,每個學生都有機會通過這個階段的努力學習來實現高考的逆襲。高三複習最重要的就是緊跟老師的節奏,每一輪複習都要把握好,下面有途網小編給大家說說高三化學一輪複習知識點總結,化學一輪複習怎麼學,歡迎閱讀。
  • 初中物理電學有多難學?掌握這份電學知識點總結,考試不再怕!
    初中物理電學有多難學?掌握這份電學知識點總結,考試不再怕!電學我們在初中就開始接觸,是初中物理學習中的重難點,無論是平常的考試,還是升學時的中考,電學部分一直都是必考的知識點。電學為什麼會如此重要,我們可以試想一下,假如世界上沒有電的話,這個世界會是什麼樣子。
  • 高中生物乾貨,清北學霸整理生物必修一知識點,適用於期末衝刺!
    大家好,今天小編要分享的是高中生物必修一重點知識點總結。生物在理科屆一直有這麼一個稱號「理科中的文科」為什麼這麼說呢,因為生物需要記憶的東西很多,思維邏輯先比較其他科目要簡單得多,但是有很多同學生物偏偏很不好,或者總是拿不到分數,明明初中的時候生物成績很好,為什麼到高中就不行了呢?
  • D01 Numpy簡介,為什麼Numpy那麼快
    為什麼Numpy這麼快Numpy在執行到涉及ndarry的操作時,其是由預編譯好的C代碼快速執行。因此Numpy不僅擁有Python簡介優雅特性,也擁有幾近於C的高效。創建一個數組ndarray的主要屬性ndarray.ndim數組的維度個數ndarray.shape數組的維度,對於一個n行m列二維數組,其shape就是(n,m)ndarray.size數組的元素個數ndarray.dtype數組中的元素類型,例如int、int64ndarray.itemsize數組中每個元素的字節大小快速創建numpy數組
  • 七年級上冊:生物必考知識點總結!要想順利過關,務必列印背熟
    七年級上冊:生物必考知識點總結!要想順利過關,務必列印背熟生物跟地理一樣是新初一的同學必須要掌握的一門科目,雖然進入初二後就會參加會考,初三就可以不用學習了,但是如果基礎沒務實好,進入高中學習起來勢必好愈加的困難。
  • 看圖學NumPy:掌握n維數組基礎知識點,看這一篇就夠了
    這就是為什麼將小數部分加到步驟arange通常是一個不太好的方法:我們可能會遇到一個bug,導致數組的元素個數不是我們想要的數,這會降低代碼的可讀性和可維護性。這時候,linspace會派上用場。它不受捨入錯誤的影響,並始終生成要求的元素數。
  • 高考複習:高中化學知識點總結,非常詳細的內容,值得列印學習
    高考化學複習:考試知識點、重點、關鍵點、解題技巧、高考真題等在我們的日常生活中,化學現象無處不在,在這些隨處可見的化學現象中,我們可以看到很多高中化學知識的應用。人們將化學知識運用到生活和生產中,便利了人們生活,促進了社會發展。
  • 手把手教你學Numpy——常用API合集
    基本統計方法在日常的工作當中,我們經常需要通過一系列值來了解特徵的分布情況。比較常用的有均值、方差、標準差、百分位數等等。前面幾個都比較好理解,簡單介紹一下這個百分位數,它是指將元素從小到大排列之後,排在第x%位上的值。我們一般常用的是25%,50%和75%這三個值,通過這幾個值,我們很容易對於整個特徵的分布有一個大概的了解。
  • 衡中教授總結:高中生物~必修1+2+3知識點總結!附學霸手寫筆記哦
    童鞋們好哇,學姐今天陪室友去了醫院,一整天,看到醫院來來往往,形形色色的人臉上掛著笑容的,更多的是匆忙和愁容學姐一下子就想起了學姐高考那一年,學姐有兩個同學,是雙胞胎,成績都很好,六百以上,但是高考說是發揮失常,兩個人都沒考好說實話,學姐一直認為不存在超常發揮,失常發揮,更不相信幸運1+1=2這道題為什麼無論是平常還是考試,你都會呢?
  • 高考物理怎麼學?學霸分享的這三個技巧,不妨學一學
    所以,方法尤為重要,沒有好的學習方法,要想學好物理是很困難的。那麼,究竟如何學好物理呢?小編認為,以下幾點十分重要。第一:總結題型物理不是人文學科,如果你想通過死記硬背來學好物理,那無異於異想天開。為何說總結題型很重要?當你做到一定量的物理題時,你就會發現,其實很多題並不都是全新的題,很多題都是同一個模子裡刻出來的。
  • 高中生物知識點歸納總結(可列印),全面詳細
    各位同學、家長大家好,今天給大家分享的學習乾貨是高中生物知識點歸納,全面詳細。高中生物可以說是以理科中的文科著稱,因為所學內容裡的零碎知識點太太太多了,記憶性偏多。很多同學給我留言說生物知識點多背完就忘記,感覺很瑣碎,為什麼會出現這樣的學習煩惱呢?因為同學們只是背零散的知識點,沒有形成自己的知識體系,各章節是有密切聯繫的要綜合一起。今天就為同學們整理了高中生物所學知識點歸納,全面而又詳細,同學們可以拿來加強鞏固。
  • 「吃透」這份電學知識點總結,考試輕鬆拿高分!
    「吃透」這份電學知識點總結,考試輕鬆拿高分!物理是一門研究自然界中物理現象的科學,而且很多知識都是與我們日常生活密不可分的。比電學、光學、聲音現象,熱現象,電和磁現象等等,這些知識可以所是日常生活隨處可見,所以要學好物理,就要認真觀察周圍存在的各種物理現象。
  • @同學們:高考地理知識點總結大全!文科生滿分必備!
    高中地理一直被稱為文科中的理科,需要大家背知識點的同時也會涉及到一些經緯度的計算,相信很多同學都曾被這種題難倒過,從而導致頻頻丟分,那麼今天應同學們的呼聲給大家整理了高中地理知識點總結,其中幫大家歸納了知識點,做了表格,方便大家分類知識點鞏固自己薄弱的地方。
  • 2021中考語文現代文閱讀知識點總結
    一、本文的中心論點是什麼?/作者的觀點是什麼?/本文講述了什麼道理?分析:(1)位置 (2)句式知識點:位置:①題目點明②開頭提出(事例引出/名言引出/直接提出/引用提出)一般文章為總分總結構。③結尾總結,一般文章為分總結構。④文章中間句式:一般是判斷句,有判斷詞,或能轉換為判斷句。
  • 高中物理:人教版必修一知識點總結+解題方法歸納!期末高考必備
    童鞋們好哇,馬上期末了哦,學姐最近發的資料也都是幫助童鞋們期末考試的總結性資料高中物理還是比較難搞的,知識點比較多,也考驗學生的羅輯思維,做題和知識點完全是兩種感覺,即使理論學會了,實踐做題也比較難所以學姐總結了高中物理:人教版必修一知識點總結+解題方法歸納!
  • 高中政治必修知識點總結,全是考試重點,列印出來背,考試不下98
    高中政治必修知識點總結,全是考試重點,列印出來背,考試不下98政治作為我們高中文科中必考的科目之一,它的學習主要就是靠孩子們平時的一個記憶,在高中階段,需要我們記憶的政治知識點比較多,要想學好這門學科,最重要的還是得有方法的去記憶,只有這樣,
  • 一文包會,教你如何熟練運用Python數值計算Numpy包
    在Python中,如果涉及到第三方包的使用,第一步要做的事情當然是將這個包導入啦!那咱們就看看Numpy包在使用時是如何進行導入的吧!,給numpy起了個別名哦,所以在程序中直接寫np就是指的numpy哦!
  • 化學必修一知識點總結 高中化學必背知識點
    化學必修一知識點總結 高中化學必背知識點高中化學有哪些必考的知識點?必修一化學在高考中佔據多大的比重?必修一化學有哪些常考的知識點?下文有途網小編給大家整理了《化學必修一知識點總結 高中化學必背知識點》,僅供參考!化學必修一知識點總結一、 研究物質性質的方法和程序1.