天天看點

資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取

表示、清洗、統計和展示資料

Numpy庫入門

NumPy是一個開源的Python科學計算基礎庫,包含:

• 一個強大的N維數組對象 ndarray

• 廣播功能函數

• 整合C/C++/Fortran代碼的工具

• 線性代數、傅裡葉變換、随機數生成等功能

NumPy是SciPy、 Pandas等資料處理或科學計算庫的基礎

dataframe指派

隻截取特定列

df = df.iloc[:,:6]

計算不重複的個數

df.unique()

df.value_count()

指派

df.map({df裡的值,替換的值})

data[col].replace(‘yes’,‘True’).replace(‘no’,‘False’).astype(np.bool)

删除某列空值所在的行

data = df[(df[’’]==999)].index.tolist()找出空行所在索引

df.drop(data)

df[df[’’].isin([])==False] #找到不含特定值的資料

df = df.dropna()

與list差別

  • list每個元素可以是不同的類型,numpy每個元素類型一樣
  • numpy比list速度快非常多,%timeit

評價函數

機率大于0.5指派為一

np_data = np.array([0.1,0.3,0.7,0.4,0.9])
np.where(np_data> 0.5, 1, 0)
           

NumPy的數組對象:ndarray

建立方法:

1.從Python中的清單、元組((1,2),[1,2])等類型建立

資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取
資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取

2.從Numpy中函數建立數組,如:arange,ones,zeros**

資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取
資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取
資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取
資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取
a = np.linspace(1,10,4)
#array([1.,4.,7.,10]) endpoint預設true
           

3.位元組流

4.檔案中讀取特定格式

ndarray數組變換

資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取
資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取
資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取

use the numpy.copy function to separate the arrays memory-wise.

轉換資料類型

new_a = a.astype(new_type)

astype會建立新的數組

a = np.ones((2,3,4),dtype=np.int)
b = a.astype(np.float)
           

轉換成清單,失去部分排列規則

ls=a.tolist()

資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取

ndarray數組操作

索引(擷取特定位置元素)+切片(擷取數組元素子集)

切片:

一維:a[1:4:2] 起始編号:終止編号(不含):步長

多元:a[:,:,::2]使用步長跳躍切片

資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取

從數組中傳回所需的索引,無論其尺寸如何,numpy.where()

資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取

要删除特定的索引,可以使用numpy.delete()

資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取

ndarray數組運算

數組與标量的運算作用于數組每個元素

一進制函數:np.abs(x),np.sqrt(x),mp.square(x),np.ceil(x)

二進制函數:

      • / ** np.fmax() np.fmin()

python已有清單類型,為什麼需要一個數組對象(類型)?

  • 省略每個元素運算所需循環,使得一維向量像單個資料
  • 優化後提升這類運算速度
import numpy as np
a  = np.array([0,1,2,3,4])
b = np.array([0,1,2,3,4])
c = a**2 + b**3
           
import numpy as np
a  = [0,1,2,3,4]
b = [0,1,2,3,4]
c = []
for i in range(len(a)):
	c.append(a[i]**2+b[i]**3)
           

ndarray是一個多元數組對象,由實際資料和描述資料的中繼資料(資料次元、資料類型)構成

一般要求所有元素類型相同(同質),數組下标從0開始

資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取

ndarray對象屬性

資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取

Numpy庫資料存取

普通文本檔案讀入和寫入

讀取

f = open('somefile.txt', 'r')
alist = f.readlines()
f.close()

           

寫入

f = open('newtextfile.txt', 'w')
f.writelines(newdata)
f.close()
           
數組存儲

當資料量非常大時,且類型一緻,使用如下方式更快速

np.savetxt(frame, array, fmt=’%.18e’, delimiter=None)

frame:檔案、字元串或産生器

fmt:格式,如%d,%.2f

np.loadtxt(frame, dtype=np.float, delimiter=None, unpack=False)

dtype:類型預設float

unpack:如果為True,讀入屬性将分别寫入不同變量

存為二進制檔案使用 numpy.savez

任意次元存取

a.tofile(frame, sep=’’, format=’%s’)

sep : 資料分割字元串,如果是空串,寫入檔案為二進制

**np.fromfile(**frame, dtype=float, count=‐1, sep=’’)

• count : 讀入元素個數, ‐1表示讀入整個檔案

便捷檔案存取

np.save(fname, array) / np.savez(fname, array)

np.load(fname)

随機函數庫

資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取
資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取
資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取
numpy統計函數
資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取
資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取

梯度函數:np.gradient(f)

梯度:連續值之間的變化率

注意

矩陣隻能是二維的

資料分析與展示Numpy庫複習Numpy庫入門Numpy庫資料存取