numpy、pandas、matplotlib、sklearn是python机器学习领域,最核心的几个模块,玩转了这几个模块也就玩转了机器学习,其中,numpy又是这几个模块中最基础的模块。

内置数据结构——ndarray

一、创建ndarray:

1、基于list或tuple

2、基于np.arange:

3、基于np.arange和reshape构建多维数组:

4、基于random构建随机数组:

(1)numpy.random.rand(d0,d1,…,dn)

  • rand 函数根据给定维度生成 [0,1) 之间的数据,包含 0,不包含 1

  • dn 表格每个维度

  • 返回值为指定维度的 array

(2)numpy.random.randn(d0,d1,…,dn)
• randn 函数返回一个或一组样本,具有标准正态分布。
• dn 表格每个维度
• 返回值为指定维度的 array

(3)numpy.random.randint(low, high=None, size=None, dtype=“l”)

• 返回随机整数,范围区间为 [low,high),包含 low,不包含 high
• 参数:low 为最小值, high 为最大值, size 为数组维度大小, dtype 为数据类型,默认的数据类型是 np.int
• high 没有填写时,默认生成随机数的范围是 [0, low)

(4)生成 [0,1) 之间的浮点数

• numpy.random.random_sample(size=None)
• numpy.random.random(size=None)
• numpy.random.ranf(size=None)
• numpy.random.sample(size=None)

(5)numpy.random.choice(a, size=None, replace=True, p=None)

• 从给定的一维数组中生成随机数
• 参数:a 为一维数组类似数据或整数;size 为数组维度;p 为数组中的数据出现的概率
• a 为整数时,对应的一维数组为 np.arange(a)

(6)numpy.random.seed()

• np.random.seed() 的作用:使得随机数据可预测。
• 当我们设置相同的 seed,每次生成的随机数相同。如果不设置 seed,则每次会生成不同的随机数

其他方法:

二、ndarray的属性:

1、dtype 属性, ndarray 数组的数据类型,数据类型的种类

2、ndim 属性,数组维度的数量

3、shape 属性,数组对象的尺度,对于矩阵,即 n 行 m 列,shape 是一个元组(tuple)

4、size 属性用来保存元素的数量,相当于 shape 中 n*m 的值

5、itemsize 属性返回数组中各个元素所占用的字节数大小

6、nbytes 属性,数组所需的字节数量,其值等于数组的 size 属性值乘以itemsize 属性值

7、T 属性,数组转置

8、数的实部和虚部属性, real 和 imag 属性

9、flat 属性,返回一个 numpy.flatiter 对象,即可迭代的对象

三、ndarray的数值类型

  • 数据类型

  • 类型转换

    1、创建时指定类型

    2、使用astype强制转换类型

    四、ndarray的形状变化:

    1、数组形状转换

    • reshape() 和 resize()

    函数 resize()的作用跟 reshape()类似,但是会改变所作用的数组,相当于有 inplace=True 的效果• ravel() 和 flatten(),将多维数组转换成一维数组

两者的区别在于返回拷贝(copy)还是返回视图(view) , flatten() 返回一份拷贝,需要分配新的内存空间,对拷贝所做的修改不会影响原始矩阵,而 ravel() 返回的是视图(view),会影响原始矩阵

• 用 tuple 指定数组的形状

• 转置
前面描述了数组转置的属性(T),也可以通过 transpose() 函数来实现

2、数组堆叠

• 水平叠加 :hstack()\column_stack()

• 垂直叠加 :vstack()\row_stack()

• concatenate() 方法,通过设置 axis 的值来设置叠加方向
axis=1 时,沿水平方向叠加
axis=0 时,沿垂直方向叠加

3、数组拆分

跟数组的叠加类似,数组的拆分可以分为横向拆分、纵向拆分以及深度拆分。涉及的函数为 hsplit()、 vsplit()、以及 split()

• 沿横向轴拆分(axis=1)

• 沿纵向轴拆分(axis=0)

五、数组切片与索引

• 一维数组切片与索引与列表类似

• 二维数组的切片和索引

• 高维数组的切片和索引 递归读取各个索引位置

利用数组进行数据分析

一、通用函数:快速的元素级数组函数

二、常用统计函数

常用的函数如下, 请注意函数在使用时需要指定 axis 轴的方向,若不指定,默认统计整个数组。• np.sum(),返回求和
• np.mean(),返回均值
• np.max(),返回最大值
• np.min(),返回最小值
• np.ptp(),数组沿指定轴返回最大值减去最小值,即(max-min)
• np.std(),返回标准偏差(standard deviation)
• np.var(),返回方差(variance)
• np.cumsum(),返回累加值
• np.cumprod(),返回累乘积值

三、利用数据进行数据分析

• 数组的广播,数组直接参与数据运算

当数组跟一个标量进行数学运算时,标量需要根据数组的形状进行扩展,然后执行运算。这个扩展的过程称为“广播(broadcasting)”

• 将条件逻辑表述为数组运算

numpy.where是三元表达式x if condition else y的矢量化

• 用于布尔型数组的方法

arr.any():数组中存在一个或多个true,返回true

