学习《利用Python进行数据分析》第2版,一些笔记将在后续更新
内容部分引用于《利用Python进行数据分析》第2版(Wes McKinney著,徐敬一译)、慕课网上的课程内容笔记以及我个人总结笔记,仅供大家一起学习交流
数组与向量化计算
numpy的核心特征之一就是N-维数组对象——ndarray
导入numpy
import numpy as np
生成随机数
print(np.random.rand(2, 4)) # 输出2行4列的随机数组
print(np.random.rand()) # 生成一个随机数
print(np.random.randint(1, 14, 5)) # 在1到14之间生成5个随机数
print(np.random.randn(2,4))#标准正态分布随机数
print(np.random.choice([10,20,30]))#从中选择随机数
print(np.random.beta(1,10,100))#从1到10随机生成100个beta分布
每一个数组都有shape属性,用来表征数组每一维度的数量
lst=[[1,3,5],[2,4,6]]
np_lst=np.array(lst)#生成ndarray
print(np_lst.shape)
每一个数组都有一个dtype属性,用来描述数组的数据类型
print(np_lst.dtype)
除了np.array,还有其他函数创建新数组
print(np.zeros([2, 4])) # 输出元素都为0的2行4列数组
print(np.ones([3, 5])) # 输出元素都为1 的2行4列数组
数组相关操作示例
print(np.arange(1,11))#从1开始,不包括11,等差
print(np.arange(1, 11).reshape([2,5]))#2行5列
list = (np.arange(1, 11)).reshape([2, 5]) # 变成两行五列数组
print(np.exp(list)) # list 的自然指数
print(np.exp2(list)) # list 的自然指数的平方
print(np.sqrt(list)) # list 的开方
print(np.square(list)) # list 的平方
print(np.sin(list)) # list 的正弦值
print(np.log(list)) # list 的对数值
#引用网上学习笔记,侵删
list = np.array([[[1, 2, 3, 4],
[4, 5, 6, 7, ]],
[[7, 8, 9, 10],
[11, 12, 13, 14]],
[[15, 16, 17, 18],
[19, 20, 21, 22]]
])
#axis取值跟维数有关,维数从 0 开始算起,axis值越大,深入的程度越深
print (list.sum(axis=0))# axis表示维度,sxis=0,表示最外层的元素相加
print (list.sum(axis=1))# 表示最外层减一层的元素相加
print (list.max(axis=0)) # 最外层元素中的最大元素值
print (list.min(axis=0)) # 最外层元素中的最小元素值
list1 = np.array([10, 20, 30, 40])
list2 = np.array([4, 3, 2, 1])
print(list1 + list2) # 对两个list中的元素相加,ps:不是将一个数组中的元素放在另一个后面
print (list1-list2) # 对两个list中的元素相减
print (list1**2) # 对两个list中的元素平方
print (list1/list2)# 对两个list中的元素相除
print (list1.reshape([2, 2]))
print (list2.reshape([2, 2]))
print (np.dot(list1.reshape([2, 2]), list2.reshape([2, 2]))) # 数组点乘
print(np.concatenate((list1,list2),axis = 0)) #将两个数组相连,即list2添加到list1中,传的是tup元组
print(np.vstack((list1,list2)))# Vertical 垂直,即纵向连接
print(np.hstack((list1,list2)))#Horizontal 水平,即横向连接
print(np.split(list1,4))#分割成4段
print(np.eye(3))#线性矩阵,单位矩阵
lst = np.array([[1, 2],
[3, 4]])
print("Inv:")
print(inv(lst)) # 矩阵的逆
print("T:")
print(lst.transpose()) # 转置矩阵
print("Det:")
print(det(lst)) # 行列式
print(eig(lst)) # 特征值和特征向量,一个元组,两个array
y = np.array([[5], [7]])
print("Solve")
print(solve(lst, y)) # 解方程组 x+2y=5; 3x+4y=7
# numpy的其他操作
print("FFT:")
print(np.fft.fft(np.array([1, 1, 1, 1, 1, 1, 1, 1]))) # 阶跃响应
print('Coef:')
print(np.corrcoef([1, 0, 1], [0, 2, 1])) # 皮尔逊相关系数计算
print('Poly:')
print(np.poly1d([3, 1, 3])) # 生成一元多次函数
print(np.corrcoef([1, 0, 1], [0, 2, 0])) # 打印相关系数
print(np.poly1d([2, 1, 3])) # 生成一元多次函数 2x**2 + 1x + 3 ,他生成一元二次函数
内容部分引用于《利用Python进行数据分析》第2版(Wes McKinney著,徐敬一译)、慕课网上的课程内容笔记以及我个人总结笔记,仅供大家一起学习交流
如有错误,请多指教,笔记会持续更新的~
谢谢大家!