Python数据分析与展示(1)——NumPy库入门
来源:互联网 发布:中国邮政数据传媒中心 编辑:程序博客网 时间:2024/06/06 00:44
最近在中国大学mooc网学习Python数据分析与展示相关知识,记入下来,以供参考。
NumPy库入门
NumPy简介
NumPy是一个开源的Python科学计算基础库,包含:
• 一个强大的N维数组对象ndarray
• 广播功能函数
• 整合C/C++/Fortran代码的工具
• 线性代数、傅里叶变换、随机数生成等功能
NumPy是SciPy、Pandas等数据处理或科学计算库的基础
NumPy的数组对象:ndarray
Python已有列表类型,为什么需要一个数组对象(类型)?
• 数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据
• 设置专门的数组对象,经过优化,可以提升这类应用的运算速度
• 数组对象采用相同的数据类型,有助于节省运算和存储空间
利用np.array()生成一个ndarray数组,np.array()输出成[ ]形式,元素由空格分割
ndarray对象的属性
ndarray数组的元素类型
ndarray数组的创建方法
1.从Python中的列表、元组等类型创建ndarray数组
x = np.array(list/tuple)x = np.array(list/tuple, dtype=np.float32)
当np.array()不指定dtype时,NumPy将根据数据情况关联一个dtype类型
2.使用NumPy中函数创建ndarray数组,如:arange, ones, zeros等
In [2]:import numpy as npIn [3]:a = np.linspace(1,10,4)#1是起始值,10是最后一个元素的值,4指数组包含四个元素In [4]:aOut[4]: array([ 1., 4., 7., 10.])In [5]:b = np.linspace(1,10,4,endpoint=False)#endpoint表示最后一个元素是否是数组中的一个In [6]:bOut[6]: array([ 1. , 3.25, 5.5 , 7.75])
ndarray数组的变换
对于创建后的ndarray数组,可以对其进行维度变换和元素类型变换
a = np.ones((2,3,4), dtype=np.int32)
In [13]:a = np.ones((2,3,4))In [14]:aOut[14]: array([[[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]], [[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]]])In [15]:a = np.ones((2,3,4), dtype=np.int32)In [16]:aOut[16]: array([[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]])
new_a = a.astype(new_type)
astype()方法一定会创建新的数组(原始数据的一个拷贝),即使两个类型一致
In [17]:b = a.astype(np.float)In [18]:bOut[18]: array([[[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]], [[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]]])
ndarray数组向列表的转换
ls = a.tolist()
In [19]:a.tolist()Out[19]: [[[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0]], [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0]]]
ndarray数组的操作
数组的索引和切片
索引:获取数组中特定位置元素的过程
切片:获取数组元素子集的过程
ndarray数组的运算
1.数组与标量之间的运算:数组与标量之间的运算作用于数组的每一个元素
2.NumPy一元函数
对ndarray中的数据执行元素级运算的函数
np.sin(x) np.sinh(x)
np.tan(x) np.tanh(x)
计算数组各元素的普通型和双曲型三角函数 np.exp(x) 计算数组各元素的指数值 np.sign(x) 计算数组各元素的符号值,1(+), 0, ‐1(‐)
3.NumPy二元函数
np.minimum(x,y) np.fmin() 元素级的最大值/最小值计算 np.mod(x,y) 元素级的模运算 np.copysign(x,y) 将数组y中各元素值的符号赋值给数组x对应元素 <> >= <= == != 算术比较,产生布尔型数组
- Python数据分析与展示(1)——NumPy库入门
- Python数据分析与展示(2)——Numpy数据存取与函数
- 《Python数据分析与展示》学习笔记(一)numpy入门
- 【Python数据分析与展示】(一)numpy基础
- Python数据分析与展示(3)——Matplotlib库入门
- Python数据分析与展示(5)——Pandas库入门
- 《Python数据分析与展示》学习笔记(一)numpy数据存储与函数
- 【Python数据分析与展示】(二)NUMPY数据存取与函数
- Numpy入门——Python数据分析mooc笔记
- Python数据分析与展示(6)——Pandas数据特征分析
- 【Python数据分析与展示】(三)matplotlib库pyplot
- 数据分析Numpy库入门
- Python数据分析笔记——Numpy、Pandas库
- Python数据分析基础(二)——NumPy基础
- Python数据分析与展示(4)——Matplotlib基础绘图函数示例
- 【Python数据分析与展示】(五)pandas库数据分析
- Python数据分析与机器学习-Numpy
- 数据分析(1):Numpy库与应用
- 基于模板匹配的字符识别(Matlab) 字符识别模板匹配方法
- JavaScript基础学习
- MST 最小生成树
- androidstudio报错之Java.lang.NoClassDefFoundError: de.greenrobot.event.EventBus
- 【JavaScript】我的第6个例子;代码块
- Python数据分析与展示(1)——NumPy库入门
- 个人笔记——jQuery
- 剑指offer 04 替换空格
- 微信支付未安装微信情况下调起支付无响应
- SQL Server 中的 锁
- Unity3d 开始界面空白(黑屏)问题
- Nginx反向代理和负载均衡
- Web交互设计优化方案+check list
- 项目笔记(一)