Numpy 的核心是 ndarray 对象,包含了多维数组以及多维数组的操作;

一、ndarray

1、构建ndarray

np.array(object, dtype=None)object:转换的数据dtype:数据元素的数据类型(int、float等)
import numpy as np
#全部行都能输出
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

2、数据类型

2.1、查看数据类型

2.2、基本数据类型

2.3、向上转换规则

NumPy 数组必须包含同一类型的数据。如果类型不匹配,NumPy 将会向上转换(如果可行)。

确保数据完整性:整数->小数->字符串

2.4、指定类型创建

字符型转化为数值型,将报错;

2.5、类型转换

  • 第一种方式: ndarray.astype("数据类型名")
  • 第二种方式: ndarray.astype(np.数据类型名)

3、Numpy 的矢量化(向量化)功能

二、常用数组

1、全0数组

np.zeros(shape,dtype)/np.zeros_like(a)

2、全1数组

np.ones(shape, dtype)/np.ones_like(a)

3、全n数组

np.full(shape, full_value)/np.full_like(a, full_value))

4、单位数组

np.eye(n,m,k)

n行数,m列数,k偏移量

返回一个二维数组,其中对角线为1,零点为零的二维数组

5、空值和无群大

np.nan、np.inf 都是浮点类型;

数组中如何有一个数据是空值,那么所有的数据都只能是浮点型;

6、随机数组

6.1、随机整数数组

6.2、随机小数数组

返回在区间[0,1)范围中的随机浮点数

6.3、正态分布

a、标准正态分布:

b、正态分布: 

  • np.random.normal(loc,scale,size)
  • loc为均值,scale为标准差,size为数组形状
  • 如果平均值和标准差为0和1,或者不写这两个参数,就等同于np.random.randn()

7、随机种子

np.random.seed(Num)可以设置一组种子值,确保每次程序执行都可以生成同样的随机数组。

8、线性序列

8.1、np.arange()

创建一个线性序列数组,给定间隔内返回均匀间隔的值,可以设置开始位置,终止位置和步长。

8.2、np.linspace()

创建一个线性序列数组,给定间隔内返回均匀间隔的值,设置开始位置和终止位置以及产生数量。

三、nddaray常用属性

  • 查看数组形状:a.shape
  • 查看维度:a.nidm
  • 查看数组元素个数:a.size
  • 查看元素字节大小:a.itemsize

四、数组的切片和索引

4.1、多维数组的索引

4.2、修改某一个元素的值

ndarry的形状无法修改,个数固定了,所以长度必须对应;
列表也可以通过索引来修改数据,但是长度不用固定;

五、深拷贝&浅拷贝

1、浅拷贝

浅拷贝:指向同一块内存,修改其中任何一个数组,都修改了原内存;

1.1、直接赋值

1.2、切片情况

1.3、使用view创建一个视图(浅复制)

2、深拷贝

深拷贝:创建新的内存,与原内存可单独修改;

方法:a.copy()

六、数组的操作

1、数组的变形

1.1、reshape

元素个数不变,返回新数组,不会对原数组做改变;

1.2、resize

元素个数可变,在原数组基础上做改变;

1.3、ravel

返回新数组;

1.4、转置

返回新数组

2、数组的拼接

  • concatenate((a1, a2, ...), axis)
  • axis指定沿着哪个轴进行拼接,默认0轴
  • 0轴拼接保列数相同(行拼接),1轴拼接保行数相同(列拼接)

3、数组的拆分

np.split(arr,indices_or_sections,axis)

  • indices_or_sections:int或1-D数组。
  • 如果indices_or_sections是一个整数N,则数组将被分割沿着'轴'进入N个相等的数组。
  • 如果indices_or_sections是排序整数的1-D数组,则为条目指示数组被分割的“轴”的位置。
  • 如果索引超过沿“轴”的数组维度,相应地返回一个空的子数组。

七、广播机制

  • 规则1:如果两个数组形状中,只有其中一个维度相同,另一个维度不一致,但是其中一个数组有维度为1,则可以补齐
  • 规则2:如果两个数组的形状在任何一个维度都不匹配,但两个数组都有其中以维度为1,则数组的形状会沿着维度为1的维度扩展,以匹配另外一个数组形状。
  • 规则3:如果两个数组的形状在任何一个维度上都不匹配,并且没有任何一个维度等于1,会广播错误。

八、numpy的运算

Numpy 中数组上的算术运算符使用元素级别。最后的结果使用新的一个数组来返回。

1、基本运算

如果需要修改现有数组,而不是创建新数组,应该使用等号进行赋值。

2、常用函数

3、规约函数

4、Numpy的快速排序

4.1、np.sort()

4.2、np.argsort()

返回将对此数组进行排序的索引。

