python数据分析(二)

科学计算库(Numpy)

numpy 在数据科学领域使用广泛,尤其是在矩阵计算上非常高效。
一、数据特性
import numpy as np //导入软件包
array2 = np.array([1,2]) //可对数组进行数组操作
array2 = array2+1 //array2变为[2,3]
array2.shape // 显示矩阵是几维的,如此时输出(2,)表示一维有两个元素
在ndarray中所有元素都是同一类型,否则会自动向下转换,int ->float->str

 type(array3) //打印当前数据格式 输出 ndarray

array3.dtype //数据类型 字符
array3.size //元素个数
array3.ndim //数据维度

二、索引与切片
切取数组中的一部分


array3[1:3] //从0开始,左闭右开,第一个到第三个
array3[-1:] //从倒数第二个开始至最后,倒数从1开始
array4[1] //从0开始,得到第一行
array4[:,2] //从0开始,得到第2列
利用bool类型进行筛选
np.arange(0,100,10) //从0开始到100每隔10个数取一个元素
np.random.rand(10) //在0到1区间上取10个随机数

 np.logical_and(array1,array2) //与操作

np.logical_or(array1,array2) //或操作

三、数据类型与数值计算

类型转换

 复制与粘贴

 

数值运算

np.sum(array) //对矩阵所有元素求和的值
np.sum(array,0) //对矩阵所有列元素求和的向量
np.sum(array,1) //对矩阵所有行元素求和的向量

其他可以进行数据分列分行计算的函数
array.prod( ) //各元素累乘 ,0按列,1按行
array.min() //各元素最小,0按列,1按行
array.mean() //各元素求和取均值,0按列,1按行
array.std() //各元素求标准差,0按列,1按行
array.var() //各元素求方差
array.clip(2,4) //比2小的全为2,比4大的全为4
array.round(decimals=2) //取精度,保留两位
array.argmin() //获得最小值的索引位置,0按列,1按行
np.multiply(array1,array2) //对应位置相乘
np.dot(array1,array2) //矩阵相乘
np.sort(array) //各元素排序,0按列,1按行
np.argsort(array) //各元素排序返回索引,0按列,1按行
np.linspace(0,10,10) //在0~10之间产生10个等间距数据
np.searchsorted(array1,array2)//array2中的数应该插入array1中的位置
np.lexsort([-1*array1[:,0]]) //第一列降序排序
np.lexsort([array1[:,0]]) //第一列升序排序
数组形状操作
array = np.arange(10)
array.shape = 2,5 //数组变成2*5的矩阵
array=array3[np.newaxis,:] //增加矩阵维度
array.transpose() //矩阵转置
array.T //矩阵转置后打印
np.concatenate((a,b))与np.stack((a,b))区别

 

创建数组函数
np.arange(2,20,2) //2到20内以2为间隔的矩阵
np.logspace(0,1,5) //以10为底的log函数
np.r_[0:5:1] //快速创建列向量
np.c_[0:5:1] //快速创建行向量
np.zeros(3) //有三个元素的0矩阵
np.zeros((3,3))/ np.ones((3,3)) //有3*3的0/1矩阵
np.ones((3,3))*8
a = np.empty(6) a.fill(1) //创建矩阵
np.zeros_like(array) //创建矩阵的维度与array一致
np.identity(5) //对角线有数值并且为1
随机模块
np.random.rand(3,2) //随机创建3*2的矩阵
np.random.randint(10,size = (5,4)) //0到10之间的5*4的随机整数
np.random.rand() //一个随机数
np.random.rand(0,10,3) //0到10之间3个随机数
np.random.normal(0,0.1,10) //均值0,标准差0.1的高斯分布随机数
np.set_printoptions(precision = 2) //全局设置,控制结果输出
np.random.shuffle(array) //每次执行结果不一样
np.random.seed(100) //指定随机种子

文件读写
写入一个文件及从文件读取数据

写入文件后分格符及可以跳过第一行

print (help(np.loadtxt)) //查看loadtxt的帮助文档

 

原文地址:https://www.cnblogs.com/moss-yang/p/13733283.html