Python数据清洗N0.2
本章主要对Numpy库的简单介绍及使用方法
目录
本章主要对Numpy库的简单介绍及使用方法
1. Numpy 有什么功能
2.Numpy函数介绍:
1.使用Numpy库需要在编译式导入Numpy库
3.Numpy中的维度:
array函数用于将列表或元组转换为数组
arange函数用于生成一维数组
linspace函数用于生成一个一维数组,其数据是一个等差数列
logspace函数用于生成一个一维数组,其数据是一个等比数列
zeros函数用于创建一个元素全为零的数组
eye函数用于创建元素中一个对角线全为一的数组矩阵
onse函数用于创建元素全为1的数组
diag函数用于生成对角线为列表V的数组
random.random函数用于创建元素为size的随机数组
random.rand函数用于生成服从均匀分布的随机数组
random.randn函数用于生成服从正态分布的随机数组
random.randint函数用于生成指定范围的整型随机数
shape函数用于读取矩阵的维度或修改数组尺寸
1. Numpy 有什么功能
- NumPy主要的功能之一用来操作数组和矩阵。
- NumPy是科学计算、深度学习等高端领域的必备工具。 使用TensorFlow、Caffe 框架训练神经网络模型时,需要进行大量复杂的运算,可以直接调用NumPy里面的API。
- NumPy还包含了很多使用的数学函数,覆盖了很多的数学领域,比如,线性代数、傅里叶变换、随机数生成。
- NumPy可以取代–些商用的数学软件。Matlab 一个交互式环境。因此可以理解为
- Python + NumPy == Matlab
原文链接:https://blog.csdn.net/BaiJing1999/article/details/100652011
2.Numpy函数介绍:
1.使用Numpy库需要在编译式导入Numpy库
import numpy as _numpy
//导入numpy库并取别名为_numpy
2.Numpy中的维度:
Numpy中维度就是平常所说的一维(只有x轴)、二维(x、y轴)、三维(x、y、z轴)
#标量print后只有一个数字
#一维print后有一对花括号 [ ]
#二维print后有两对 [ [] ]
#三维print后有三对[ [ [] ] ]
#依次类推
3.array(接收对象,dtype = 转换后数据类型,copy = True,order = 'K',subok = False,ndmin = 0)
array函数用于将列表或元组转换为数组
- 接收对象:可为公开数组接口的任何对象,__array__方法返回数组的对象,或任何(嵌套)序列
- dtype:数组所需的数据类型。如果没有给出,那么类型将被确定为保持序列中的对象所需的最小类型
- copy:如果为true(默认值),则复制对象。否则,只有当__array__返回副本,obj是嵌套序列,或者需要副本来满足任何其他要求(dtype,顺序等)时,才会进行复制
order:指定阵列的内存布局。如果接收对象不是数组,则新创建的数组将按C顺序排列(行主要),除非指定了'F',在这种情况下,它将采用Fortran顺序(专业列)。如果object是一个数组,则以下成立。 {'K','A','C','F'},可选
subok : 如果为True,则子类将被传递,否则返回的数组将被强制为基类数组(默认)
ndmin :指定结果数组应具有的最小维数。根据需要,将根据需要预先设置形状。
返回值:满足要求的数组对象
s1 = [1,2,3,10]
#创建一维列表s1
a1 = _numpy.array(s1,dtype = int)
#将列表s1转换为数组,数据类型为int型
s2 = [[1,2,3,10]]
#创建二维列表s2
a2 = _numpy.array(s2,dtype = int)
#将列表s1转换为数组,数据类型为int型
tp = (2,4,6,9,4)
创建元组tp
a3 = _numpy.array(tp,dtype = float)
#将列表a2转换为数组,数据类型为flosr型
#s1.dtype s1.size s1.itemsize s1.ndim s1.shape
#查看数组类型 查看元素个数 查看元素大小 查看数组维度 查看数组结构
4.arange([start , ],stop[ , step ,],stype = None)
arange函数用于生成一维数组
start:代表初始值,默认从0开始
stop:代表终止值,必填参数
step:代表步长,默认为1
_numpy.arange(10)
#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
_numpy.arange(5,10)
#array([5, 6, 7, 8, 9])
_numpy.arange(5,10,2)
#array([5, 7, 9])
#以上分别省略了初始值和步长
5.linspace(start,stop,num = 50,endpoint = True,retstep = False,dtype = None,axis = 0)
linspace函数用于生成一个一维数组,其数据是一个等差数列
start:代表初始值,必填参数
stop:代表终止值,必填参数
num:代表生成数据的个数,默认为50
endpoint:代表是否包含终止值,默认为True
retstep:代表是否显示步长,默认为False
dtype:代表数据类型,默认为
axis:代表轴向,默认为0,代表沿X轴
axis=0,表示结果的行数发生变化。axis=1,表示结果的列数发生变化
_numpy.linspace(10,20,10)
#array([10. , 11.11111111, 12.22222222, 13.33333333, 14.44444444,15.55555556, 16.66666667, 17.77777778, 18.88888889, 20. ])_numpy.linspace(10,20,10,endpoint = False)
#array([10., 11., 12., 13., 14., 15., 16., 17., 18., 19.])_numpy.linspace(10,20,10,endpoint = False,retstep = True)
#(array([10., 11., 12., 13., 14., 15., 16., 17., 18., 19.]), 1.0)_numpy.linspace(10,20,10,endpoint = True,retstep = True,dtype = int)
#(array([10, 11, 12, 13, 14, 15, 16, 17, 18, 20]), 1.1111111111111112)
#最后两句代码显示的步长不同,但是数组相同。是因为dtype为int类型,所以小数强转为int类型
7.logspace(start,stop,num = 50,endpoint = True,base = 10.0,dtype = None,axis = 0)
logspace函数用于生成一个一维数组,其数据是一个等比数列
start:代表初始值,必填参数
stop:代表终止值,必填参数
num:代表生成数据的个数,默认为50
endpoint:代表是否包含终止值,默认为True
base:代表底数,默认为10.0
dtype:代表数据类型,默认为
axis:代表轴向,默认为0,代表沿X轴
_numpy.logspace(10,20,5)
#array([1.00000000e+10, 3.16227766e+12, 1.00000000e+15, 3.16227766e+17,1.00000000e+20])_numpy.logspace(10,20,5,endpoint = False)
#array([1.e+10, 1.e+12, 1.e+14, 1.e+16, 1.e+18])_numpy.logspace(10,20,5,endpoint = False,base= 100.0)
#array([1.e+20, 1.e+24, 1.e+28, 1.e+32, 1.e+36])
#底数为100_numpy.logspace(10,20,5,endpoint = True,base = 10.0,dtype = int,axis = 0)
#array([-2147483648, -2147483648, -2147483648, -2147483648, -2147483648])
#底数为10
8.zeros(shape,dtype = float,order = 'C')
zeros函数用于创建一个元素全为零的数组
- shape:代表数组尺寸,可以是数值或元组
- dtype:代表数组中的元素的数据类型,默认为float
- order:代表存储多维数组时,是列优先'F'还是行优先'C',默认为行优先
- shape代表数组尺寸,故可以使用[]或()分别代表列表或元组的尺寸
- 当shape为[]或()时,可以传入多个数值
- 如_numpy.zeros((2,2,2)),代表2个3维数组,其元素含有2行2列
- 如_numpy.zeros((2,2,2,2)),代表4个4维数组,其元素含有2行2列
- 如_numpy.zeros((2,2,2,2,2)),代表6个5维数组,其元素含有2行2列
- 总结:当传入的数值大于2时,每增加一个数值代表维度加一,而最终的数字个数由前两个数字综合确定
_numpy.zeros((2,2))
#array([[0., 0.],[0., 0.]])_numpy.zeros([2,2])
#array([[0., 0.],[0., 0.]])_numpy.zeros((2,2),dtype = int)
#array([[0, 0],[0, 0]])
#与前两个元素类型不同_numpy.zeros((3,5),dtype = int,order = 'F')
#array([[0, 0, 0, 0, 0],[0, 0, 0, 0, 0],[0, 0, 0, 0, 0]])
#目前暂时没发现列优先和行优先的区别
9.eye(N,M = None,k = 0,btype = < class 'float' >,order = 'C')
eye函数用于创建元素中一个对角线全为一的数组矩阵
- N:代表行数
- M:代表列数
- k:代表对角线元素个数,默认为0
- dtype:代表数组中元素的数据类型,默认为float
- order:代表存储多维数组时,是列优先'F'还是行优先'C',默认为行优先
- diag(v,k = 0)
- 用于创建一个维数为v的维数+1的,对角线元素全为v的数组矩阵
- v:代表对角线上的元素,可以为元组或列表,默认为0。当元素
- k:默认为0,元素位于对角线上。当k大于0时,元素v位于对角线上面。当k小于0时,元素v位于对角线的下面
_numpy.eye(3,3)
#array([[1., 0., 0.],[0., 1., 0.],[0., 0., 1.]])_numpy.eye(3,3,dtype = int)
#array([[1, 0, 0],[0, 1, 0],[0, 0, 1]])
#目前暂时没发现列优先和行优先的区别_numpy.diag([3,4,5])
#array([[3, 0, 0],[0, 4, 0],[0, 0, 5]])_numpy.diag((3,4,5),1)
array([[0, 3, 0, 0],[0, 0, 4, 0],[0, 0, 0, 5],[0, 0, 0, 0]])_numpy.diag((3,4,5),-1)
#array([[0, 0, 0, 0],[3, 0, 0, 0],[0, 4, 0, 0],[0, 0, 5, 0]])
10.onse(shape,dytpe = None,order = 'C')
onse函数用于创建元素全为1的数组
- shape:代表数组尺寸,可以是数值或元组
- dtype:代表数组中的元素的数据类型,默认为None
- order:代表存储多维数组时,是列优先'F'还是行优先'C',默认为行优先
- 函数onse有着zeros函数一样的特点,可参考zeros函数的总结,主要原因是由于shape代表的是数组尺寸
_numpy.ones((2,2))
#array([[1., 1.],[1., 1.]])_numpy.ones((2,2),dtype = int)
#array([[1, 1],[1, 1]])
#目前暂时没发现列优先和行优先的区别
11.diag(V,K=0)
diag函数用于生成对角线为列表V的数组
- V:代表一个一维数组时,结果形成一个以一维数组为对角线元素的二维数组;是一个二维数组时,结果为数组的对角线元素
- K:默认为0,可选参数。决定列表处于对角线的位置,大于零位于对角线上面,小于零则在下面
_numpy.diag(([1,2,3]))
#array([[1, 0, 0],[0, 2, 0],[0, 0, 3]])_numpy.diag(([1,2,3]),k=1)
#array([[0, 1, 0, 0],[0, 0, 2, 0],[0, 0, 0, 3],[0, 0, 0, 0]])_numpy.diag(([1,2,3]),k=-1)
#array([[0, 0, 0, 0],[1, 0, 0, 0],[0, 2, 0, 0],[0, 0, 3, 0]])
12.random.random(size = None)
random.random函数用于创建元素为size的随机数组
- size:代表数组尺寸,可以是整数或者整数的元组
_numpy.random.random(2)
#array([0.33970551, 0.03921899])
#生成一行的数组,元素为两个_numpy.random.random((1,2))
#array([[0.06720547, 0.67036122]])
#生成一行二列的二维数组
13.random.rand(value)
random.rand函数用于生成服从均匀分布的随机数组
- value:代表数组维数,可选。默认生成一个数值,而不是数组
_numpy.random.rand()
#0.9012041794305755
#生成一个数_numpy.random.rand(2)
#array([0.88723514, 0.16626263])
#生成一行的数组,元素为两个_numpy.random.rand(1,2)
#array([[0.7982949 , 0.94322369]])
#生成一行二列的二维数组
14.random.randn(value)
random.randn函数用于生成服从正态分布的随机数组
- value:代表数组维数,可选。默认生成一个数值,而不是数组
_numpy.random.randn()
#-0.04984522010821525
#生成一个数_numpy.random.randn(2)
#array([-0.15864059, -1.49100105])
#生成一行的数组,元素为两个_numpy.random.randn(1,2)
#array([[-0.09911854, -2.14864424]])
#生成一行二列的二维数组
15.random.randint(low,high = None,size = None,dtype = '1')
random.randint函数用于生成指定范围的整型随机数
- low:最小值
- high:最大值,在含有尺寸参数时可以省略。省略后默认为生成0到最小值随机数组
- size:数组的尺寸
- dtype:输出数组的格式
np.random.randint(0,high = 5)
#4
#随机生成在0到5(不包含5)的区间内的一个整数np.random.randint(3,size = 10)
#array([0, 0, 1, 0, 0, 2, 0, 2, 0, 1])
#随机生成一个元素在0到3(不包含3)的区间内的整数,且数组尺寸为10np.random.randint(0,high = 5,size = (1,2))
#array([[1, 4]])
随机生成一个元素在0到5(不包含5)的区间内的整数,且数组尺寸为一行二列
16.shape(value)
shape函数用于读取矩阵的维度或修改数组尺寸
- value:要读取的矩阵
- 使用shape函数输出维度,一维数组只输出列数,二维数组输出行数和列数,以此类推
value_A = np.array([1,2,3])
_numpy.shape(value_A)
#(3,)
#一维数组只显示列数value_B = np.array([[1,2,3]])
_numpy.shape(value_B)
#(1, 3)
#二维数组显示行数和列数value_C = np.array([[[1,2,3]]])
_numpy.shape(value_C)
#(1, 1, 3)
#二维数组显示轴,行数和列数value_D = _numpy.array(((1,2,3),(4,5,6)))
#array([[1, 2, 3],[4, 5, 6]])
#两行三列数组value_D.shape = (3,2)
#array([[1, 2],[3, 4],[5, 6]])
#修改为三行两列数组
Python数据清洗N0.2相关推荐
- 数据清洗(二):python数据清洗
python数据清洗 Pandas数据清洗流程: 1.数据的读写:read_csv.read_excel.to_csv to_excel 2.数据的探索与描述:info.head.describe.s ...
- Python数据清洗:数据框列名大小写转换
Python数据清洗:数据框列名大小写转换 Dataframe数据清洗:列名大小写转换 一行代码 Dataframe数据清洗:列名大小写转换 数据清洗:列名的大小写转换(便于merge数据框) 一行代 ...
- Python数据清洗实战案例--拉勾招聘数据清洗
Python数据清洗实战案例–拉勾招聘数据清洗 (本篇博客主要介绍个人对一份数据的清洗代码和清洗效果) 主要涉及应用的库是numpy.pandas.matplotlib,话不多说,直接上代码 #全部行 ...
- python数据清洗实战入门笔记(五)数据统计
数据清洗之数据统计 数据分组方法 练习 1.1在线杂货店订单数据 1.2 数据分组运算 聚合函数使用 练习 分组对象与apply函数 练习 透视图与交叉表 练习 数据集地址: https://pan. ...
- python数据清洗去空值_Python 数据清洗--处理Nan
import numpy as np import pandas as pd from pandas import Series,DataFrame from numpy import nan as ...
- python数据清洗小案例giao
python 数据清洗小案例giao 前言 这篇通过一个小案例 简单介绍几个python 数据清洗分析的常用方法 数据准备: 链接:https://pan.baidu.com/s/1M5xUdB1_8 ...
- python数据清洗(excel表格)
使用python数据清洗 第一步: 安装pandas模块 pip install pandas 第二步: 导入pandas模块 import pandas as pd 第三步: 读取excel表格 d ...
- python数据清洗测试题
python数据清洗测试题 https://nbviewer.jupyter.org/github/zhanghongweip7m8/python-test/blob/master/python%20 ...
- python 去除字符串的标点符号 用_7步搞定数据清洗-Python数据清洗指南
脏数据就是在物理上临时存在过,但在逻辑上不存在的数据. 数据清洗是整个数据分析过程的第一步,就像做一道菜之前需要先择菜洗菜一样. 数据分析师经常需要花费大量的时间来清洗数据或者转换格式,这个工作甚至会 ...
最新文章
- mysql try catch_C# try catch finally:异常处理
- oracle 行级死锁_ORACLE死锁的分类
- SQL里各种联合查询总结
- C++_系列自学课程_第_9_课_C语言风格字符串_《C++ Primer 第四版》
- RRID和CAS是什么?
- 推荐算法炼丹笔记:阿里序列化推荐算法ComiRec
- POJ 2823-Sliding Window单调队列解题报告
- Chess Queen【数学】
- (原)caffe在ubuntu中设置GPU的ID号及使用多个GPU
- UIWebView关于XMLHttpRequest的内存泄漏
- c++中vector的学习
- 【a701】旅行家的预算
- linux 信号阻塞和信号未决
- 2022年信息安全工程师上午真题及答案解析
- WinCC V7.4 过程值归档概述及流程演示
- linux 版本号 笔记本_Linux版ThinkPad笔记本正式亮相(图)
- 互联网3D数字化时代,3D产品展示开启新商机
- 七年级计算机教案模板范文,七年级信息技术论文大纲模板 七年级信息技术论文提纲怎样写...
- 有这样一个可爱的菇凉,叫TokenClub!
- MacBook M1配置Clion