数据清洗:Numpy相关推荐

  1. Python 数据分析之 Numpy (二)

    作者:小蜗牛爱学习 来源:https://blog.csdn.net/qq_42755939/article/details/107032142 一.Numpy读取文件 loadtxt()方法 num ...

  2. 数据工程师需要掌握的 18 个 Python 库

    作者 | 刘早起早起 责编 | 屠敏 本文对Python中在数据分析中需要掌握的库进行了整理,一起来看看吧! 目录 数据获取 Selenium Scrapy Beautiful Soup 数据清洗 S ...

  3. 数据工程师需要掌握的18个python库

    本文对python中在数据分析中需要掌握的库进行了整理,一起来看看吧! 目录 数据获取 Selenium Scrapy Beautiful Soup 数据清洗 Spacy NumPy Pandas 数 ...

  4. 大数据清洗1(numpy之Ndarray对象)

    numpy之Ndarray对象 一.了解数据清洗 二.了解numpy库 1. 发展: 2. 安装: 3. 特性 三.NumPy-Ndarray对象 三.数组的属性 1.了解 2.数组的属性 四.Num ...

  5. 数据清洗常用工具之Numpy

    数据清洗常用工具之Numpy 目前在 Python 中,numpy 和 pandas 是最主流的工具 Numpy 中的向量化运算使得数据处理变得高效 Pandas 提供了大量数据清洗的高效方法 在Py ...

  6. python数据清洗工具、方法、过程整理归纳(一、数据清洗之常用工具——numpy,pandas)

    文章目录 1 背景 2 常用工具 2.1 numpy 2.2 pandas 1 背景 数据清洗是整个数据分析过程的第一步,也是整个数据分析项目中最耗费时间的一步: 数据分析的过程决定了数据分析的准确性 ...

  7. 【Python数据清洗】numpy.take()用法

    numpy.take()用法 学了Python很长时间了但是一直没有去研究take的使用方法 今天周末加班研究一下 写一个简单的笔记,基本上都是借鉴别人的 其旨在根据提供的索引值将元素形成数组输出,如 ...

  8. 数据科学必备Pandas、NumPy进行数据清洗方法详解

    作为征战多年数据科学领域的小伙伴都很清楚,获取和清理数据的初始步骤会占据工作的 80%,花费大量时间来清理数据集并归结为可以使用的形式. 因此如果是刚刚踏入这个领域或计划踏入这个领域,重要的是能够处理 ...

  9. Python数据挖掘:数据探索,数据清洗,异常值处理

    来源:天善智能韦玮老师 课堂笔记 作者:Dust 探索性数据分析Exploratory Data Analysis,EDA 数据探索的核心是︰ 1.数据质量分析(跟数据清洗密切联系) 2.数据特征分析 ...

最新文章

  1. linux命令作为子进程标记,Linux基础命令---显示进程ps
  2. 基于SpringBoot和Vue的分布式爬虫系统(JavaWeb)
  3. 〖前端开发〗HTML/CSS基础知识学习笔记
  4. 图的广度优先算法+遍历
  5. 关键词分词工具_快图制作工具 | 如何制作词云图?
  6. 随机邮箱_msgsafe - 一个处于半死不活状态的加密邮箱
  7. 反序列化时恢复transient字段
  8. 软考信息系统项目管理师2021_信息化与信息系统_项目管理阶段_方法_网络协议---软考高级之信息系统项目管理师003
  9. 搭建无人值守安装服务器
  10. atitit.短信 验证码  破解  v3 p34  识别 绕过 系统方案规划----业务相关方案 手机验证码  .doc
  11. 解决安卓中页脚被输入法顶起的问题
  12. 联想笔记本计算机在哪里找不到,联想笔记本电脑找不到WLAN怎么解决
  13. 深入学习理解UNIX网络编程
  14. C#学习笔记8 事件
  15. MySQL数据库+jdbc -- 笔记
  16. SpringBoot+Beetlsql代码生成
  17. YOLOV5使用过程中可能出现的问题及解决方法
  18. 《山海经》第一卷(南山经)南山一经
  19. 安卓桌面软件哪个好_桌面美化软件,你在用哪个?这个不用会后悔的!强烈推荐...
  20. 计算机网络安全技术复习知识点总结

热门文章

  1. C语言不定参数的作用,分享:C语言的三种不定参数,省略号用法
  2. 基于DeepStream的视频结构化解决方案
  3. CCF C³@阿里巴巴淘系:内容化驱动的互联网新周期
  4. 吴恩达深度学习L2W1总结
  5. 基于comsol软件弯曲单模光纤模拟仿真
  6. java电影票选座_Android自定义view实现电影票在线选座功能
  7. 百度适配代码【移动搜索】如何让百度正确识别跳转适配关系
  8. RK3399平台开发系列讲解(SPI子系统)4.32、SPI通信过程介绍
  9. Linux 安装并配置 OpenLDAP 新编(1)快速入门指南
  10. 科学家研发出新型金属有机框架材料,不仅能滤海水中的盐还可提取金属离子...