机器学习——机器学习中的线性代数

数学对象

import numpy as np

# 标量只是一个单一的数字
scalar_value = 18

print(scalar_value)

scalar_np = np.array(scalar_value) # 转换为np中的数组array
print(scalar_np, scalar_np.shape)
18
18 ()
# 向量是一个有序的数字数组
vector_value = [1,2,3] # 这是一个列表
vector_np  = np.array(vector_value) # 转换为np中的数组array
print(vector_np, vector_np.shape)
# 一维数组,既不能算行向量,也不能算列向量,真正的行向量、列向量需要二维数组表示
[1 2 3] (3,)
# 矩阵是一个有序的二维数组,有两个索引
matrix_list = [[1,2,3],[4,5,6]]
matrix_np = np.array(matrix_list)
print('matrix_list=', matrix_list, '\n',
      'matrix_np=\n', matrix_np, '\n', 
      'matrix_np.shape=', matrix_np.shape)
matrix_list= [[1, 2, 3], [4, 5, 6]] 
 matrix_np=
 [[1 2 3]
 [4 5 6]] 
 matrix_np.shape= (2, 3)
# 行向量的矩阵表示
vector_row = np.array([[1,2,3]])
print(vector_row, 'shape=',vector_row.shape)
[[1 2 3]] shape= (1, 3)
# 列向量的矩阵表示
vector_column = np.array([[4],[5],[6]])
print(vector_column, 'shape=', vector_column.shape)
[[4]
 [5]
 [6]] shape= (3, 1)
# 行列转置
vector_row = np.array([[1,2,3]])

print(vector_row, 'shape=',vector_row.shape, '\n', vector_row.T, '.Tshape=', vector_row.T.shape)
[[1 2 3]] shape= (1, 3) 
 [[1]
 [2]
 [3]] .Tshape= (3, 1)
# 矩阵与标量运算
matrix_a = np.array([[1,2,3],[4,5,6]])
print(matrix_a, 'shape=', matrix_a.shape)
[[1 2 3]
 [4 5 6]] shape= (2, 3)
# 矩阵*标量
matrix_b = matrix_a * 2
print(matrix_b, 'shape=', matrix_b.shape)
[[ 2  4  6]
 [ 8 10 12]] shape= (2, 3)
# 矩阵 + 标量
matrix_c = matrix_a+2
print(matrix_c, 'shape=',matrix_c.shape)
[[3 4 5]
 [6 7 8]] shape= (2, 3)
# 矩阵 + 矩阵
matrix_a = np.array([[1,2,3],
                     [4,5,6]])
matrix_b = np.array([[-1,-2,-3],
                     [-4,-5,-6]])

matrix_a + matrix_b
array([[0, 0, 0],
       [0, 0, 0]])
# 矩阵 * 矩阵(点积),对应位置数字相乘,两个矩阵行列数必须相等
matrix_a = np.array([[1,2,3],
                     [4,5,6]])
matrix_b = np.array([[-1,-2,-3],
                     [-4,-5,-6]])
matrix_a * matrix_b # 和np.multiply等价
array([[ -1,  -4,  -9],
       [-16, -25, -36]])
# 矩阵-矩阵乘法(叉乘)
# 第一个矩阵列的数量与第二个矩阵行数相匹配,才能将矩阵相乘
# 结果将是一个矩阵,它具有与第一个矩阵相同的行数与第二个矩阵相同的列数
matrix_a = np.array([[1,2,3],
                     [4,5,6]])# 2行3列
matrix_b = np.array([[1,2,3,4],
                     [2,1,2,0],
                     [3,4,1,2]])# 3行4列

np.matmul(matrix_a, matrix_b) # 结果是2行4列
array([[14, 16, 10, 10],
       [32, 37, 28, 28]])

你可能感兴趣的:(机器学习)