初識NumPy 資料分析基礎練習記錄

2021-08-25 05:53:29 字數 1954 閱讀 9155

numpy (numerical python)

python科學計算的基礎包

快速⾼高效的多維陣列物件ndarray。

⽤用於對陣列執⾏行行元素級計算以及直接對陣列執⾏行行數**算的函式。

⽤用於讀寫硬碟上基於陣列的資料集的⼯工具。

線性代數運算、傅⾥裡里葉變換,以及隨機數⽣生成。

成熟的c api, ⽤用於python外掛程式和原⽣生c、c++、fortran**訪問numpy的資料結構和計

算⼯工具。

對於數值型資料,numpy陣列在儲存和處理理資料時要⽐比內建的python資料結構⾼高效得

多。以上介紹是抄的,做為存檔。總之numpy非常非常關鍵,幸好它是乙個非常成熟高效靈活的工具。我們不用再重複造輪子,只需要用輪子來開車就可以了哈哈。

安裝anaconda,ipython、jupyter也要安裝上,然後開始做練習。

import numpy as np

data = # randn生成正態分佈的隨機數(生成式)

data

同時,可以通過matplotlib視覺化randn得到乙個隨機圖形:

魔術方法timeit

numpy之於數值計算特別重要的原因之⼀,是因為它可以高效處理大陣列的資料。

numpy是在⼀個連續的記憶體塊中儲存資料,獨⽴於其他python內建物件。numpy的c語⾔言編

寫的演算法庫可以操作記憶體,而不必進行型別檢查或其它前期工作。比起python的內建序列,

numpy陣列使用的記憶體更少。

numpy可以在整個陣列上執行複雜的計算,而不需要python的for迴圈。

效能對⽐

基於numpy的演算法要⽐比純python快10到100倍(甚⾄至更更快),並且使⽤用的記憶體更更少。

timeit my_arr = np.arange(100000)

274 µs ± 11.8 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

timeit my_list = list(range(1000000))

156 ms ± 2.23 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

關於numpy的多維陣列概念,需要反覆練習明確。可以通過其相應方法生成n維陣列:

data = np.random.randn(2, 3)

data

array([[ 0.29686959, 0.9925219 , -0.47971487],

[ 1.64960132, -0.85289072, -2.57214345]])

data * 10

array([[ 2.96869588, 9.92521896, -4.79714874],

[ 16.49601321, -8.52890723, -25.72143448]])

data + data

array([[ 0.59373918, 1.98504379, -0.95942975],

[ 3.29920264, -1.70578145, -5.1442869 ]])

data.shape # 取維度⼤大⼩小

(2, 3)

data.dtype # 取資料資料型別

dtype('float64')

資料分析 numpy基礎

目錄 numpy是高效能科學計算和資料分析的基礎包。它也是pandas等其他資料分析的工具的基礎,基本所有資料分析的包都用過它。numpy為python帶來了真正的多維陣列功能,並且提供了豐富的函式庫處理這些陣列。它將常用的數學函式都支援向量化運算,使得這些數學函式能夠直接對陣列進行操作,將本來需要...

資料分析 numpy基礎(二)

matr1 np.mat 1 2 3 4 5 6 7 8 9 用mat函式建立矩陣 matr2 np.matrix 1,2,3 4,5,6 7,8,9 用matrix函式建立矩陣 np.bmat arr1 arr2 arr1 arr2 用bmat函式合成矩陣 矩陣相乘 matr1 matr2 矩陣元...

資料分析 numpy基礎(三)

橫向堆疊,將兩個表在x軸向拼接在一起 pd.concat objs,axis 0,join outer join axes none,ignore index false 引數名稱 說明objs 接受多個series,dataframe,panel組合,表示參與的組合 axis 連線的軸向,axis...