arr.all():只有数组元素全部是true才返回true

数组排序

np.sort()

唯一化以及其他的集合逻辑

•文件输入输出

•线性代数

numpy.linalg 如:矩阵乘法、矩阵分解、行列式及其他方阵等

numpy randn 和_人生苦短,自学python——numpy模块相关推荐

  1. numpy 矩阵乘法_一起学习Python常用模块——numpy

    关注微信公众号:一个数据人的自留地 作者介绍 知乎@王多鱼 百度的一名推荐算法攻城狮. 主要负责商品推荐的召回和排序模型的优化工作. 1 前言 Python在数据科学.机器学习.AI领等域中占据主导地 ...

  2. python二维元素向量_详解python Numpy中求向量和矩阵的范数

    在python Numpy中求向量和矩阵的范数实例 np.linalg.norm(求范数):linalg=linear(线性)+algebra(代数),norm则表示范数. 函数参数 x_norm=n ...

  3. matlab error函数_深度对比Python(Numpy,Scipy)与Matlab的数值精度

    CSDN原文:https://blog.csdn.net/cauchy7203/article/details/107785295 Matlab一度被认为是最专业的数值计算工具之一,相信许多同学都或多 ...

  4. python如何调用c++numpy.ndarray代码_从C++到Numpy ndarray的转换非常简单

    我使用Boost Python来计算程序的计算密集型部分,它工作得很好,除了将数组从C++传递到Python,反之亦然也很慢,这是程序整体效率的限制因素.在 这里有一个例子来说明我的观点.在C++侧, ...

  5. 文科生自学python要多久_怎么自学python,大概要多久?

    都让开!本人文科生,自学Python 2年半,作为一个曾经完全0基础,啥都不懂纯靠自学学会python的文科生,有一些不成熟的小建议可以分享一下. 首先不要觉着编程难,只要你认识26个英文字母,有一点 ...

  6. numpy 数组抽取_清晰易懂的Numpy入门教程

    原标题:清晰易懂的Numpy入门教程 翻译 | 石头 来源 | Machine Learning Plus Numpy是python语言中最基础和最强大的科学计算和数据处理的工具包,如数据分析工具pa ...

  7. python一般要学几年_怎么自学python,大概要多久?

    都让开!本人文科生,自学Python 2年半,作为一个曾经完全0基础,啥都不懂纯靠自学学会python的文科生,有一些不成熟的小建议可以分享一下. 首先不要觉着编程难,只要你认识26个英文字母,有一点 ...

  8. numpy维度交换_数据分析-gt;基本操作numpy(1)

    1.Numpy介绍与安装 Numpy是什么? Numpy(Numerical Python)是目前Python数值计算中最为重要的基础包.大多数计算包都提供了基于Numpy的科学函数功能,将Numpy ...

  9. python基础语法花多长时间_怎么自学python,大概要多久?

    2020年最后一天,还有一个多小时就是2021年了,先祝愿大家2021年都能够健康平安发大财! 自学Python的方法因人而异,而大概需要多久就更是各说各话了,但是自学Python的路径都是一致的:先 ...

最新文章

  1. 在汇编程序中调用C语言的库函数,h转inc
  2. LeetCode Regular Expression Matching
  3. Golang之变量去哪儿
  4. linux集群系列(4) --- LVS之负载均衡集群 --- 持久连接
  5. SpringBoot 配置多数据源
  6. Java基础知识——Java集合详解
  7. JAVA 多线程学习总结
  8. jsmy97时间控件,时间范围选择
  9. 论文阅读:Audio-Driven Emotional Video Portraits
  10. 图扑软件携手华为云再创合作共赢新局面
  11. 人机交互课后习题——感知和认知基础
  12. raspberry OS buster InRelease: The following signatures couldn‘t be verified
  13. uni-app 地图拖拽后,回到我的位置
  14. Windows 10 应用创建模糊背景窗口的三种方法
  15. 打开outlook显示服务器内存不足,outlook无法启动,总说计算机内存不足或磁盘已满,是怎么回事?...
  16. 微信公众号 - 实现 H5 网页在微信内置浏览器中下载文件,可预览和下载 office 文件(doc / xls / ppt / pdf 等)适用于任何前端技术栈网站,兼容安卓和苹果系统!
  17. 解除excel工作表密码保护方法
  18. 视频压缩编码和音频压缩编码基本原理
  19. 什么是RPC?RPC与Stub简述
  20. 台式计算机各种接口的名称,值得收藏的电脑接口大全(图文版)

热门文章

  1. Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(4) - 数据传输指令
  2. Intel开发文档导读
  3. C#下实现的K-Means优化[1]-「离群点检测」
  4. 三维旋转四元数系列(0.复数基本介绍)
  5. python附件发送到邮箱里_使用python将最新的测试报告以附件的形式发到指定邮箱...
  6. Twemproxy调研总结
  7. ajax 解析数组集合,ajax怎样解析json数组并用模板引擎渲染
  8. linux导出表数据dmp,导出表的部分数据到dmp文件中
  9. c++怎么将两个类的方法集合成一个类的方法_一文帮你梳理 Java 集合
  10. APP Profiler