数据科学库之——numpy

本节主要讲解的是numpy的使用。

文章目录

      • 什么是numpy
      • numpy创建数组(矩阵)
      • numpy中常见的更多数据类型
      • 数据类型的操作
      • 数组的形状
      • 数组和数的计算
      • 数组和数组的计算
      • 一维二维三维数组
      • numpy读取数据
      • numpy中数值的修改
      • numpy中布尔索引
      • numpy中三元运算符
      • numpy中的clip(裁剪)
      • numpy中的nan和inf
      • numpy中的nan的注意点
      • numpy中常用统计函数
      • 数组的拼接
      • numpy生成随机数
      • numpy的注意点copy和view

什么是numpy

一个在Python中做科学计算的基础库,重在数值计算,也是大部分PYTHON科学计算库的基础库,多用于在大型、多维数组上执行数值运算。

numpy创建数组(矩阵)

数据科学库之——numpy_第1张图片

numpy中常见的更多数据类型

数据科学库之——numpy_第2张图片

数据类型的操作

数据科学库之——numpy_第3张图片

数组的形状

数据科学库之——numpy_第4张图片
数据科学库之——numpy_第5张图片

数组和数的计算

数据科学库之——numpy_第6张图片

数组和数组的计算

数据科学库之——numpy_第7张图片
数据科学库之——numpy_第8张图片
数据科学库之——numpy_第9张图片
数据科学库之——numpy_第10张图片
在这里插入图片描述

一维二维三维数组

什么叫三维数组,是一个 3*n的矩阵吗?
不!当然不是。
在numpy中可以理解为方向,使用0,1,2…数字表示,对于一个一维数组,只有一个0轴,对于2维数组(shape(2,2)),有0轴和1轴,对于三维数组(shape(2,2, 3)),有0,1,2轴

有了轴的概念之后,我们计算会更加方便,比如计算一个2维数组的平均值,必须指定是计算哪个方向上面的数字的平均值

那么问题来了:
在前面的知识,轴在哪里?
回顾np.arange(0,10).reshape((2,5)),reshpe中2表示0轴长度(包含数据的条数)为2,1轴长度为5,2X5一共10个数据

数据科学库之——numpy_第11张图片
数据科学库之——numpy_第12张图片
可见3n的矩阵是一个二维数组,三维数组有可能指的是n个nn的矩阵的集合。

numpy读取数据

CSV:Comma-Separated Value,逗号分隔值文件
显示:表格状态
源文件:换行和逗号分隔行列的格式化文本,每一行的数据表示一条记录

由于csv便于展示,读取和写入,所以很多地方也是用csv的格式存储和传输中小型的数据,为了方便教学,我们会经常操作csv格式的文件,但是操作数据库中的数据也是很容易的实现的

np.loadtxt(fname,dtype=np.float,delimiter=None,skiprows=0,usecols=None,unpack=False)

数据科学库之——numpy_第13张图片
现在这里有一个英国和美国各自youtube1000多个视频的点击,喜欢,不喜欢,评论数量([“views”,“likes”,“dislikes”,“comment_total”])的csv,运用刚刚所学习的只是,我们尝试来对其进行操作
数据来源:https://www.kaggle.com/datasnaek/youtube/data
数据科学库之——numpy_第14张图片
转置是一种变换,对于numpy中的数组来说,就是在对角线方向交换数据,目的也是为了更方便的去处理数据
数据科学库之——numpy_第15张图片
数据科学库之——numpy_第16张图片

numpy中数值的修改

数据科学库之——numpy_第17张图片

numpy中布尔索引

数据科学库之——numpy_第18张图片

numpy中三元运算符

数据科学库之——numpy_第19张图片

numpy中的clip(裁剪)

数据科学库之——numpy_第20张图片

numpy中的nan和inf

nan(NAN,Nan):not a number表示不是一个数字
什么时候numpy中会出现nan:
当我们读取本地的文件为float的时候,如果有缺失,就会出现nan
当做了一个不合适的计算的时候(比如无穷大(inf)减去无穷大)
inf(-inf,inf):infinity,inf表示正无穷,-inf表示负无穷
什么时候回出现inf包括(-inf,+inf)
比如一个数字除以0,(python中直接会报错,numpy中是一个inf或者-inf)
那么如何指定一个nan或者inf呢?
注意他们的type类型
数据科学库之——numpy_第21张图片

numpy中的nan的注意点

数据科学库之——numpy_第22张图片
在一组数据中单纯的把nan替换为0,合适么?会带来什么样的影响?

比如,全部替换为0后,替换之前的平均值如果大于0,替换之后的均值肯定会变小,所以更一般的方式是把缺失的数值替换为均值(中值)或者是直接删除有缺失值的一行。

numpy中常用统计函数

t.sum(axis=None)#求和
t.mean(a,axis=None)#均值:受离群点的影响较大
np.median(t,axis=None)#中值
t.max(axis=None)# 最大值
t.min(axis=None)#最小值
np.ptp(t,axis=None)#极值:即最大值和最小值只差
t.std(axis=None)#标准差

数组的拼接

数据科学库之——numpy_第23张图片

numpy生成随机数

数据科学库之——numpy_第24张图片

numpy的注意点copy和view

a=b 完全不复制,a和b相互影响
a = b[:],视图的操作,一种切片,会创建新的对象a,但是a的数据完全由b保管,他们两个的数据变化是一致的,
a = b.copy(),复制,a和b互不影响

你可能感兴趣的:(numpy)