Python
大约 1 分钟
Python
目录
NumPy库
简概
可以计算向量、计算矩阵
机器学习环境常用
常用功能
注意要区分向量和矩阵的定义
数据定义
向量
定义向量(一对中括号)
w = np.array([1.0, 2.5, -3.3]) # 访问方法:w[i]
b = 4
x = np.array([10, 20, 30]) # 访问方法:x[i]
# 向量也可以看成是列矩阵
np.array([10, 20, 30]) 和 np.array([[10], [20], [30]]) 基本是一样的
numpy向量的注释
向量转置前后打印出来是一样的。
由于python numpy的广播特性(行向量+列向量不会报错,会变成一个矩阵),使用向量很容易出错
import numpy as np
a = np.random.randn(5)
a # [0.50, -0.29, 0.95, -0.82, -1.46]
a.T # [0.50, -0.29, 0.95, -0.82, -1.46]
解决方法:
a = np.random.randn(5) # 不要使用,有jj歧义
b = np.random.randn(5,1) # 竖向量,a.shape -> (5,1)
c = np.random.randn(1,5) # 行向量,a.shape -> (1,5)
# 打印出来也不同
b
"""
[[ 0.50]
[-0.29]
[ 0.95]
[-0.82]
[-1.46]]
"""
b.T
"""
[[ 0.50 -0.29 0.95 -0.82 -1.46]]
"""
矩阵
定义矩阵1(两对中括号)
x = np.array([ # 这是一个矩阵
[200.0, 17.0],
[425.0, 18.5]
])
x = np.array([ # 这是一个4x2矩阵,即四行两列矩阵
[0.1, 0.2],
[0.2, 0.3],
[0.3, 0.4],
[0.4, 0.5],
])
# 一般不用矩阵的定义方式来定义向量,写起来会非常麻烦,而是直接定义向量,然后当矩阵用
定义矩阵2
np.matrix() # ...
方法
向量点乘
f = np.dot(w,x)+b # 向量化的一个好处是快,对于大数据还可以多线程并行工作,而不是单线程循环
矩阵乘(叉乘)
Z = np.matmul(A_in,W) + B