• 考试中心
  • CDA网校
  • CDA社区
    CDA竞赛 CDA技术答疑 CDA会员
  • CDA产品
    大数据与人工智能实验室 好学AI(下一代智能学习产品) CDA网校 CAIE人工智能工程师认证
  • 联系我们
热线电话:13121318867

  • 首页
  • 课程中心
    就业邦:
    CDA数据分析周末就业班2025 CDA数据分析脱产就业班2025 CDA敏捷算法建模周末班
    职业技能:
    CDA 业务数据分析 LEVEL Ⅰ 实操班 CDA 商业策略分析 LEVEL Ⅱ 集训营 CDA 机器学习与深度学习 LEVEL Ⅲ 集训营
  • 资讯
  • 动态
  • 认证考试
  • 企业内训
登录
热搜话题:
ai长文生成
Scikit-learn
Python
大数据
数据分析师
统计学
微积分
线性代数
Excel
Power BI
R语言
SPSS
Mysql
快速发帖
我要提问
于家崎
2020-08-10 阅读量: 1094
数据分析Python——Numpy(1)

Numpy

Numpy 是 Python 的一个科学计算包,包含了多维数组以及多维数组的操作。

Numpy 的核心是 ndarray 对象,这个对象封装了同质数据类型的n维数组。起名 ndarray 的原因就是因为是 n-dimension-array 的简写。

ndaarray:只能有一种数据类型,而且每个元素占用内存空间大小相同。

import numpy as np 加载numpy包

Numpy 常见的基本数据类型如下:

数据类型描述
bool_布尔(True或False),存储为一个字节
int_默认整数类型(与C long相同;通常为int64或int32)
intc与C int(通常为int32或int64)相同
intp用于索引的整数(与C ssize_t相同;通常为int32或int64)
int8字节(-128到127)
int16整数(-32768到32767)
int32整数(-2147483648至2147483647)
int64整数(-9223372036854775808至9223372036854775807)
uint8无符号整数(0到255)
uint16无符号整数(0到65535)
uint32无符号整数(0至4294967295)
uint64无符号整数(0至18446744073709551615)
float_float64的简写。
float16半精度浮点:符号位,5位指数,10位尾数
float32单精度浮点:符号位,8位指数,23位尾数
float64双精度浮点:符号位,11位指数,52位尾数
objectPython对象,放什么都可以

NumPy 要求数组必须包含同一类型的数据。如果类型不匹配,NumPy 将会向上转换(包含范围越大,在上层)

强制类型用dtype参数:np.array([3.14, 4, 2, 4], dtype='int64')

类型转换,请使用.astype()方法(首选)或类型本身作为函数。

ndarray 与 python 原生 array 有什么区别

NumPy 数组在创建时有固定的大小,不同于Python列表(可以动态增长)。更改ndarray的大小将创建一个新的数组并删除原始数据。

NumPy 数组中的元素都需要具有相同的数据类型,因此在存储器中将具有相同的大小。数组的元素如果也是数组(可以是 Python 的原生 array,也可以是 ndarray)的情况下,则构成了多维数组。

NumPy 数组便于对大量数据进行高级数学和其他类型的操作。通常,这样的操作比使用Python的内置序列可能更有效和更少的代码执行。

越来越多的科学和数学的基于Python的包使用NumPy数组,所以需要学会 Numpy 的使用。

Numpy 的矢量化(向量化)功能优点:

矢量化代码更简洁易读

更少的代码行通常意味着更少的错误该代码

更接近地类似于标准数学符号(使得更容易,通常,以正确地编码数学构造)

矢量化导致更多的“Pythonic”代码。如果没有向量化,我们的代码将会效率很低,难以读取for循环。


创建常用的数组:

创建一个全0数组:zeros();np.zeros_like(a) #按照a的形状,创建一个形状一样的0数组

创建全1数组:ones()

单位矩阵:eye()

对角矩阵:diag()

设定具体值:full()

设置空值和无穷大:np.nan;np.inf,有一点要尤其注意的是: np.nan, np.inf 都是浮点类型,结合ndarray中的数据类型必须是相同的, 也就是说数组中如何有一个数据是空值,那么所有的数据都只能是浮点型。


随机数组:

np.random.randint(1, 10, (3, 6)) --随机生成1到10的3行6列数组

正态分布随机数

np.random.uniform() --均匀分布, 在这个区间范围之内, 任一点出现概率相同

np.random.randn() --标准正态分布

np.random.normal(4, 2, (10, 3)) # 均值, 标准差, 形状 --正态分布

np.random.standard_t(3, (3, 3)) --t分布

