# encoding=utf-8
import numpy as np
l = [[1, 2, 3], [1, 3, 5]]
type(l) # 打印list类型
# np.array类型
npl = np.array(l, dtype=np.int16) # 转化为np.array,并确定数据类型
type(npl) # 打印np.array类型
npl.shape # 几行几列
npl.ndim # 维度
npl.dtype # 数据类型
npl.size # 数据个数
# 初始化矩阵
np.zeros([3, 4]) # 初始化0数组矩阵
np.ones([3, 4]) # 初始化1数组矩阵
# 随机数
np.random.rand(2, 4) # 2 X 4 的随机小数矩阵
np.random.rand() # 一个随机小数
np.random.randint(1, 5, 5) # 5个随机整数1~5
np.random.randn(1, 5) # 标准正太分布随机数矩阵
np.random.choice([10, 20, 30]) # 指定范围内随机数生成
np.random.beta(10, 20, 100) # BETA分布1~10,100个
# 数据操作
npl = np.arange(1, 11).reshape([2, 5]) # 等差数列,设置成2行5列
np.exp(npl) # 计算数列的以e为底,指数为npl的数值
np.exp2(npl) # 计算数列的以2为底,指数为npl的数值
np.sqrt(npl) # 计算数列的开方
np.sin(npl) # 计算数列的sin
np.log(npl) # 计算数列的log
# 多维度
list = np.array([[[1, 2, 3], [4, 5, 6, ]], [[7, 8, 9], [10, 11, 12]], [[13, 14, 15]]])
list.sum() # 求和
list.sum(axis=0) # 维度求和axix
list.max(axis=0) # 维度最大值
# 列表计算
list1 = np.array([1, 2, 3, 4])
list2 = np.array([2, 3, 4, 5])
list1 + list2 # list1+—*/list1
list1 ** 2 # 乘方
np.dot(list1.reshape([2, 2]), list2.reshape([2, 2])) # 转化为矩阵计算dot
np.concatenate((list1, list2)) # 两个列表接到一行与hstack效果相同
np.vstack((list1, list2)) # 两个列表接成两行
np.split(list1, 2) # 拆分列表到两份
from numpy.linalg import *
np.eye(3) # 单位矩阵
list3 = np.array([[1, 2], [3, 4]]) # 二阶矩阵
inv(list3) # 矩阵的逆
list3.transpose() # 反置矩阵
det(list3) # 行列式
eig(list3) # 特征值/特征向量
endnum = np.array([[5], [7]])
solve(list3, endnum) # 解方程组
np.fft.fft(np.array([1, 1, 1, 1, 1, 1, 1, 1])) # FFT
np.corrcoef([1, 0, 1], [0, 2, 1]) # 相关系数
np.poly1d([2,1,3]) # 打印多项式
矩阵计算
A*B:对应位置乘
A.dot(B):点乘