資料分析基礎 Numpy的使用(一)

2021-08-14 16:18:59 字數 4607 閱讀 1911

numpy

:提供了乙個在python中做科學計算的基礎庫,重在數值計算,主要用於多維陣列(矩陣)處理的庫。用來儲存和處理大型矩陣,比python自身的巢狀列表結構要高效的多。本身是由c語言開發,是個很基礎的擴充套件,python其餘的科學計算擴充套件大部分都是以此為基礎。

ndarray多維陣列(n

dimension array)

numpy

陣列是乙個多維的陣列物件(矩陣),稱為ndarray,具有高效的算術運算能力和複雜的廣播能力,並具有執行速度快和節省空間的特點。

注意:ndarray的下標從0開始,且陣列裡的所有元素必須是相同型別,每乙個ndarray都擁有以下屬性

通過隨機抽樣(numpy.random) 生成隨機資料。

示例**:

1. np.random.rand()

生成指定維度的隨機多維浮點型陣列,資料固定區間 0.0 ~ 1.0

import

numpy

asnp

# 生成指定維度大小(3行4列)的隨機多維浮點型陣列(二維),rand固定區間0.0 ~ 1.0

arr =np.random.rand(3,

4)print(arr)

print(type(arr))

[[ 0.09371338 0.06273976  0.22748452  0.49557778]

[ 0.30840042 0.35659161  0.54995724  0.018144 ]

[ 0.94551493 0.70916088  0.58877255  0.90435672]]

print(

'維度個數: '

,arr.ndim)

print(

'維度大小: '

,arr.shape)

print(

'資料型別: '

,arr.dtype)

維度個數:  2

維度大小:  (3, 4)

資料型別:  float64

2. np.random.uniform()

生成指定維度大小的隨機多維浮點型陣列,可以指定數字區間(均勻分布)

# 生成指定維度大小(3行4列)的隨機多維浮點型陣列(二維),uniform()可以指定區間(-1, 5)

arr =np.random.uniform(-1,

5, size = (3,

4))

# 'size='

可省略

print(arr)

print(type(arr))

[[ 2.25275308 1.67484038 -0.03161878 -0.44635706]

[ 1.35459097 1.66294159  2.47419548-0.51144655]

[ 1.43987571 4.71505054  4.33634358  2.48202309]]

print(

'維度個數: '

,arr.ndim)

print(

'維度大小: '

,arr.shape)

print(

'資料型別: '

,arr.dtype)

維度個數:  2

維度大小:  (3, 4)

資料型別:  float64

3. np.random.randint()

生成指定維度大小的隨機多維整型陣列,可以指定數字區間

# 生成指定維度大小(3行4列)的隨機多維整型資料(二維),randint()可以指定區間(-1, 5)

arr =np.random.randint(-1,

5, size = (3,

4))

# 'size='

可省略

print(arr)

print(type(arr))

[[ 1 3  0  1]

[ 1 4  4  3]

[ 2  0-1 -1]]

print(

'維度個數: '

,arr.ndim)

print(

'維度大小: '

,arr.shape)

print(

'資料型別: '

,arr.dtype)

維度個數:  2

維度大小:  (3, 4)

資料型別:  float64

1. np.array(list,dtype)

list

為 序列型物件(list)、巢狀序列物件(list of list),dtype表示資料型別 (int、float、str)。

示例**:

# list

序列轉換為 ndarray

arr =np.array(range(

10))

print(arr)           

# ndarray資料

print(arr.ndim)       

# 維度個數

print(arr.shape)   

# 維度大小

執行結果: [

0123

4567

89]

1 (10,)

# list oflist

巢狀序列轉換為ndarray

lis_lis =[range(

10), range(

10)]

arr_2d =np.array(lis_lis)

print(arr_2d)           

# ndarray資料

print(arr_2d.ndim)       

# 維度個數

print(arr_2d.shape)       

# 維度大小

執行結果:

[[01

2345

6789

] [0

1234

5678

9]] 2

(2,

10)

2. np.zeros()

指定大小的全0陣列。注意:第乙個引數是元組,用來指定大小,如(3, 4),第二個引數可以指定型別,如int,預設為float。

zeros_arr= np.zeros((3,

4))[[

0.0.

0.0.]

[ 0.

0.0.0.]

[ 0.0.

0.0.]]

3. np.ones()

指定大小的全1陣列。注意:第乙個引數是元組,用來指定大小,如(3, 4),第二個引數可以指定型別,如int,預設為float。

ones_arr =np.ones((2,

3))[[

1.1.1.]

[ 1.1.

1.]]

4. np.arange()

arange()

類似python 的 range() ,用來建立乙個一維ndarray 陣列,結果等同於 np.array(range())。

arr =np.arange(

15)

# 0 ~ 14

、共15個元素的 一維陣列

print(arr)

[ 0 1  2  3 4  5  6 7  8  9 10 11 12 13 14]

arr =np.arange(

10,

20, 2)

# 10 ~ 19

、步長為2、共5個元素的一維陣列

print(arr)

[10 12 14 16 18]

5. reshape()

reshape()

將 重新調整陣列的維度。

arr =np.arange(15)

print(arr.reshape(3,

5))

# 3x5

個元素的 二維陣列

[[ 0 1  2  3  4]

[ 5 6  7  8  9]

[10 11 12 13 14]]

print(arr.reshape(1,

3, 5))

# 1x3x5

個元素的 三維陣列

[[[ 0 1  2  3  4]

[ 5 6  7  8  9]

[10 11 12 13 14]]]

6. random.shuffle()

random.shuffle()

將打亂陣列序列(隨機重新排列)。

arr =np.arange(15)

print(arr)

[ 0 1  2  3 4  5  6 7  8  9 10 11 12 13 14]

打亂原陣列的元素序列

np.random.shuffle(arr)

print(arr)

[ 5 8  1  7 4  0 12  9 11  213 14 10  3  6]

再配合reshape()使用

print(arr.reshape(3,

5))[[ 5 8  1  7  4]

[ 0 12 9 11  2]

[13 14 10 3  6]]

資料分析 numpy基礎

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

python資料分析 numpy基礎(一)

1 建立numpy陣列 import numpy as np print 使用普通一維陣列生成numpy一維陣列 data 6,7.5,8,0,1 arr np.array data print arr print 列印元素型別 print arr.dtype print print 使用普通二維陣...

資料分析 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 矩陣元...