機器學習之numpy入門

2021-09-25 11:57:19 字數 3609 閱讀 2961

numpy建立陣列方式

# coding = utf-

8import random

import numpy as np

# array方式傳入資料

t1 = np.

array

(range(0

,12))

print

(t1)

print

(t1.dtype)

print

(type

(t1)

)# np.arange方式

t2 = np.

arange(0

,12)print

(t2)

print

(t2.dtype)

print

(type

(t2)

)# 改變np的dtpye

t3 = t2.

astype

("float"

)print

(t3.dtype)

# 取小數字數

t4 = np.

array

([random.

random()

for i in

range(10

)])print

(t4)

print

(t4.

round(3

))

numpy讀取本地檔案

# numpy 讀取本地檔案

# 檔案路徑、讀取型別、分隔符、跳過開頭多少行,,unpack預設為false,為true為轉置矩陣

file = np.

loadtxt

("e:"

,dtype=

"int64"

,delimiter=

",",skiprows=

1,usecols=none,unpack=false)

numpy的轉置

t1 = np.

arange(0

,12).

reshape(3

,4)print

(t1.t)

print

(t1.

transpose()

)print

(t1.

swapaxes(1

,0))

numpy取行取列取值

# 取行

print

(file1[1]

)print

(file1[1,

:])print

(file1[0:

])print

(file1[0:

,:])

print

(file1[1:

])print

(file1[1:

,:])

print

(file1[[1

,2]]

)print

(file1[[1

,2],

:])# 取列

print

(file1[:,

1])print

(file1[:,

1:])

print

(file1[:,

[0,2

]])# 取值

print

(file1[3,

4])print

(file1[4,

5])

numpy修改值

直接賦值即可

numpy拼接

t1 = np.

arange(0

,12).

reshape(2

,6)print

(t1)

print

("-----------------"

)t2 = np.

arange(5

,17).

reshape(2

,6)print

(t2)

print

("-----------------"

)# 徑直拼接

print

(np.

vstack

((t1,t2)))

print

("-----------------"

)# 水平拼接

print

(np.

hstack

((t1,t2)

))

numpy交換行列

t1 = np.

arange(0

,12).

reshape(3

,4)print

(t1)

print

("--------"

)# 交換行,第一行和第二行交換

t1[[1,

2],:

]=t1[[2

,1],

:]# 交換列,第一列和第二列交換

t1[:,[

1,2]

]=t1[:,

[2,1

]]print

(t1)

建立全0 或者全1或者對角矩陣

zeros = np.

zeros((

3,4)

)print

(zeros)

ones = np.

ones((

3,3)

)print

(ones)

eye = np.

eye(3)

print

(eye)

ran = np.random.

randint(10

,20,(

3,4)

,dtype=int)

print

(ran)

a=b完全不複製,a和b互相影響

a=b[:]檢視操作,會建立新的物件a,但是a的資料完全由b保管,他們兩個的資料變化是一致的

a=b.copy()完全賦值, a和b互不影響

nan表示不是乙個數字

inf表示正無窮

-inf 表示負無窮

np.nan == np.nan 為false

nan判斷

ones = np.

ones((

3,3)

)ones[2,

2]=np.nan

print

(ones)

nonzero = np.

count_nonzero

(ones!=ones)

print

(nonzero)

isnan = np.

isnan

(ones)

print

(isnan)

nan和任何值相計算都是nan

np.sum中若有nan很多時候並不是簡單將其替換為0,而是替換成均值或者中值
t.mean(axis=0)某一行的均值

np.median(t)中值

機器學習入門 numpy學習

numpy的基本使用 ndarray支援並行化運算 向量化運算 numpy內建了並行運算功能,當系統有多個核心時,做某種計算時,numpy會自動做平行計算 效率遠高於純python numpy底層使用c語言編寫,內部解除了gil 全域性直譯器鎖 其對陣列的操作速度不受python直譯器的限制,所以,...

《Python之機器學習(NumPy)》

單行注釋 多行注釋 多行注釋 多行注釋 a.ndim 輸出陣列的維數 a.shape 輸出陣列的形式 幾行,幾列 copy 複製陣列 a 2 陣列中每個元素乘以2 1,2 2 陣列將變成4個 a 2 a的平方 1,2 2 unsuported operand type 陣列訪問。修建異常值。處理不存...

機器學習入門三劍客之numpy

import numpy as np 建立簡單的列表 a 1,2,3,4 將列表轉換為陣列 b np.array b b.sizeb.shapeb.ndimb.dtypearray one np.ones 10,10 array zero np.zeros 10,10 正態分佈 給定均值 標準差 維...