np.random.f(1, 2, (3, 3)) --F分布

np.random.chisquare(1, (3, 3)) --卡方分布

np.random.binomial(10, 0.5, 20) --二项分布

设置随机数种子

np.random.seed(100)

np.random.randint(10, size=(3, 3))

创建一个线性序列的数组

arange([start,] stop[, step,]):特点: 可以设置开始位置,终止位置和步长,但产生数字的数量不方便控制

np.linspace(开始位置, 终止位置, 产生数量):特点: 可以设置开始位置和终止位置以及产生数量,但不方便控制步长

nddaray常用属性

查看数据形状:shape

查看维度:ndim

查看数组元素个数:size

查看类型:dtype


副本和视图

QQ图片20200810153155.jpg


数组的变形

数组的变形也是一类非常有用的操作。数组变形最灵活的实现方式是通过 reshape() 函数来实现。

请注意,如果希望该方法可行,那么原始数组的大小必须和变形后数组 的大小一致。如果满足这个条件,reshape 方法将会用到原始数组的一 个非副本视图。

技巧:在使用 reshape 时,可以将其中的一个维度指定为 -1,Numpy 会自动计算出它的真实值

拉伸成一维数组(数组的平铺):ravel()

转置 交换行和列:.T

数组的拼接:concatenatetenate()

数据的分裂:


将一个数组分成几个较小的数组

既然可以将多个数组进行对堆叠,自然也可以将一个数组拆分成多个小数组。

使用split,可以指定均匀切割成几份,也可以指定沿着哪个位置进行切割, 还可以指定沿着哪个轴进行切割.

np.split(ary, indices_or_sections, axis=0)


广播机制

Numpy 可以转换这些形状不同的数组,使它们都具有相同的大小,然后再对它们进行运算。

Numpy运算


常用函数

add(x1,x2 [,out])按元素添加参数,等效于 x1 + x2
subtract(x1,x2 [,out])按元素方式减去参数,等效于x1 - x2
multiply(x1,x2 [,out])逐元素乘法参数,等效于x1 * x2
divide(x1,x2 [,out])逐元素除以参数,等效于x1 / x2
exp(x [,out])计算输入数组中所有元素的指数。
exp2(x [,out])对于输入数组中的所有p,计算2 ** p。
log(x [,out])自然对数,逐元素。
log2(x [,out])x的基础2对数。
log10(x [,out])以元素为单位返回输入数组的基数10的对数。
expm1(x [,out])对数组中的所有元素计算exp(x) - 1
log1p(x [,out])返回一个加自然对数的输入数组,元素。
sqrt(x [,out])按元素方式返回数组的正平方根。
square(x [,out])返回输入的元素平方。
sin(x [,out])三角正弦。
cos(x [,out])元素余弦。
tan(x [,out])逐元素计算切线。

规约函数(统计运算)


ndarray.sum([axis,dtype,out,keepdims])返回给定轴上的数组元素的总和。
ndarray.cumsum([axis,dtype,out])返回沿给定轴的元素的累积和。
ndarray.mean([axis,dtype,out,keepdims])返回沿给定轴的数组元素的平均值。
ndarray.var([axis,dtype,out,ddof,keepdims])沿给定轴返回数组元素的方差。
ndarray.std([axis,dtype,out,ddof,keepdims])返回给定轴上的数组元素的标准偏差。
ndarray.argmax([axis,out])沿着给定轴的最大值的返回索引。
ndarray.min([axis,out,keepdims])沿给定轴返回最小值。
ndarray.argmin([axis,out])沿着给定轴的最小值的返回索引。








34.2874
3
2
关注作者
收藏
评论(0)

发表评论

暂无数据
CDA考试动态
考试介绍
考试大纲
考试内容
考试地点
CDA报考指南
报考流程
考试时间
报名费用
联系我们
热门栏目
考试动态
报考指南
复习备考
职业发展
直播公开课
经验分享
推荐帖子
于家崎
2020-08-10
2条评论
数据分析Python——Numpy(1)
NumpyNumpy 是 Python 的一个科学计算包,包含了多维数组以及多维数组的操作。Numpy 的核心是 ndarray 对象,这个对象封装了同质数据类型的n维数组。起名 ndarray 的原因就是因为是 n-dimension-array 的简写。ndaarray:只能有一种数据类型,而且每个元素占用内存空间大小相同。import numpy as np 加载numpy包Numpy 常见
Copyright © 2015-2020, www.pinggu.com All Rights Reserved. CDA数据分析师(北京国富如荷网络科技有限公司) 版权所有 京ICP备18052299号-1