機器學習之Numpy與張量

WUST_WK發表於2020-10-31

張量

張量是矩陣向任意維度的推廣(張量的維度通常叫軸)
僅含一個數字的張量叫標量(0D張量)

檢視Numpy張量軸

# 0D
x = np.array(12)
print(x)
print(x.ndim)

# 1D
x = np.array([12, 3, 6, 14, 7])
print(x)
print(x.ndim)

# 2D
x = np.array([[1, 2, 3, 4, 5],
              [4, 5, 6, 7, 8]])
print(x)
print(x.ndim)

# 3D
x = np.array([[[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]],
             [[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]],
             [[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]]])
print(x)
print(x.ndim)

張量形狀與資料型別

形狀是一個整數元組
例如:

# 2D
x = np.array([[1, 2, 3, 4, 5],
              [4, 5, 6, 7, 8]])
print(x)
print(x.shape)

輸出是(2, 5)

資料型別可以是float32, unit8, float64

相關函式

np.exp(z)

表示e的z次方

np.insert()函式

np.insert(x, 0, values=1,axis=1)

axis = 1:表示行
0:表示插入的索引值
value:插入的值

最終在每一行第一個位置插入1

import numpy as np

x = np.array([[2, 3, 4, 5],
              [5, 6, 7, 8]])

x = np.insert(x, 0, values=1,axis=1)
print(x)

在這裡插入圖片描述

np. argmax()

axis = 1 (行)
np.argmax(a, axis=1):
返回行最大值的索引

例如:

import numpy as np
a = np.array([[1, 5, 5, 2],
              [9, 6, 2, 8],
              [3, 7, 9, 1]])
print(np.argmax(a, axis=1))

在這裡插入圖片描述

np.mean()

可以用來預測準確率:
可計算預測值與實際值相等所佔比例
例如;

import numpy as np
y  = np.array([1, 2, 3, 4, 5])
y1 = np.array([1, 2, 4, 5, 6])
acc = np.mean(y==y1)
print(acc)

在這裡插入圖片描述

相關文章