資料分析 Numpy

2022-01-20 09:48:19 字數 4460 閱讀 7515

什麼是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 語言的乙個擴充套件程式庫,支援大量的維度陣列與矩陣運算,此外也針對陣列運算提供大量...