什麼是numpy
numpy這個詞**於兩個單詞-- numerical和python。 numpy是python中的乙個運算速度非常快的乙個數學庫,它非常重視陣列,很多的資料科學的包都是依賴於numpy的。它允許你在python中進行向量和矩陣計算,並且由於許多底層函式實際上是用c編寫的,因此你可以體驗在原生python中永遠無法體驗到的速度。
安裝
pip install numpy
ndarray
numpy所有的操作都是圍繞著陣列展開的,這個陣列的名字就叫做 ndarray ,在學習ndarray陣列之前肯定有人會說這個東西和python中的列表差不多啊,為什麼不用列表呢,列表還要方便些。但是事實上通過ndarray不管是方便還是效率都遠遠地提公升了。
ndarray陣列建立
陣列內的元素型別必須一致
陣列大小不可修改
方法描述
array()
將python的列表轉換為陣列,可選擇顯式指定dtype
arange()
range的numpy版,支援浮點數
linspace()
類似arange(),第三個引數為陣列長度
zeros()
根據指定形狀和dtype建立全0陣列
ones()
根據指定形狀和dtype建立全1陣列
empty()
根據指定形狀和dtype建立空陣列(隨機值)
eye()
根據指定邊長和dtype建立單位矩陣
import numpy as np
lis = [1,2,3,4,5]
np.array(lis)
array([1, 2, 3, 4, 5])
np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.arange(0.5,10.5,1)
array([0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5])
#取範圍內的n個數,差值相同
np.linspace(1,10,10)
array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
np.zeros((2,2))
array([[0., 0.],
[0., 0.]])
#ones和empty和zeros類似,但是empty會優先找記憶體中的資料,不一定是隨機的
np.eye(4,4)
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
常用屬性
屬性描述
t陣列的轉置(對高維陣列而言)
dtype
陣列元素的資料型別
size
陣列元素的個數
ndim
陣列的維數
shape
陣列的維度大小(以元組形式)
itemsize
每個項占用的位元組數
nbytes
陣列中的所有資料消耗掉的位元組數
資料型別
dtype
型別描述
布林型bool_
整型int_ int8 int16 int32 int 64
無符號整型
uint8 uint16 uint32 uint64
浮點型float_ float16 float32 float64
#檢視資料型別
zx = np.ones((10,10))
zx.dtype
dtype('float64')
#修改資料型別
data = zx.astype(np.int16)
data.dtype
dtype('int16')
#注意int8佔1個位元組,1位元組(byte)佔8位(bit)
其中最高位代表符號位 1-負號;0-正號
範圍為1 1 1 1 1 1 1 1到0 1 1 1 1 1 1 1
1 0 0 0 0 0 0 為-128 0 0 0 0 0 0 0 0為0,一共256個數
範圍-128-127
運算#乘數字
z1 = [1,2,3,4,5,6]
z1 = np.array(z1)
z1 * 2
array([ 2, 4, 6, 8, 10, 12])
#乘陣列,注意要一樣的陣列才能計算
z2 = [4,4,4,2,1,8]
z1 * z2
array([ 4, 8, 12, 8, 5, 48])
#除此之外加減乘除類似
索引切片#維度轉換
data = np.ones((10))
#轉2x5的二維
zx = data.reshape(2,5)
#轉一維
zx.reshape(10)
切片,索引
zx=([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23],
[24, 25, 26, 27, 28, 29]])
data = np.array(zx)
#0data[0,0]
#8,9 14,15
data[1:3,2:4]
#3x3
data[:3,:3]
#步長2
data[::2,::2]
布林型索引-篩選資料
#篩選大於5的資料
a[a>5]
他會把每乙個資料和5比較,如果滿足條件就返回資料
一元函式
函式功能
abs、fabs
分別是計算整數和浮點數的絕對值
sqrt
計算各元素的平方根
square
計算各元素的平方
exp計算各元素的指數e**x
log計算自然對數
sign
計算各元素的正負號
ceil
計算各元素的ceiling值
floor
計算各元素floor值,即小於等於該值的最大整數
rint
計算各元素的值四捨五入到最接近的整數,保留dtype
modf
將陣列的小數部分和整數部分以兩個獨立陣列的形式返回,與python的divmod方法類似
isnan
判斷陣列中的缺失值
isinf
表示那些元素是無窮的布林型陣列
cos,sin,tan
普通型和雙曲型三角函式
二元函式
函式功能
add將陣列中對應的元素相加
subtract
從第乙個陣列中減去第二個陣列中的元素
multiply
陣列元素相乘
divide、floor_divide
除法或向下圓整除法(捨棄餘數)
power
對第乙個陣列中的元素a,根據第二個陣列中的相應元素b計算a**b
maximum,fmax
計算最大值,fmax忽略nan
miximum,fmix
計算最小值,fmin忽略nan
mod元素的求模計算(除法的餘數)
數學統計
函式功能
sum求和
cumsum
求字首和
mean
求平均數
std求標準差
var求方差
min求最小值
max求最大值
argmin
求最小值索引
argmax
求最大值索引
隨機數函式
功能rand
返回給定維度的隨機數組(0到1之間的數)
randn
返回給定維度的隨機數組
randint
返回給定區間的隨機整數
choice
給定的一維陣列中隨機選擇
shuffle
原列表上將元素打亂(與random.shuffle相同)
uniform
給定形狀產生隨機數組
seed
設定隨機種子(使相同引數生成的隨機數相同)
standard_normal
生成正態分佈的隨機樣本數
參考鏈結
numpy資料分析
2020 11 2 import array arr array.array i list range 10 i表示整型,生成序列後不能改變資料型別 多維陣列ndarray方便處理多維度運算,運算效率高 nparr np.array list range 10 修改值,浮點數取整數段 nparr 2...
資料分析 numpy
主要內容 1 資料分析 a 概念 是把隱藏在一些看似雜亂無章的資料背後資訊提煉出來,總結出所研究物件的內在規律.b 三劍客 numpy pandas matplotlib 2 numpy 是python語言的乙個擴充套件程式庫,支援大量的緯度陣列與矩陣運算,此外也針對陣列運算提供大量的數字函式庫.a...
爬蟲 資料分析 numpy
資料分析 是把隱藏在一些看似雜亂無章的資料背後的資訊提煉出來,總結出所研究物件的內在規律 資料分析三劍客 numpy,pandas,matplotlib numpy numerical python 是 python 語言的乙個擴充套件程式庫,支援大量的維度陣列與矩陣運算,此外也針對陣列運算提供大量...