Python数据清洗工具之Numpy的基本操作
作者:行秋即离 发布时间:2023-08-31 02:39:10
1. Numpy(Numberical Python)
Anaconda中已经集成了NumPy,可以直接使用。如果想要自行安装的话,可以使用流行的Python
包安装程序 pip 来安装 NumPy,目前使用的是Anaconde的环境进行学习和使用这个库
1.1 这库的安装方法
CMD :pip install numpy
或者使用清华源的镜像库:pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
(直接复制可用)
如果想查看这个库的版本:
import numpy as np
np.__version__
其实很多其他库也可以用这个方法进行查看库的版本
2.Numpy的基础操作
Numpy的操作对象是一个ndarray,所以在使用这个库进行计算的时候需要将数据进行转化
2.1 数组的创建:np.arrary()
np.array 可以把 list,tuple或者其他的序列模式的数据转创建为 ndarray,默认创建一个新的
ndarray
我们会发现原来数据里面有int, float型的数据都被转换成相同的类型了,统一转变成float型的数据了,因为Numpy是要求array里面的数据类型是一致的
2.2 N维数组的创建
Numpy不仅可以生成一维数组,也可以生成多维数组。
比如,可以生成如下的二维数组:
2.3 常用数组
2.4 线性数组的生成
2.5 数组的运算
数组的运算时对应位置的元素进行简单的四则运算
这里需要注意的是,数组x和数组y的元素个数是相同的(两者均是元素个数为3的一维数组)
当两者元素个数相同时,可以对各个元素进行算术运算。如果元素个数不同,则会报错,所以保
持元素个数一致非常重要。
此外,Numpy数组不仅可以进行对应元素的算术运算,还可以和单一的数值(标量)组合起来进
行运算(这个功能也被称为广播,后面会详细介绍),比如:
会把数据转成数组默认的float的数据类型
2.6 数组的形状变换
我们先定义一个数组
如果数组的量级比较大,对于计算的时候只知道其他的一个维度数字,则可以使用下面的-1,作为占位符,会自动帮你补齐另外一个维度的信息
除此之外,还有一种比较常用的数组拉平方法, m.flatten()以及m.ravel(),这两种方法类似
3. 数组的索引
可以将这个二维的数组看成一个矩阵,3行四列, 通过数字的下标索引进行提取数字,这里的切片操作还是左闭右开的
4.广播功能
术语广播是指 NumPy 在算术运算期间处理不同形状的数组的能力。
广播可以简单理解为用于不同大小数组的计算(加、减、乘、除等)的一组规则。
如果数组的形状相同,则对相应元素逐个计算,但是如果数组的维度不相同,就需要用到广播机制
Numpy的广播遵循一组严格的规则:
规则1:如果两个数组的维度数不相同,那么小维度数组的形状将会在最左边补1规则2:如果两个数组的形状在任何一个维度上都不匹配,那么数组的形状会沿着维度为1的维度扩展以匹配另外一个数组的形状规则3:如果两个数组的形状在任何一个维度上都不匹配并且没有任何一个维度为1,则会引 发异常无法广播
来源:https://blog.csdn.net/Kobe123brant/article/details/115974441


猜你喜欢
- 常见的一种应用场景:条件:假设A的shape为[4, 2],B的shape为[5, 2]目的:实现A中的每一行, 减去B中的所有行(broa
- 【原文地址】Tip/Trick: Url Rewriting with ASP.NET 【原文发表日期】 Monday, February
- 本文我们以一个登录例子来说明Flask对 post请求的处理机制。1、创建应用目录,如mkdir examplecd example2、在应
- 可以用两种方式创建MySQL账户:1.使用GRANT语句2.直接操作MySQL授权表最好的方法是使用GRANT语句,因为这样更精确,错误少。
- 经常有需要扫描目录,对文件做批量处理的需求,所以对目录处理这块做了下学习和总结。Python 中扫描目录有两种方法:os.listdir 和
- 对于python语言的True和False我们并不陌生了,在学习的过程中常会遇到这样的返回值,那么True真和False假的具体含义是什么?
- 在安装数据库的时候出现了如下错误:解决办法如下:1.在bin目录下 输入:kill -s 9 9907 再输入:ps
- 一、爬虫的流程开始学习爬虫,我们必须了解爬虫的流程框架。在我看来爬虫的流程大概就是三步,即不论我们爬取的是什么数据,总是可以把爬虫的流程归纳
- CAS单点登录主要是为了解决主系统和子系统的统一登录问题,能够做到任意一个子系统登录成功后,再登录其他子系统后不再需要认证,让用户不用重复地
- 首先要解释一下:“极致之美”不是说月儿的这篇文章,因为本人还没有自大到这种程度:P,它形容的是Lisp和javascript结合的优美形态。
- 让我们面对现实吧,你的模型可能还停留在石器时代。我敢打赌你仍然使用32位精度或GASP甚至只在一个GPU上训练。我明白,网上都是各种神经网络
- 在开发过程中经常碰到在本地环境无法完成联调测试的情况,必须到统一的联机环境对接其他系统测试。往往是出现了BUG难以查找数据记录及时定位到错误
- SQL Server有几个版本都在使用中——4.2, 6.0, 6.5, 7.0, 2000,以及2
- 本文给出了几个表单常用的js验证函数,有检查、\等特殊字符的,有检查是否含有空格,检查是否为Email 地址,也有检查是否是小数或负数的,检
- Ruby中有一个很方便的Struct类,用来实现结构体。这样就不用费力的去定义一个完整的类来仅仅用作访问属性。class Dog <
- 一、功能这里的需求是,判断摄像头有没有被物体遮挡。这里只考虑用手遮挡---->判断黑色颜色的范围。二、使用OpenCV的Mat格式图片
- 本文实例讲述了php的RSA加密解密算法原理与用法。分享给大家供大家参考,具体如下:最近因为工作的需要,要倒腾支付宝支付相关的知识,因为支付
- 前言让我的电脑认识我,我的电脑只有认识我,才配称之为我的电脑!今天,我们用Python实现简单的人脸识别技术!Python里,简单的人脸识别
- 一、我为什么要写这篇好兄弟们,妹子要少看,技能要多学,每天一个小技巧,撩妹手段少不了~昨天有人问我怎么批量修改文件名,然后我随便写了一种,他
- 用Python实现出来的机器学习算法都是什么样子呢? 前两期线性回归及逻辑回归项目已发布(见文末链接),今天来讲讲BP神经网络。BP神经网络