本人是學python中的小白之一。python是人工智慧中的一門重要的程式語言之一,它的作用在於其中有能夠幫助人們進行資料分析的numpy庫、matplotlib繪相簿,和開源專案pandas。這些都是我們進行資料分析的重要工具。那麼現在我就來來介紹一些關於·python中的基礎知識。
(一)numpy
numpy庫是乙個對陣列進行分析處理的工具。
1.建立乙個多維陣列並讀取其中元素
import2.dtype屬性numpy as
np #匯入numpy並將其命名為np
arr1=np.array([
[1,2
,3],[4,
5,6],[7,8
,9]])#建立乙個多維陣列
print(arr1[0,0])#0,0為陣列的下標
利用dtype屬性可獲取資料型別對應的字元碼
import3.陣列的切片與索引,陣列形狀的處理numpy as
nparr1=np.array([
[1,2
,3],[4,
5,6],[7,8
,9]])print(arr1.dtype)#執行成功後可知此陣列型別為int32
import陣列的切片與索引numpy as
nparr1=np.array([
[1,2],[3,
4],[5
,6],[7,
8]])
arr2=arr1.reshape(1
,8)#更改陣列的形狀使其成為一行
print(arr2)
arr=np.random.randint(1,9,size=(3,4,5))#1定義乙個陣列內各值都為1到9整數中的隨機,size是(3,4,5)的乙個陣列
arrprint(arr[:,:,1:4])#獲取每個陣列中的第一維度的一到三個
執行結果如下
array([[[4, 4, 2, 6, 4],[1, 2, 3, 8, 6],
[2, 8, 3, 8, 5],
[3, 5, 7, 7, 2]],
[[3, 3, 5, 6, 1],
[8, 1, 4, 6, 6],
[7, 5, 7, 7, 3],
[2, 3, 2, 5, 5]],
[[8, 4, 5, 1, 7],
[4, 7, 6, 2, 4],
[6, 5, 1, 2, 3],
[6, 4, 7, 1, 8]]])
[[[4 2 6]處理陣列形狀[2 3 8]
[8 3 8]
[5 7 7]]
[[3 5 6]
[1 4 6]
[5 7 7]
[3 2 5]]
[[4 5 1]
[7 6 2]
[5 1 2]
[4 7 1]]]
陣列轉置:
arr=np.random.randint(1,9,size=(3,3))
print(arr)
print(arr.transpose())
執行結果如下
[[7 5 7]花式索引[8 2 3]
[4 7 7]]
[[7 8 4]
[5 2 7]
[7 3 7]]
arr=np.random.randint(1,9,size=(8,8))
arrprint(arr[np.ix_([1,2,3],[1,2,3])])#生成乙個索引器獲取1,2,3行1,2,3列的資料
執行結果
array([[1, 5, 7, 6, 1, 6, 7, 1],
[2, 1, 3, 3, 6, 4, 7, 4],
[7, 2, 1, 6, 4, 1, 6, 6],
[6, 5, 6, 8, 4, 8, 8, 6],
[2, 1, 8, 1, 7, 8, 2, 7],
[1, 1, 2, 6, 3, 7, 8, 6],
[8, 2, 4, 5, 8, 8, 4, 5],
[6, 1, 5, 5, 3, 3, 1, 6]])
[[1 3 3]
[2 1 6]
[5 6 8]]
4.numpy陣列的屬性
ndim 儲存維度的數量
size 儲存維度的數量
t屬性 陣列轉置(若陣列的秩小於2,得到乙個陣列的檢視)
real 返回陣列實部
imag 返回陣列的虛部
5.numpy陣列的廣播
乙個陣列和乙個標量相乘,標量需要根據陣列情況進行擴充套件,然後才可以進行乘法運算,這個運算的過程稱為廣播。
(二)pandas
pandas具有處理面板資料,資料分析的功能。
1.資料結構之一:dataframe
檔案讀取
import pandas as pd
import numpy as np
df01=pd.read_csv('name.csv')#讀取乙個csv檔案
df01[df01.columns[4:]]#將第5列及以後顯示的**輸出
統計方法
at01=pd.dataframe(np.random.randint(1,9,size=(3,3)))
at01
at01.sum(axis=1)#按行求和,若為0就是按列求和
describe 描述性統計資訊 非nan資料項的數量
mad 計算平均絕對偏差
median 中位數
std 離散度的標準差
var 方差
缺失值處理常用方法:
isnull()檢查缺失資料
notnull()檢查非缺失資料
filllna()用標量值替換缺失資料
2.資料結構之二:series
series建立方法
用python的字典來建立
由numpy陣列來建立
用單個標量值來建立
ser01=pd.series(np.array([1,2,3,4]))#建立乙個series
series的運算
ser=pd.series()
ser02+10
ser02-10
ser02*10
ser02/10
3.資料聚合
arr=np.random.randint(1,9,size=(3,3))
arrprint(arr.mean(axis=0))#以列的形式進行聚合
print(arr.mean(axis=1))#以行的形式進行聚合
(三)matplotlib
matplotlib是乙個繪相簿。可利用這個庫進行基本的繪圖操作。
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
%matplotlib tk#在gui中顯示
#%matplotlib inline#在行內顯示
#解決中文顯示問題
mpl.rcparams['font.sans-serif']=['simhei']
mpl.rcparams['axes.unicode_minus']=false
x=np.arange(-3,3,0.2)#從-3到3,以0.2為間距畫點
x=np.sin(x)
plt.figure()#建立圖形
plt.plot(x,color='blue',linestyle='-.',marker='o',markersize=10,alpha=0.1)#marker標記alpha透明度,linestyle為線形
plt.show()#演示圖形
圖例和註解
圖例:用matplotlib提供的legend()函式,為資料序列提供標籤
橫軸和縱軸的標籤:分別通過xlabel()和ylabel()繪製
ide:anaconda3(64-bit)
[印尼]ivan idris 著
韓波 譯
python資料分析
以網路爬蟲為例,網路爬蟲是乙個自動提取網頁的程式,爬蟲是搜尋引擎的第一步,也是最容易的一部。網頁搜尋,建立索引,查詢排序 用c c 效率高,速度塊,適合通用搜尋引擎做往往爬取。但是它的缺點也特別明顯 開發慢,寫起來又臭又長的。而python無論在資料分析還是在指令碼自動化編寫尚都是簡單,易學的。良好...
python資料分析
陣列間的算術運算 npwhere pandas的使用 np.random.rand 3,4 產生乙個3行4列的矩陣 0 1之間的 in 32 data1 1,2,3,4.0 in 34 arr1 np.array data1 in 35 arr1 out 35 array 1.2.3.4.in 37...
python資料分析
1.資料分析的含義與目標 2.python與資料分析 3.python資料分析大家族 4.python環境搭建 一 numpy 功能 ndarray 多維操作 線性代數 官網 numpy是python語言的乙個擴充程式庫。支援高階大量的維度陣列與矩陣運算,此外也針對陣列運算提供大量的數學函式庫。nu...